horn
HORN
Higher-Order Reasoning with Negation
Installation
- Install Crystal and Shards. See here.
- Install tree-sitter:
- On ubuntu:
apt install libtree-sitter-dev
- On macOS:
brew install tree-sitter
- On ubuntu:
- Run
make
.
Usage
$ cat spec/fixtures/program.horn
a,b :: i. p :: i->o. r :: o.
p(a).
r :- ]X:i ~(p X).
?- r.
$ ./bin/horn -f spec/fixtures/program.horn
r =>
T
$ cat spec/fixtures/equals.horn
a,b :: i.
p :: i->o.
p a.
subset, equals :: (i->o)->(i->o)->o.
subset P Q :- ~]X:i P X /\ ~Q X.
equals P Q :- subset P Q, subset Q P.
?- equals p Q_.
$ ./bin/horn -s dnf -f spec/fixtures/equals.horn
((equals p) Q_) =>
(Q_ a), ¬(Q_ b)
Contributors
- Giannos Chatziagapis - creator and maintainer
Repository
horn
Owner
Statistic
- 0
- 0
- 0
- 0
- 0
- 10 days ago
- November 29, 2024
License
MIT License
Links
Synced at
Thu, 26 Dec 2024 20:31:10 GMT
Languages