Library HoTT.Basics.Settings
General Settings
Warnings
Plugins
Declare ML Module "ltac_plugin:coq-core.plugins.ltac".
Load the number string notation plugin. Allowing us to write numbers like 1234.
Declare ML Module "number_string_notation_plugin:coq-core.plugins.number_string_notation".
Global Set Default Proof Mode "Classic".
Force use of bullets in proofs.
Global Set Default Goal Selector "!".
Universes
Global Set Universe Polymorphism.
This command makes it so that you don't have to declare universes explicitly when mentioning them in the type. (Without this command, if you want to say Definition foo := Type@{i}., you must instead say Definition foo@{i} := Type@{i}..
Global Unset Strict Universe Declaration.
This command makes it so that when we say something like IsHSet nat we get IsHSet@{i} nat instead of IsHSet@{Set} nat.
Global Unset Universe Minimization ToSet.
Global Set Primitive Projections.
Global Set Nonrecursive Elimination Schemes.
Currently Coq doesn't print equivalences correctly (8.6). This fixes that. See https://github.com/HoTT/HoTT/issues/1000
Global Set Printing Primitive Projection Parameters.
Pattern Matching
Global Set Asymmetric Patterns.
Unification
Global Set Keyed Unification.
Typeclasses and Hint settings
Global Set Loose Hint Behavior "Strict".
Create HintDb rewrite discriminated.
#[export] Hint Variables Opaque : rewrite.
Create HintDb typeclass_instances discriminated.
Create HintDb rewrite discriminated.
#[export] Hint Variables Opaque : rewrite.
Create HintDb typeclass_instances discriminated.
Reversible Coercions
#[universes(polymorphic=yes)] Definition ReverseCoercionSource (T : Type) := T.
#[universes(polymorphic=yes)] Definition ReverseCoercionTarget (T : Type) := T.
#[warning="-uniform-inheritance", reversible=no, universes(polymorphic=yes)]
Coercion reverse_coercion {T' T} (x' : T') (x : ReverseCoercionSource T)
: ReverseCoercionTarget T' := x'.
Register reverse_coercion as core.coercion.reverse_coercion.
#[universes(polymorphic=yes)] Definition ReverseCoercionTarget (T : Type) := T.
#[warning="-uniform-inheritance", reversible=no, universes(polymorphic=yes)]
Coercion reverse_coercion {T' T} (x' : T') (x : ReverseCoercionSource T)
: ReverseCoercionTarget T' := x'.
Register reverse_coercion as core.coercion.reverse_coercion.
Add Search Blacklist "_admitted" "_subproof" "Private_".