]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/bin/recomm/recommGcrGroundLib.ml
update in gruound
[helm.git] / matita / matita / contribs / lambdadelta / bin / recomm / recommGcrGroundLib.ml
1 module T = RecommTypes
2 module R = RecommPccFor
3
4 let step k st outs ins =
5   if st <> T.OO then k st outs ins else
6   match ins with
7   | "LENGTH" :: tl -> k T.OK ("LENGTH" :: outs) tl
8   | "ITERATED" :: "TAIL" :: tl -> k T.OK ("TAIL" :: "ITERATED" :: outs) tl
9   | "HEAD" :: "AND" :: "TAIL" :: tl -> k T.OK ("TAIL" :: "AND" :: "HEAD" :: outs) tl
10   | "NAT-LABELED" :: "REFLEXIVE" :: "AND" :: "TRANSITIVE" :: "CLOSURE" :: tl -> k T.OK ("CLOSURE" :: "TRANSITIVE" :: "AND" :: "REFLEXIVE" :: "NAT-LABELED" :: outs) tl
11   | "LABELLED" :: "TRANSITIVE" :: "CLOSURE" :: tl -> k T.OK ("CLOSURE" :: "TRANSITIVE" :: "LABELLED" :: outs) tl
12   | "TRANSITIVE" :: "CLOSURE" :: tl -> k T.OK ("CLOSURE" :: "TRANSITIVE" :: outs) tl
13   | "EXTENSIONAL" :: "EQUIVALENCE" :: tl -> k T.OK ("EQUIVALENCE" :: "EXTENSIONAL" :: outs) tl
14   | "DISJUNCTION" :: tl -> k T.OK ("DISJUNCTION" :: outs) tl
15   | "CONJUNCTION" :: tl -> k T.OK ("CONJUNCTION" :: outs) tl
16   | _ -> k T.OO outs ins
17
18 let main =
19   R.register_r step