X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_transformations%2FcicAst.ml;h=f7392fa3ac34bdfe8c4423902cd54a4c4c15fb06;hb=5325734bc2e4927ed7ec146e35a6f0f2b49f50c1;hp=b992a916c28371a82def85cc21e1ff10eadbf39d;hpb=b029556cbcecb852dfc9cf25801f3dcc0bb762bb;p=helm.git diff --git a/helm/ocaml/cic_transformations/cicAst.ml b/helm/ocaml/cic_transformations/cicAst.ml index b992a916c..f7392fa3a 100644 --- a/helm/ocaml/cic_transformations/cicAst.ml +++ b/helm/ocaml/cic_transformations/cicAst.ml @@ -23,66 +23,8 @@ * http://helm.cs.unibo.it/ *) - (* when an 'ident option is None, the default is to apply the tactic - to the current goal *) - -type reduction_kind = [ `Reduce | `Simpl | `Whd ] - -type 'term pattern = - | Pattern of 'term - type location = int * int -type ('term, 'ident) tactic = - | LocatedTactic of location * ('term, 'ident) tactic - - | Absurd - | Apply of 'term - | Assumption - | Change of 'term * 'term * 'ident option (* what, with what, where *) - | Change_pattern of 'term pattern * 'term * 'ident option - (* what, with what, where *) - | Contradiction - | Cut of 'term - | Decompose of 'ident * 'ident list (* which hypothesis, which principles *) - | Discriminate of 'ident - | Elim of 'term * 'term option (* what to elim, which principle to use *) - | ElimType of 'term - | Exact of 'term - | Exists - | Fold of reduction_kind * 'term - | Fourier - | Injection of 'ident - | Intros of int option - | Left - | LetIn of 'term * 'ident (* TODO clashes with term below *) - | Named_intros of 'ident list - | Reduce of reduction_kind * 'term pattern * 'ident option (* what, where *) - | Reflexivity - | Replace of 'term * 'term (* what, with what *) - | Replace_pattern of 'term pattern * 'term - | RewriteLeft of 'term * 'ident option - | RewriteRight of 'term * 'ident option - | Right - | Ring - | Split - | Symmetry - | Transitivity of 'term - -type 'tactic tactical = - | LocatedTactical of location * 'tactic tactical - - | Fail - | For of int * 'tactic tactical - | IdTac - | Repeat of 'tactic tactical - | Seq of 'tactic tactical list (* sequential composition *) - | Tactic of 'tactic - | Then of 'tactic tactical * 'tactic tactical list - | Tries of 'tactic tactical list - (* try a sequence of tacticals until one succeeds, fail otherwise *) - | Try of 'tactic tactical (* try a tactical and mask failures *) - type binder_kind = [ `Lambda | `Pi | `Exists | `Forall ] type induction_kind = [ `Inductive | `CoInductive ] type sort_kind = [ `Prop | `Set | `Type | `CProp ] @@ -102,7 +44,10 @@ type term = | LetIn of capture_variable * term * term (* name, body, where *) | LetRec of induction_kind * (capture_variable * term * int) list * term (* (name, body, decreasing argument) list, where *) - | Ident of string * subst list (* literal, substitutions *) + | Ident of string * subst list option + (* literal, substitutions. + * Some [] -> user has given an empty explicit substitution list + * None -> user has given no explicit substitution list *) | Implicit | Meta of int * meta_subst list | Num of string * int (* literal, instance *)