Notation_ops
Constr default entries
val constr_lowest_level : Constrexpr.notation_entry_level
val constr_some_level : Constrexpr.notation_entry_relative_level
notation_constr
val eq_notation_constr : (Names.Id.t list * Names.Id.t list) -> Notation_term.notation_constr -> Notation_term.notation_constr -> bool
val strictly_finer_notation_constr : (Names.Id.t list * Names.Id.t list) -> Notation_term.notation_constr -> Notation_term.notation_constr -> bool
Tell if t1
is a strict refinement of t2
(this is a partial order and returning false
does not mean that t2
is finer than t1
)
val strictly_finer_interpretation_than : Notation_term.interpretation -> Notation_term.interpretation -> bool
Tell if a notation interpretation is strictly included in another one
val finer_interpretation_than : Notation_term.interpretation -> Notation_term.interpretation -> bool
Tell if a notation interpretation is included in another one
Substitution of kernel names in interpretation data
val subst_interpretation : Mod_subst.substitution -> Notation_term.interpretation -> Notation_term.interpretation
Name of the special identifier used to encode recursive notations
val ldots_var : Names.Id.t
glob_constr
and notation_constr
Translate a glob_constr
into a notation given the list of variables bound by the notation; also interpret recursive patterns
val notation_constr_of_glob_constr : Notation_term.notation_interp_env -> Glob_term.glob_constr -> Notation_term.notation_constr * Notation_term.reversibility_status
Re-interpret a notation as a glob_constr
, taking care of binders
val apply_cases_pattern : ?loc:Loc.t -> ((Names.Id.t list * Glob_term.cases_pattern_disjunction) * Names.Id.t) -> Glob_term.glob_constr -> Glob_term.glob_constr
val glob_constr_of_notation_constr_with_binders : ?loc:Loc.t ->
('a -> Names.Name.t -> Glob_term.glob_constr option -> 'a * ((Names.Id.t list * Glob_term.cases_pattern_disjunction) * Names.Id.t) option * Names.Name.t * Glob_term.binding_kind * Glob_term.glob_constr option) -> ('a -> Notation_term.notation_constr -> Glob_term.glob_constr) -> ?h:'a binder_status_fun
-> 'a -> Notation_term.notation_constr -> Glob_term.glob_constr
val glob_constr_of_notation_constr : ?loc:Loc.t -> Notation_term.notation_constr -> Glob_term.glob_constr
val pr_notation_info : (Glob_term.glob_constr -> Pp.t) -> Constrexpr.notation_key -> Notation_term.notation_constr -> Pp.t
glob_constr
match_notation_constr
matches a glob_constr
against a notation interpretation; raise No_match
if the matching fails
val match_notation_constr : print_univ:bool -> 'a Glob_term.glob_constr_g -> vars:Names.Id.Set.t ->
Notation_term.interpretation -> ((Names.Id.Set.t * 'a Glob_term.glob_constr_g) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.glob_constr_g list) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.cases_pattern_disjunction_g) * Notation_term.extended_subscopes) list * ((Names.Id.Set.t * 'a Glob_term.extended_glob_local_binder_g list) * Notation_term.extended_subscopes) list
val match_notation_constr_cases_pattern : 'a Glob_term.cases_pattern_g -> Notation_term.interpretation -> (('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g list * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list) * (bool * int * 'a Glob_term.cases_pattern_g list)
val match_notation_constr_ind_pattern : Names.inductive -> 'a Glob_term.cases_pattern_g list -> Notation_term.interpretation -> (('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g list * Notation_term.extended_subscopes) list * ('a Glob_term.cases_pattern_g * Notation_term.extended_subscopes) list) * (bool * int * 'a Glob_term.cases_pattern_g list)