(relation path (i64 i64))
(relation edge (i64 i64))
(rule ((edge x y))
((path x y)))
(edge 1 2)
(edge 2 3)
(edge 3 4)
(check (edge 1 2))
(run 3)
(check (path 1 2))
(ruleset path-rules)
(rule ((path x y) (edge y z))
((path x z))
:ruleset path-rules)
(edge 3 8)
(run path-rules 1)
(check (path 1 3))
; Should fail
; (check (path 1 4))
; (check (path 3 8))