X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;ds=sidebyside;f=helm%2Fsoftware%2Fcomponents%2Facic_content%2FcicNotationPt.ml;h=73eeb017dad00d781bbb61f9242b2eeb8f631186;hb=4609a07e2fe4343d94832fcaf0936223f83ba71c;hp=f6652f63fd592f5d6393e4a4293bf762a807eed8;hpb=34259adcd8a36e85f3224c7074c74aef878f1856;p=helm.git diff --git a/helm/software/components/acic_content/cicNotationPt.ml b/helm/software/components/acic_content/cicNotationPt.ml index f6652f63f..73eeb017d 100644 --- a/helm/software/components/acic_content/cicNotationPt.ml +++ b/helm/software/components/acic_content/cicNotationPt.ml @@ -59,9 +59,11 @@ type literal = type case_indtype = string * href option +type 'term capture_variable = 'term * 'term option + (** To be increased each time the term type below changes, used for "safe" * marshalling *) -let magic = 1 +let magic = 2 type term = (* CIC AST *) @@ -69,13 +71,13 @@ type term = | AttributedTerm of term_attribute * term | Appl of term list - | Binder of binder_kind * capture_variable * term (* kind, name, body *) + | Binder of binder_kind * term capture_variable * term (* kind, name, body *) | Case of term * case_indtype option * term option * (case_pattern * term) list (* what to match, inductive type, out type, list *) | Cast of term * term - | LetIn of capture_variable * term * term (* name, body, where *) - | LetRec of induction_kind * (capture_variable list * capture_variable * term * int) list * term + | LetIn of term capture_variable * term * term (* name, body, where *) + | LetRec of induction_kind * (term capture_variable list * term capture_variable * term * int) list * term (* (params, name, body, decreasing arg) list, where *) | Ident of string * subst list option (* literal, substitutions. @@ -100,11 +102,10 @@ type term = | Variable of pattern_variable (* name, type. First component must be Ident or Variable (FreshVar _) *) -and capture_variable = term * term option and meta_subst = term option and subst = string * term -and case_pattern = string * href option * capture_variable list +and case_pattern = string * href option * term capture_variable list and box_kind = H | V | HV | HOV and box_spec = box_kind * bool * bool (* kind, spacing, indent *) @@ -163,10 +164,10 @@ type cic_appl_pattern = * true means inductive, false coinductive *) type 'term inductive_type = string * bool * 'term * (string * 'term) list -type obj = - | Inductive of capture_variable list * term inductive_type list +type 'term obj = + | Inductive of 'term capture_variable list * 'term inductive_type list (** parameters, list of loc * mutual inductive types *) - | Theorem of Cic.object_flavour * string * term * term option + | Theorem of Cic.object_flavour * string * 'term * 'term option (** flavour, name, type, body * - name is absent when an unnamed theorem is being proved, tipically in * interactive usage @@ -174,7 +175,7 @@ type obj = * will be given in proof editing mode using the tactical language, * unless the flavour is an Axiom *) - | Record of capture_variable list * string * term * (string * term * bool * int) list + | Record of 'term capture_variable list * string * 'term * (string * 'term * bool * int) list (** left parameters, name, type, fields *) (** {2 Standard precedences} *)