From IRC
my code just computed a transitive closure of a graph for the first time. i mean, it read a tml program that does it, and partially-evaluated it till the correct final result
Exciting times lie ahead for Tau/Agoras
~/tau$ ./tml < example
-4:1,0
-1:0,0 1,1
4:0,1 1,2
1:0,0 1,0 2,0
unifying edge(?x,?y) with edge(1,2) given output ?y=2 ?x=1
unifying edge(?y,?z) with edge(1,2) given output ?z=2 ?y=1
finished iteration 1 program len 2
unifying edge(?x,?y) with edge(2,3) given output ?y=3 ?x=2
unifying edge(?y,?z) with edge(2,3) given output ?z=3 ?y=2
finished iteration 1 program len 2
unifying edge(?x,?y) with edge(3,4) given output ?y=4 ?x=3
unifying edge(?y,?z) with edge(3,4) given output ?z=4 ?y=3
finished iteration 1 program len 2
unifying path(?x,?y) with path(1,2) given output ?y=2 ?x=1
unifying path(?x,1) with path(1,2) given
unifying path(?x,2) with path(1,2) given output ?x=1
unifying path(?x,3) with path(1,2) given finished iteration 1 program len 2
unifying path(?x,?y) with path(2,3) given output ?y=3 ?x=2
unifying path(?x,1) with path(2,3) given
unifying path(?x,2) with path(2,3) given
unifying path(?x,3) with path(2,3) given output ?x=2
finished iteration 1 program len 2
unifying path(?x,?y) with path(3,4) given output ?y=4 ?x=3
unifying path(?x,1) with path(3,4) given
unifying path(?x,2) with path(3,4) given
unifying path(?x,3) with path(3,4) given finished iteration 1 program len 2
unifying path(?x,?y) with path(1,3) given output ?y=3 ?x=1
unifying path(?x,1) with path(1,3) given
unifying path(?x,2) with path(1,3) given
unifying path(?x,3) with path(1,3) given output ?x=1
finished iteration 1 program len 2
unifying path(?x,?y) with path(2,4) given output ?y=4 ?x=2
unifying path(?x,1) with path(2,4) given
unifying path(?x,2) with path(2,4) given
unifying path(?x,3) with path(2,4) given finished iteration 1 program len 2
unifying path(?x,?y) with path(1,4) given output ?y=4 ?x=1
unifying path(?x,1) with path(1,4) given
unifying path(?x,2) with path(1,4) given
unifying path(?x,3) with path(1,4) given finished iteration 1 program len 2
unifying edge(?x,?y) with edge(1,2) given output ?y=2 ?x=1
unifying edge(?y,?z) with edge(1,2) given output ?z=2 ?y=1
unifying edge(2,?z) with edge(1,2) given
unifying edge(3,?z) with edge(1,2) given
unifying edge(4,?z) with edge(1,2) given
unifying edge(3,?z) with edge(1,2) given
unifying edge(4,?z) with edge(1,2) given
unifying edge(4,?z) with edge(1,2) given finished iteration 2 program len 11
unifying edge(?x,?y) with edge(2,3) given output ?y=3 ?x=2
unifying edge(?y,?z) with edge(2,3) given output ?z=3 ?y=2
unifying edge(2,?z) with edge(2,3) given output ?z=3
unifying edge(3,?z) with edge(2,3) given
unifying edge(4,?z) with edge(2,3) given
unifying edge(3,?z) with edge(2,3) given
unifying edge(4,?z) with edge(2,3) given
unifying edge(4,?z) with edge(2,3) given finished iteration 2 program len 11
unifying edge(?x,?y) with edge(3,4) given output ?y=4 ?x=3
unifying edge(?y,?z) with edge(3,4) given output ?z=4 ?y=3
unifying edge(2,?z) with edge(3,4) given
unifying edge(3,?z) with edge(3,4) given output ?z=4
unifying edge(4,?z) with edge(3,4) given
unifying edge(3,?z) with edge(3,4) given output ?z=4
unifying edge(4,?z) with edge(3,4) given
unifying edge(4,?z) with edge(3,4) given finished iteration 2 program len 11
unifying path(?x,?y) with path(1,2) given output ?y=2 ?x=1
unifying path(?x,1) with path(1,2) given
unifying path(?x,2) with path(1,2) given output ?x=1
unifying path(?x,3) with path(1,2) given finished iteration 2 program len 11
unifying path(?x,?y) with path(2,3) given output ?y=3 ?x=2
unifying path(?x,1) with path(2,3) given
unifying path(?x,2) with path(2,3) given
unifying path(?x,3) with path(2,3) given output ?x=2
finished iteration 2 program len 11
unifying path(?x,?y) with path(3,4) given output ?y=4 ?x=3
unifying path(?x,1) with path(3,4) given
unifying path(?x,2) with path(3,4) given
unifying path(?x,3) with path(3,4) given finished iteration 2 program len 11
unifying path(?x,?y) with path(1,3) given output ?y=3 ?x=1
unifying path(?x,1) with path(1,3) given
unifying path(?x,2) with path(1,3) given
unifying path(?x,3) with path(1,3) given output ?x=1
finished iteration 2 program len 11
unifying path(?x,?y) with path(2,4) given output ?y=4 ?x=2
unifying path(?x,1) with path(2,4) given
unifying path(?x,2) with path(2,4) given
unifying path(?x,3) with path(2,4) given finished iteration 2 program len 11
unifying path(?x,?y) with path(1,4) given output ?y=4 ?x=1
unifying path(?x,1) with path(1,4) given
unifying path(?x,2) with path(1,4) given
unifying path(?x,3) with path(1,4) given finished iteration 2 program len 11
edge(?x,?y) -> path(?x,?y) .
path(?x,?y) edge(?y,?z) -> path(?x,?z) .
path(?x,1) -> path(?x,2) .
path(?x,2) -> path(?x,3) .
path(?x,3) -> path(?x,4) .
edge(2,?z) -> path(1,?z) .
edge(3,?z) -> path(2,?z) .
edge(4,?z) -> path(3,?z) .
edge(3,?z) -> path(1,?z) .
edge(4,?z) -> path(2,?z) .
edge(4,?z) -> path(1,?z) .
-> edge(1,2) .
-> edge(2,3) .
-> edge(3,4) .
-> path(1,2) .
-> path(2,3) .
-> path(3,4) .
-> path(1,3) .
-> path(2,4) .
-> path(1,4) .