| `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 *)
* 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
| 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)