X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fcomponents%2Fgrafite%2FgrafiteAst.ml;h=c29babd55414b1fd3b1d7b75e23f3ebdb6eadf60;hb=5cfd68a5d9e73edb40e1cfe021a1426354767aa8;hp=ed757f601613cf6a0dd711860599d6454aacb8f5;hpb=433e66b381d1b89e48c05d517494fc300fd0abb5;p=helm.git diff --git a/matita/components/grafite/grafiteAst.ml b/matita/components/grafite/grafiteAst.ml index ed757f601..c29babd55 100644 --- a/matita/components/grafite/grafiteAst.ml +++ b/matita/components/grafite/grafiteAst.ml @@ -36,10 +36,7 @@ type npattern = type auto_params = nterm list option * (string*string) list -(* The additional a is for abstract *) -type 'term aauto_params = 'term list option * (string*string) list - -type 'term just = [`Term of 'term | `Auto of 'term aauto_params] +type just = [`Term of nterm | `Auto of auto_params] type ntactic = | NApply of loc * nterm @@ -84,15 +81,34 @@ type ntactic = (* Not the best idea to use a string directly, an abstract type for identifiers would be better *) | Assume of loc * string * nterm * nterm option (* loc, identifier, type, eqty *) | Suppose of loc * nterm *string * nterm option (* loc, assumption, identifier, eqass *) - | By_just_we_proved of loc * nterm just * nterm * string option * nterm option (* loc, + | By_just_we_proved of loc * just * nterm * string option * nterm option (* loc, justification, conclusion, identifier, eqconcl *) | We_need_to_prove of loc * nterm * string option * nterm option (* loc, newconclusion, identifier, equivnewcon *) - | Bydone of loc * nterm just - (* - | ExistsElim of loc * nterm just * string * nterm * nterm * string - | AndElim of loc * nterm just * nterm * string * nterm * string - *) + | BetaRewritingStep of loc * nterm + | Bydone of loc * just + | ExistsElim of loc * just * string * nterm * nterm * string + | AndElim of loc * just * nterm * string * nterm * string + (* + | RewritingStep of + loc * (string option * nterm) option * nterm * + [ `Term of nterm | `Auto of auto_params + | `Proof | `SolveWith of nterm ] * + bool (* last step*) + *) + | RewritingStep of + loc * nterm * [ `Term of nterm | `Auto of auto_params | `Proof | `SolveWith of nterm ] * bool (* last step*) + | Obtain of + loc * string * nterm + | Conclude of + loc * nterm + | Thesisbecomes of loc * nterm * nterm option + | We_proceed_by_induction_on of loc * nterm * nterm + | We_proceed_by_cases_on of loc * nterm * nterm + | Byinduction of loc * nterm * string + | Case of loc * string * (string * nterm) list + (* This is a debug tactic to print the stack to stdout, can be safely removed *) + | PrintStack of loc type nmacro = | NCheck of loc * nterm