From 8037b4281f0802aed83d3868a9d8313a4e980fe7 Mon Sep 17 00:00:00 2001 From: Tim Vieira Date: Sun, 21 Jul 2013 18:40:33 -0400 Subject: [PATCH] added test case from issue #31 - late backchaining declarations. --- test/repl/late-bc.dynadoc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 test/repl/late-bc.dynadoc diff --git a/test/repl/late-bc.dynadoc b/test/repl/late-bc.dynadoc new file mode 100644 index 0000000..19ceb6b --- /dev/null +++ b/test/repl/late-bc.dynadoc @@ -0,0 +1,39 @@ +% simple case of late backchaining, which causes replanning or rule 0. + +> a(X) = f(X) for X in range(1,5). + +> :- backchain f/1. +| f(X) = X. + +Changes +======= +a(1) = 1. +a(2) = 2. +a(3) = 3. +a(4) = 4. + +> rules + +Rules +===== + 1: f(X) = X. + 2: a(X) = f(X) for X in range(1,5). % originally index 0, now 2. + + +> foo(X) += bar(X). +> foo(X) += 2*bar(X). + +> :- backchain bar/1. +> bar(X) = X+1. + +Encountered error in input program: + Unable to plan initializers for rule(s): + foo(X) += bar(X). + foo(X) += 2*bar(X). +Everything was syntactically valid, but we could not +see it through. + +> :- backchain foo/1. +> query foo(3) + +foo(3) = 12. -- 2.50.1