aboutsummaryrefslogtreecommitdiff
path: root/sucl/loop.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'sucl/loop.dcl')
-rw-r--r--sucl/loop.dcl29
1 files changed, 29 insertions, 0 deletions
diff --git a/sucl/loop.dcl b/sucl/loop.dcl
new file mode 100644
index 0000000..56f0a37
--- /dev/null
+++ b/sucl/loop.dcl
@@ -0,0 +1,29 @@
+definition module loop
+
+from strat import Strategy
+from spine import Answer
+from trace import Trace
+from rule import Rgraph,Rule
+from graph import Graph
+from StdOverloaded import ==
+
+from strat import Substrategy,Subspine // for Strategy
+from graph import Node // for Strategy
+from basic import Optional // for Answer
+from spine import Spine // for Answer
+from trace import History,Transformation // for Trace
+
+loop
+ :: (((Graph sym pvar) pvar var -> ub:Bool) -> Strategy sym var pvar (Answer sym var pvar))
+ ([Rgraph sym pvar] (Rgraph sym pvar) -> ub:Bool)
+ !(.[var],.Rule sym var)
+ -> Trace sym var pvar
+ | == sym
+ & == var
+ & == pvar
+
+initrule
+ :: ![var]
+ (sym->[pvar])
+ sym
+ -> ([var],Rule sym var)