]> matita.cs.unibo.it Git - helm.git/commitdiff
addded inductive definition to AST
authorStefano Zacchiroli <zack@upsilon.cc>
Thu, 9 Dec 2004 15:18:50 +0000 (15:18 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Thu, 9 Dec 2004 15:18:50 +0000 (15:18 +0000)
helm/ocaml/cic_transformations/tacticAst.ml
helm/ocaml/cic_transformations/tacticAstPp.ml

index 112d87b703860975b38f7626842f59bda7522a82..28b256c86000744d1ffd9b863f4d712761808d4e 100644 (file)
@@ -84,6 +84,10 @@ type thm_flavour =
   | `Theorem
   ]
 
+  (** <name, inductive/coinductive, type, constructor list>
+  * true means inductive, false coinductive *)
+type 'term inductive_type = string * bool * 'term * (string * 'term) list
+
 type 'term command =
   | Abort
   | Baseuri of string option (** get/set base uri *)
@@ -94,6 +98,8 @@ type 'term command =
        * Name is needed when theorem was started without providing a name
        *)
   | Quit
+  | Inductive of (string * 'term) list * 'term inductive_type list
+      (** parameters, list of mutual inductive types *)
   | Theorem of thm_flavour * string option * 'term * 'term option
       (** flavour, name, type, body
        * - name is absent when an unnamed theorem is being proved, tipically in
index d0e87b0943e91055f4a4d48bb2091b5703a7d425..32f7ace8e1813031121326ff9b3f385744742dfb 100644 (file)
@@ -107,6 +107,7 @@ let pp_command = function
   | Quit -> "Quit"
   | Redo None -> "Redo"
   | Redo (Some n) -> sprintf "Redo %d" n
+  | Inductive _ -> (* TODO Zack *) assert false
   | Theorem (flavour, name, typ, body) ->
       sprintf "%s %s: %s %s"
         (pp_flavour flavour)