| 67 | var program []ast.Clause |
| 68 | |
| 69 | func init() { |
| 70 | program = []ast.Clause{ |
| 71 | clause("path(X,Y) :- edge(X,Y)."), |
| 72 | clause("path(X,Z) :- edge(X,Y), path(Y,Z)."), |
| 73 | clause("not_reachable(X, Y) :- node(X), node(Y), !path(X, Y)."), |
| 74 | clause("in_cycle_eq(X) :- node(X), path(X, Y), X = Y."), |
| 75 | clause("in_between(X, Z) :- node(X), node(Y), node(Z), path(X, Y), path(Y, Z), X != Y, Y != Z, X != Z."), |
| 76 | clause("neighbor_label(X, Y, Num) :- edge(X, Y), label(Y, Num)."), |
| 77 | clause("has_neighbor(X) :- edge(X, _)."), |
| 78 | clause("decompose_pair(Y,Z) :- :match_pair(fn:pair(1,2),Y,Z)."), |
| 79 | clause("decompose_cons(Y,Z) :- :match_cons(fn:list:cons(1,[]),Y,Z)."), |
| 80 | clause("decompose_nil() :- :match_nil([])."), |
| 81 | clause("expanded_stuff(X) :- :list:member(X, [1, 2, 3])."), |
| 82 | } |
| 83 | } |
| 84 | |
| 85 | func asMap(preds []ast.PredicateSym) map[ast.PredicateSym]ast.Decl { |
| 86 | m := make(map[ast.PredicateSym]ast.Decl, len(preds)) |