aboutsummaryrefslogtreecommitdiff
path: root/intf
diff options
context:
space:
mode:
Diffstat (limited to 'intf')
-rw-r--r--intf/constrexpr.mli4
-rw-r--r--intf/decl_kinds.mli8
-rw-r--r--intf/glob_term.mli4
-rw-r--r--intf/notation_term.mli1
-rw-r--r--intf/pattern.mli1
-rw-r--r--intf/vernacexpr.mli3
6 files changed, 13 insertions, 8 deletions
diff --git a/intf/constrexpr.mli b/intf/constrexpr.mli
index 64bbd1e835..af6aea1644 100644
--- a/intf/constrexpr.mli
+++ b/intf/constrexpr.mli
@@ -62,13 +62,13 @@ and cases_pattern_notation_substitution =
cases_pattern_expr list list (** for recursive notations *)
type constr_expr =
- | CRef of reference
+ | CRef of reference * Univ.universe_instance option
| CFix of Loc.t * Id.t located * fix_expr list
| CCoFix of Loc.t * Id.t located * cofix_expr list
| CProdN of Loc.t * binder_expr list * constr_expr
| CLambdaN of Loc.t * binder_expr list * constr_expr
| CLetIn of Loc.t * Name.t located * constr_expr * constr_expr
- | CAppExpl of Loc.t * (proj_flag * reference) * constr_expr list
+ | CAppExpl of Loc.t * (proj_flag * reference * Univ.universe_instance option) * constr_expr list
| CApp of Loc.t * (proj_flag * constr_expr) *
(constr_expr * explicitation located option) list
| CRecord of Loc.t * constr_expr option * (reference * constr_expr) list
diff --git a/intf/decl_kinds.mli b/intf/decl_kinds.mli
index 7111fd0555..2ed776c2d6 100644
--- a/intf/decl_kinds.mli
+++ b/intf/decl_kinds.mli
@@ -12,6 +12,8 @@ type locality = Discharge | Local | Global
type binding_kind = Explicit | Implicit
+type polymorphic = bool
+
type theorem_kind =
| Theorem
| Lemma
@@ -45,9 +47,9 @@ type assumption_object_kind = Definitional | Logical | Conjectural
Logical | Hypothesis | Axiom
*)
-type assumption_kind = locality * assumption_object_kind
+type assumption_kind = locality * polymorphic * assumption_object_kind
-type definition_kind = locality * definition_object_kind
+type definition_kind = locality * polymorphic * definition_object_kind
(** Kinds used in proofs *)
@@ -55,7 +57,7 @@ type goal_object_kind =
| DefinitionBody of definition_object_kind
| Proof of theorem_kind
-type goal_kind = locality * goal_object_kind
+type goal_kind = locality * polymorphic * goal_object_kind
(** Kinds used in library *)
diff --git a/intf/glob_term.mli b/intf/glob_term.mli
index 1d200ca79b..d07766e18c 100644
--- a/intf/glob_term.mli
+++ b/intf/glob_term.mli
@@ -28,7 +28,7 @@ type cases_pattern =
(** [PatCstr(p,C,l,x)] = "|'C' 'l' as 'x'" *)
type glob_constr =
- | GRef of (Loc.t * global_reference)
+ | GRef of (Loc.t * global_reference * Univ.universe_instance option)
| GVar of (Loc.t * Id.t)
| GEvar of Loc.t * existential_key * glob_constr list option
| GPatVar of Loc.t * (bool * patvar) (** Used for patterns only *)
@@ -39,7 +39,7 @@ type glob_constr =
| GCases of Loc.t * case_style * glob_constr option * tomatch_tuples * cases_clauses
(** [GCases(l,style,r,tur,cc)] = "match 'tur' return 'r' with 'cc'" (in
[MatchStyle]) *)
-
+ | GProj of Loc.t * projection * glob_constr
| GLetTuple of Loc.t * Name.t list * (Name.t * glob_constr option) *
glob_constr * glob_constr
| GIf of Loc.t * glob_constr * (Name.t * glob_constr option) * glob_constr * glob_constr
diff --git a/intf/notation_term.mli b/intf/notation_term.mli
index daf605ab28..8bb43e96a5 100644
--- a/intf/notation_term.mli
+++ b/intf/notation_term.mli
@@ -25,6 +25,7 @@ type notation_constr =
| NVar of Id.t
| NApp of notation_constr * notation_constr list
| NHole of Evar_kinds.t * Genarg.glob_generic_argument option
+ | NProj of projection * notation_constr
| NList of Id.t * Id.t * notation_constr * notation_constr * bool
(** Part only in [glob_constr] *)
| NLambda of Name.t * notation_constr * notation_constr
diff --git a/intf/pattern.mli b/intf/pattern.mli
index d0ccb2d9b3..4fa5f418d0 100644
--- a/intf/pattern.mli
+++ b/intf/pattern.mli
@@ -65,6 +65,7 @@ type constr_pattern =
| PRel of int
| PApp of constr_pattern * constr_pattern array
| PSoApp of patvar * constr_pattern list
+ | PProj of projection * constr_pattern
| PLambda of Name.t * constr_pattern * constr_pattern
| PProd of Name.t * constr_pattern * constr_pattern
| PLetIn of Name.t * constr_pattern * constr_pattern
diff --git a/intf/vernacexpr.mli b/intf/vernacexpr.mli
index 850f06f87b..857f75ed6d 100644
--- a/intf/vernacexpr.mli
+++ b/intf/vernacexpr.mli
@@ -289,7 +289,7 @@ type vernac_expr =
(* Gallina *)
| VernacDefinition of
(locality option * definition_object_kind) * lident * definition_expr
- | VernacStartTheoremProof of theorem_kind *
+ | VernacStartTheoremProof of theorem_kind *
(lident option * (local_binder list * constr_expr * (lident option * recursion_order_expr) option)) list *
bool
| VernacEndProof of proof_end
@@ -428,6 +428,7 @@ type vernac_expr =
(* Flags *)
| VernacProgram of vernac_expr
+ | VernacPolymorphic of bool * vernac_expr
| VernacLocal of bool * vernac_expr
and located_vernac_expr = Loc.t * vernac_expr