Type synonyms #
This file provides two type synonyms for order theory:
Lex α: Type synonym ofαto equip it with its lexicographic order. The precise meaning depends on the type we take the lex of. Examples includeProd,Sigma,List,Finset.Colex α: Type synonym ofαto equip it with its colexicographic order. The precise meaning depends on the type we take the colex of. Examples includeFinset,DFinsupp,Finsupp.
Notation #
The general rule for notation of Lex types is to append ₗ to the usual notation.
Implementation notes #
One should not abuse definitional equality between α and αᵒᵈ/Lex α. Instead, explicit
coercions should be inserted:
Lex:toLex : α → Lex αandofLex : Lex α → α.Colex:toColex : α → Colex αandofColex : Colex α → α.
See also #
This file is similar to Mathlib.Algebra.Group.TypeTags.Basic.
Lexicographic order #
@[implicit_reducible]
Equations
- instDecidableEqLex α = h
@[implicit_reducible]
Equations
- instInhabitedLex α = h
@[implicit_reducible]
Equations
- instUniqueLex α = h
@[implicit_reducible]
Equations
- instCoeFunLex = { coe := fun (f : Lex α) => CoeFun.coe (ofLex f) }
Colexicographic order #
@[implicit_reducible]
Equations
@[implicit_reducible]
Equations
- instInhabitedColex α = h
@[implicit_reducible]
Equations
- instUniqueColex α = h
@[implicit_reducible]
Equations
- instCoeFunColex = { coe := fun (f : Colex α) => CoeFun.coe (ofColex f) }