]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_disambiguation/ast.mli
still a working copy, now towards a cleaner implementation ...
[helm.git] / helm / ocaml / cic_disambiguation / ast.mli
index d579ccdd3d3a5fff4d787cd570cca9499bead5a2..19f4bd6bd5173a548ef7f2e6b5f0572d3e5c8138 100644 (file)
@@ -60,6 +60,8 @@ type 'tactic tactical =
   | 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 ]
 
 type case_pattern = string list
 
@@ -67,16 +69,18 @@ type term =
   | LocatedTerm of location * term
 
   | Appl of term list
-  | Binder of binder_kind * string * term option * term
+  | Appl_symbol of string * term list
+  | Binder of binder_kind * Cic.name * term option * term
       (* kind, name, type, body *)
-  | Case of term * term option * (case_pattern * term) list
-    (* what to match, case type, <pattern,action> list *)
+  | Case of term * string * term option * (case_pattern * term) list
+    (* what to match, inductive type, out type, <pattern,action> list *)
   | LetIn of string * term * term  (* name, body, where *)
-  | LetRec of (string * term * term option * int) list * term
+  | LetRec of induction_kind * (string * term * term option * int) list * term
       (* (name, body, type, decreasing argument) list, where *)
   | Ident of string * subst list
-  | Meta of string * meta_subst list
-  | Int of int
+  | Meta of int * meta_subst list
+  | Num of string
+  | Sort of sort_kind
 
 and meta_subst = term option
 and subst = string * term