⊤ and ⊥, bounded lattices and variants #
This file defines top and bottom elements (greatest and least elements) of a type, the bounded
variants of different kinds of lattices, sets up the typeclass hierarchy between them and provides
instances for Prop
and fun
.
Main declarations #
<Top/Bot> α
: Typeclasses to declare the⊤
/⊥
notation.Order<Top/Bot> α
: Order with a top/bottom element.BoundedOrder α
: Order with a top and bottom element.
Top, bottom element #
An order is (noncomputably) either an OrderTop
or a NoTopOrder
. Use as
casesI topOrderOrNoTopOrder α
.
Equations
Instances For
Alias of ne_top_of_lt
.
Alias of lt_top_of_lt
.
Alias of the forward direction of isMax_iff_eq_top
.
Alias of the forward direction of isTop_iff_eq_top
.
An order is (noncomputably) either an OrderBot
or a NoBotOrder
. Use as
casesI botOrderOrNoBotOrder α
.
Equations
Instances For
Equations
- OrderDual.instTop α = { top := ⊥ }
Equations
- OrderDual.instBot α = { bot := ⊤ }
Equations
- OrderDual.instOrderTop α = { toTop := inferInstanceAs (Top αᵒᵈ), le_top := ⋯ }
Equations
- OrderDual.instOrderBot α = { toBot := inferInstanceAs (Bot αᵒᵈ), bot_le := ⋯ }
Alias of ne_bot_of_gt
.
Alias of bot_lt_of_lt
.
Alias of the forward direction of isMin_iff_eq_bot
.
Alias of the forward direction of isBot_iff_eq_bot
.
Bounded order #
Equations
- OrderDual.instBoundedOrder α = { toOrderTop := inferInstanceAs (OrderTop αᵒᵈ), toOrderBot := inferInstanceAs (OrderBot αᵒᵈ) }
Function lattices #
Equations
- Pi.instBotForall = { bot := fun (x : ι) => ⊥ }
Equations
- Pi.instTopForall = { top := fun (x : ι) => ⊤ }
Equations
- Pi.instOrderTop = { toTop := Pi.instTopForall, le_top := ⋯ }
Equations
- Pi.instOrderBot = { toBot := Pi.instBotForall, bot_le := ⋯ }
Equations
- Pi.instBoundedOrder = { toOrderTop := inferInstanceAs (OrderTop ((i : ι) → α' i)), toOrderBot := inferInstanceAs (OrderBot ((i : ι) → α' i)) }
Pullback a BoundedOrder
.
Equations
- BoundedOrder.lift f map_le map_top map_bot = { toOrderTop := OrderTop.lift f map_le map_top, toOrderBot := OrderBot.lift f map_le map_bot }
Instances For
Subtype, order dual, product lattices #
A subtype remains a bounded order if the property holds at ⊥
and ⊤
.
Equations
- Subtype.boundedOrder hbot htop = { toOrderTop := Subtype.orderTop htop, toOrderBot := Subtype.orderBot hbot }
Instances For
Equations
- Prod.instOrderTop α β = { toTop := inferInstanceAs (Top (α × β)), le_top := ⋯ }
Equations
- Prod.instOrderBot α β = { toBot := inferInstanceAs (Bot (α × β)), bot_le := ⋯ }
Equations
- Prod.instBoundedOrder α β = { toOrderTop := inferInstanceAs (OrderTop (α × β)), toOrderBot := inferInstanceAs (OrderBot (α × β)) }
Equations
- ULift.instTop = { top := { down := ⊤ } }
Equations
- ULift.instBot = { bot := { down := ⊥ } }
Equations
Equations
Equations
- ULift.instBoundedOrder = { toOrderTop := ULift.instOrderTop, toOrderBot := ULift.instOrderBot }
Equations
- Bool.instBoundedOrder = { top := true, le_top := Bool.le_true, bot := false, bot_le := Bool.false_le }