diff options
Diffstat (limited to 'sucl/loop.dcl')
-rw-r--r-- | sucl/loop.dcl | 29 |
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) |