type binder_kind = [ `Lambda | `Pi | `Exists | `Forall ]
type induction_kind = [ `Inductive | `CoInductive ]
-type sort_kind = [ `Prop | `Set | `Type of CicUniv.universe | `CProp of CicUniv.universe | `NType of string]
+type sort_kind = [ `Prop | `Set | `Type of CicUniv.universe | `CProp of
+CicUniv.universe | `NType of string |`NCProp of string]
type fold_kind = [ `Left | `Right ]
type location = Stdpp.location
(* literal, substitutions.
* Some [] -> user has given an empty explicit substitution list
* None -> user has given no explicit substitution list *)
- | Implicit
+ | Implicit of [`Vector | `JustOne | `Tagged of string]
| Meta of int * meta_subst list
| Num of string * int (* literal, instance *)
| Sort of sort_kind
| UserInput (* place holder for user input, used by MatitaConsole, not to be
used elsewhere *)
| Uri of string * subst list option (* as Ident, for long names *)
+ | NRef of NReference.reference
+
+ | NCic of NCic.term
(* Syntax pattern extensions *)
| InfRule of term * term * term
(* | array of term * literal option * literal option
|+ column separator, row separator +| *)
+ | Maction of term list
| Sqrt of term
| Root of term * term (* argument, index *)
| Break
type cic_appl_pattern =
| UriPattern of UriManager.uri
+ | NRefPattern of NReference.reference
| VarPattern of string
| ImplicitPattern
| ApplPattern of cic_appl_pattern 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 * NCic.def_pragma
(** flavour, name, type, body
* - name is absent when an unnamed theorem is being proved, tipically in
* interactive usage