Library Coq.Structures.Equalities
Structure with nothing inside.
Used to force a module type T into a module via Nop <+ T. (HACK!)
Structure with just a base type t
Module Type Typ.
Parameter Inline(10)
t :
Type.
End Typ.
Structure with an equality relation eq
Specification of the equality via the Equivalence type class
Earlier specification of equality by three separate lemmas.
Types with decidable equality
Boolean Equality
Having
eq_dec is the same as having a boolean equality plus
a correctness proof.
From these basic blocks, we can build many combinations
of static standalone module types.
Same, with notation for eq
Compatibility wrapper from/to the old version of
EqualityType and
DecidableType
Having eq_dec is equivalent to having eqb and its spec.
Some properties of boolean equality
eqb is compatible with eq
Alternative specification of eqb based on reflect.
Negated form of eqb_eq
Basic equality laws for eqb
Transitivity is a particular case of eqb_compat
UsualDecidableType
A particular case of
DecidableType where the equality is
the usual one of Coq.
Some shortcuts for easily building a UsualDecidableType