X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Focaml%2Fcic_notation%2FgrafiteAst.ml;h=fb654529b8c354432493c422e4632fc5be7a271d;hb=f981a524748846acc29b76b6e616af110b4ee13d;hp=e845e575557cf9c0a86cf13b82baf3a2d60697dc;hpb=e20f3963028a966fc93ba0d611c4aa8341d20e2c;p=helm.git diff --git a/helm/ocaml/cic_notation/grafiteAst.ml b/helm/ocaml/cic_notation/grafiteAst.ml index e845e5755..fb654529b 100644 --- a/helm/ocaml/cic_notation/grafiteAst.ml +++ b/helm/ocaml/cic_notation/grafiteAst.ml @@ -24,17 +24,22 @@ *) type direction = [ `LeftToRight | `RightToLeft ] -type reduction_kind = [ `Reduce | `Simpl | `Whd | `Normalize ] +type 'term reduction_kind = + [ `Normalize | `Reduce | `Simpl | `Unfold of 'term option | `Whd ] type loc = CicNotationPt.location type ('term, 'ident) pattern = 'term option * ('ident * 'term) list * 'term +type ('term, 'ident) type_spec = + | Ident of 'ident + | Type of UriManager.uri * int + type ('term, 'ident) tactic = | Absurd of loc * 'term | Apply of loc * 'term | Assumption of loc - | Auto of loc * int option * int option (* depth, width *) + | Auto of loc * int option * int option * string option (* depth, width, paramodulation ALB *) | Change of loc * ('term,'ident) pattern * 'term | Clear of loc * 'ident | ClearBody of loc * 'ident @@ -43,14 +48,14 @@ type ('term, 'ident) tactic = | Contradiction of loc | Cut of loc * 'ident option * 'term | DecideEquality of loc - | Decompose of loc * 'term + | Decompose of loc * ('term, 'ident) type_spec list * 'ident * 'ident list | Discriminate of loc * 'term | Elim of loc * 'term * 'term option * int option * 'ident list | ElimType of loc * 'term * 'term option * int option * 'ident list | Exact of loc * 'term | Exists of loc | Fail of loc - | Fold of loc * reduction_kind * 'term * ('term, 'ident) pattern + | Fold of loc * 'term reduction_kind * 'term * ('term, 'ident) pattern | Fourier of loc | FwdSimpl of loc * string * 'ident list | Generalize of loc * ('term, 'ident) pattern * 'ident option @@ -61,7 +66,7 @@ type ('term, 'ident) tactic = | LApply of loc * int option * 'term list * 'term * 'ident option | Left of loc | LetIn of loc * 'term * 'ident - | Reduce of loc * reduction_kind * ('term, 'ident) pattern + | Reduce of loc * 'term reduction_kind * ('term, 'ident) pattern | Reflexivity of loc | Replace of loc * ('term, 'ident) pattern * 'term | Rewrite of loc * direction * 'term * ('term, 'ident) pattern @@ -109,15 +114,15 @@ type obj = | Inductive of (string * CicNotationPt.term) list * CicNotationPt.term inductive_type list (** parameters, list of loc * mutual inductive types *) - | Theorem of thm_flavour * string * CicNotationPt.term * CicNotationPt.term option + | Theorem of thm_flavour * string * CicNotationPt.term * + CicNotationPt.term option (** flavour, name, type, body * - name is absent when an unnamed theorem is being proved, tipically in * interactive usage * - body is present when its given along with the command, otherwise it * will be given in proof editing mode using the tactical language *) - | Record of - (string * CicNotationPt.term) list * string * CicNotationPt.term * + | Record of (string * CicNotationPt.term) list * string * CicNotationPt.term * (string * CicNotationPt.term) list type ('term,'obj) command = @@ -133,9 +138,9 @@ type ('term,'obj) command = | Alias of loc * alias_spec (** parameters, name, type, fields *) | Obj of loc * 'obj - | Notation of loc * CicNotationPt.term * Gramext.g_assoc option * int option * - CicNotationPt.term - (* level 1 pattern, associativity, precedence, level 2 pattern *) + | Notation of loc * direction option * CicNotationPt.term * Gramext.g_assoc * + int * CicNotationPt.term + (* direction, l1 pattern, associativity, precedence, l2 pattern *) | Interpretation of loc * string * (string * CicNotationPt.argument_pattern list) * CicNotationPt.cic_appl_pattern