- top : α
Typeclass for the ⊤
(\top
) notation
Instances
- order_top.to_has_top
- pi.has_top
- with_top.has_top
- order_dual.has_top
- prod.has_top
- submonoid.has_top
- add_submonoid.has_top
- subgroup.has_top
- add_subgroup.has_top
- submodule.has_top
- enat.has_top
- preorder_hom.has_top
- subsemiring.has_top
- subring.has_top
- associates.has_top
- quiver.wide_subquiver.has_top
- filter.has_top
- uniform_space.has_top
- lie_subalgebra.has_top
- lie_submodule.has_top
- convex_cone.has_top
- filter.germ.has_top
- enorm.has_top
- category_theory.mono_over.has_top
- subfield.has_top
- open_subgroup.has_top
- open_add_subgroup.has_top
- bot : α
Typeclass for the ⊥
(\bot
) notation
Instances
- order_bot.to_has_bot
- boolean_ring.has_bot
- pi.has_bot
- with_bot.has_bot
- order_dual.has_bot
- prod.has_bot
- submonoid.has_bot
- add_submonoid.has_bot
- subgroup.has_bot
- add_subgroup.has_bot
- sub_mul_action.has_bot
- submodule.has_bot
- enat.has_bot
- preorder_hom.has_bot
- subsemiring.has_bot
- subring.has_bot
- associates.has_bot
- quiver.wide_subquiver.has_bot
- uniform_space.has_bot
- linear_pmap.has_bot
- lie_subalgebra.has_bot
- lie_submodule.has_bot
- pequiv.has_bot
- nnreal.has_bot
- measure_theory.outer_measure.has_bot
- convex_cone.has_bot
- filter.germ.has_bot
- category_theory.mono_over.has_bot
- top : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_top : ∀ (a : α), a ≤ ⊤
An order_top
is a partial order with a greatest element.
(We could state this on preorders, but then it wouldn't be unique
so distinguishing one would seem odd.)
Instances
- semilattice_sup_top.to_order_top
- semilattice_inf_top.to_order_top
- bounded_lattice.to_order_top
- linear_ordered_add_comm_monoid_with_top.to_order_top
- nonempty_fin_lin_ord.to_order_top
- with_bot.order_top
- with_top.order_top
- order_dual.order_top
- prod.order_top
- finset.order_top
- set.Iic.order_top
- set.Ici.order_top
- submodule.order_top
- enat.order_top
- preorder_hom.order_top
- associates.order_top
- topological_space.open_nhds.order_top
- measure_theory.simple_func.order_top
- filter.germ.order_top
- category_theory.pretopology.order_top
- category_theory.subobject.order_top
- semiquot.order_top
- ereal.order_top
- structure_groupoid.order_top
- order.ideal.order_top
- order.pfilter.order_top
- bot : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- bot_le : ∀ (a : α), ⊥ ≤ a
An order_bot
is a partial order with a least element.
(We could state this on preorders, but then it wouldn't be unique
so distinguishing one would seem odd.)
Instances
- semilattice_sup_bot.to_order_bot
- semilattice_inf_bot.to_order_bot
- bounded_lattice.to_order_bot
- canonically_ordered_add_monoid.to_order_bot
- canonically_ordered_monoid.to_order_bot
- conditionally_complete_linear_order_bot.to_order_bot
- nonempty_fin_lin_ord.to_order_bot
- pi.order_bot
- with_bot.order_bot
- with_top.order_bot
- order_dual.order_bot
- prod.order_bot
- with_zero.order_bot
- pnat.order_bot
- set.Iic.order_bot
- set.Ici.order_bot
- submodule.order_bot
- roption.order_bot
- preorder_hom.order_bot
- associates.order_bot
- cardinal.order_bot
- pequiv.order_bot
- nnreal.order_bot
- measure_theory.outer_measure.outer_measure.order_bot
- measure_theory.simple_func.order_bot
- filter.germ.order_bot
- category_theory.pretopology.order_bot
- category_theory.subobject.order_bot
- finsupp.order_bot
- ereal.order_bot
- intermediate_field.lifts.order_bot
- structure_groupoid.order_bot
- order.ideal.order_bot
- order.pfilter.order_bot
- ring.fractional_ideal.order_bot
- top : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_top : ∀ (a : α), a ≤ ⊤
- sup : α → α → α
- le_sup_left : ∀ (a b : α), a ≤ a ⊔ b
- le_sup_right : ∀ (a b : α), b ≤ a ⊔ b
- sup_le : ∀ (a b c_1 : α), a ≤ c_1 → b ≤ c_1 → a ⊔ b ≤ c_1
A semilattice_sup_top
is a semilattice with top and join.
Instances
- semilattice_sup_top_of_bounded_lattice
- pi.semilattice_sup_top
- with_top.semilattice_sup
- order_dual.semilattice_sup_top
- prod.semilattice_sup_top
- set.Iic.semilattice_sup_top
- set.Ici.semilattice_sup_top
- filter.germ.semilattice_sup_top
- enorm.semilattice_sup_top
- semiquot.semilattice_sup_top
- open_subgroup.semilattice_sup_top
- open_add_subgroup.semilattice_sup_top
- bot : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- bot_le : ∀ (a : α), ⊥ ≤ a
- sup : α → α → α
- le_sup_left : ∀ (a b : α), a ≤ a ⊔ b
- le_sup_right : ∀ (a b : α), b ≤ a ⊔ b
- sup_le : ∀ (a b c_1 : α), a ≤ c_1 → b ≤ c_1 → a ⊔ b ≤ c_1
A semilattice_sup_bot
is a semilattice with bottom and join.
Instances
- semilattice_sup_bot_of_bounded_lattice
- generalized_boolean_algebra.to_semilattice_sup_bot
- canonically_linear_ordered_monoid.semilattice_sup_bot
- canonically_linear_ordered_add_monoid.semilattice_sup_bot
- nat.semilattice_sup_bot
- pi.semilattice_sup_bot
- with_bot.semilattice_sup
- order_dual.semilattice_sup_bot
- prod.semilattice_sup_bot
- nat.subtype.semilattice_sup_bot
- multiset.semilattice_sup_bot
- finset.semilattice_sup_bot
- set.Iic.semilattice_sup_bot
- set.Ici.semilattice_sup_bot
- enat.semilattice_sup_bot
- nnreal.semilattice_sup_bot
- measure_theory.simple_func.semilattice_sup_bot
- filter.germ.semilattice_sup_bot
- category_theory.subobject.semilattice_sup_bot
- prime_multiset.semilattice_sup_bot
- topological_space.compacts.semilattice_sup_bot
- ring.fractional_ideal.semilattice_sup_bot
Equations
- nat.semilattice_sup_bot = {bot := 0, le := distrib_lattice.le nat.distrib_lattice, lt := distrib_lattice.lt nat.distrib_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := nat.zero_le, sup := distrib_lattice.sup nat.distrib_lattice, le_sup_left := _, le_sup_right := _, sup_le := _}
- top : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_top : ∀ (a : α), a ≤ ⊤
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c_1 : α), a ≤ b → a ≤ c_1 → a ≤ b ⊓ c_1
A semilattice_inf_top
is a semilattice with top and meet.
Instances
- semilattice_inf_top_of_bounded_lattice
- pi.semilattice_inf_top
- with_top.semilattice_inf
- order_dual.semilattice_inf_top
- prod.semilattice_inf_top
- set.Iic.semilattice_inf_top
- set.Ici.semilattice_inf_top
- filter.germ.semilattice_inf_top
- category_theory.subobject.semilattice_inf_top
- open_subgroup.semilattice_inf_top
- open_add_subgroup.semilattice_inf_top
- discrete_quotient.semilattice_inf_top
- bot : α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- bot_le : ∀ (a : α), ⊥ ≤ a
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c_1 : α), a ≤ b → a ≤ c_1 → a ≤ b ⊓ c_1
A semilattice_inf_bot
is a semilattice with bottom and meet.
Instances
- semilattice_inf_bot_of_bounded_lattice
- generalized_boolean_algebra.to_semilattice_inf_bot
- pi.semilattice_inf_bot
- with_bot.semilattice_inf
- order_dual.semilattice_inf_bot
- prod.semilattice_inf_bot
- multiset.semilattice_inf_bot
- finset.semilattice_inf_bot
- set.Iic.semilattice_inf_bot
- set.Ici.semilattice_inf_bot
- linear_pmap.semilattice_inf_bot
- pequiv.semilattice_inf_bot
- nnreal.semilattice_inf_bot
- filter.germ.semilattice_inf_bot
- finsupp.semilattice_inf_bot
- topological_space.compacts.semilattice_inf_bot
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_sup_left : ∀ (a b : α), a ≤ a ⊔ b
- le_sup_right : ∀ (a b : α), b ≤ a ⊔ b
- sup_le : ∀ (a b c_1 : α), a ≤ c_1 → b ≤ c_1 → a ⊔ b ≤ c_1
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c_1 : α), a ≤ b → a ≤ c_1 → a ≤ b ⊓ c_1
- top : α
- le_top : ∀ (a : α), a ≤ ⊤
- bot : α
- bot_le : ∀ (a : α), ⊥ ≤ a
A bounded lattice is a lattice with a top and bottom element,
denoted ⊤
and ⊥
respectively. This allows for the interpretation
of all finite suprema and infima, taking inf ∅ = ⊤
and sup ∅ = ⊥
.
Instances
- bounded_distrib_lattice.to_bounded_lattice
- complete_lattice.to_bounded_lattice
- pi.bounded_lattice
- with_bot.bounded_lattice
- with_top.bounded_lattice
- order_dual.bounded_lattice
- prod.bounded_lattice
- bool.bounded_lattice
- fin.bounded_lattice
- set.Iic.bounded_lattice
- set.Ici.bounded_lattice
- enat.bounded_lattice
- with_top.with_bot.bounded_lattice
- associates.bounded_lattice
- measure_theory.simple_func.bounded_lattice
- filter.germ.bounded_lattice
- category_theory.subobject.bounded_lattice
Equations
- semilattice_inf_top_of_bounded_lattice α = {top := bounded_lattice.top bl, le := bounded_lattice.le bl, lt := bounded_lattice.lt bl, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := bounded_lattice.inf bl, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- semilattice_inf_bot_of_bounded_lattice α = {bot := bounded_lattice.bot bl, le := bounded_lattice.le bl, lt := bounded_lattice.lt bl, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := bounded_lattice.inf bl, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- semilattice_sup_top_of_bounded_lattice α = {top := bounded_lattice.top bl, le := bounded_lattice.le bl, lt := bounded_lattice.lt bl, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, sup := bounded_lattice.sup bl, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- semilattice_sup_bot_of_bounded_lattice α = {bot := bounded_lattice.bot bl, le := bounded_lattice.le bl, lt := bounded_lattice.lt bl, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := bounded_lattice.sup bl, le_sup_left := _, le_sup_right := _, sup_le := _}
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c_1 : α), a ≤ b → b ≤ c_1 → a ≤ c_1
- lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- le_sup_left : ∀ (a b : α), a ≤ a ⊔ b
- le_sup_right : ∀ (a b : α), b ≤ a ⊔ b
- sup_le : ∀ (a b c_1 : α), a ≤ c_1 → b ≤ c_1 → a ⊔ b ≤ c_1
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c_1 : α), a ≤ b → a ≤ c_1 → a ≤ b ⊓ c_1
- le_sup_inf : ∀ (x y z : α), (x ⊔ y) ⊓ (x ⊔ z) ≤ x ⊔ y ⊓ z
- top : α
- le_top : ∀ (a : α), a ≤ ⊤
- bot : α
- bot_le : ∀ (a : α), ⊥ ≤ a
A bounded distributive lattice is exactly what it sounds like.
Propositions form a bounded distributive lattice.
Equations
- bounded_distrib_lattice_Prop = {sup := or, le := λ (a b : Prop), a → b, lt := distrib_lattice.lt._default (λ (a b : Prop), a → b), le_refl := bounded_distrib_lattice_Prop._proof_1, le_trans := bounded_distrib_lattice_Prop._proof_2, lt_iff_le_not_le := bounded_distrib_lattice_Prop._proof_3, le_antisymm := bounded_distrib_lattice_Prop._proof_4, le_sup_left := or.inl, le_sup_right := or.inr, sup_le := bounded_distrib_lattice_Prop._proof_5, inf := and, inf_le_left := and.left, inf_le_right := and.right, le_inf := bounded_distrib_lattice_Prop._proof_6, le_sup_inf := bounded_distrib_lattice_Prop._proof_7, top := true, le_top := bounded_distrib_lattice_Prop._proof_8, bot := false, bot_le := false.elim}
Equations
- Prop.linear_order = {le := partial_order.le (order_bot.to_partial_order Prop), lt := partial_order.lt (order_bot.to_partial_order Prop), le_refl := Prop.linear_order._proof_1, le_trans := Prop.linear_order._proof_2, lt_iff_le_not_le := Prop.linear_order._proof_3, le_antisymm := Prop.linear_order._proof_4, le_total := Prop.linear_order._proof_5, decidable_le := classical.dec_rel has_le.le, decidable_eq := decidable_eq_of_decidable_le (classical.dec_rel has_le.le), decidable_lt := decidable_lt_of_decidable_le (classical.dec_rel has_le.le)}
Equations
- pi.order_bot = {bot := λ (_x : α), ⊥, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _}
Equations
- pi.has_sup = {sup := λ (f g : Π (i : ι), α i) (i : ι), f i ⊔ g i}
Equations
- pi.has_inf = {inf := λ (f g : Π (i : ι), α i) (i : ι), f i ⊓ g i}
Equations
- pi.has_bot = {bot := λ (i : ι), ⊥}
Equations
- pi.has_top = {top := λ (i : ι), ⊤}
Equations
- pi.semilattice_sup = {sup := has_sup.sup pi.has_sup, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- pi.semilattice_inf = {inf := has_inf.inf pi.has_inf, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- pi.semilattice_inf_bot = {bot := ⊥, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := has_inf.inf pi.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- pi.semilattice_inf_top = {top := ⊤, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := has_inf.inf pi.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- pi.semilattice_sup_bot = {bot := ⊥, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := has_sup.sup pi.has_sup, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- pi.semilattice_sup_top = {top := ⊤, le := partial_order.le pi.partial_order, lt := partial_order.lt pi.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, sup := has_sup.sup pi.has_sup, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- pi.lattice = {sup := semilattice_sup.sup pi.semilattice_sup, le := semilattice_sup.le pi.semilattice_sup, lt := semilattice_sup.lt pi.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf.inf pi.semilattice_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- pi.bounded_lattice = {sup := semilattice_sup_top.sup pi.semilattice_sup_top, le := semilattice_sup_top.le pi.semilattice_sup_top, lt := semilattice_sup_top.lt pi.semilattice_sup_top, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf_bot.inf pi.semilattice_inf_bot, inf_le_left := _, inf_le_right := _, le_inf := _, top := semilattice_sup_top.top pi.semilattice_sup_top, le_top := _, bot := semilattice_inf_bot.bot pi.semilattice_inf_bot, bot_le := _}
Equations
- with_bot.has_coe_t = {coe := some α}
Equations
- with_bot.has_bot = {bot := none α}
Equations
- with_bot.inhabited = {default := ⊥}
Recursor for with_bot
using the preferred forms ⊥
and ↑a
.
Equations
- with_bot.rec_bot_coe h₁ h₂ = option.rec h₁ h₂
Equations
- with_bot.preorder = {le := λ (o₁ o₂ : option α), ∀ (a : α), a ∈ o₁ → (∃ (b : α) (H : b ∈ o₂), a ≤ b), lt := has_lt.lt with_bot.has_lt, le_refl := _, le_trans := _, lt_iff_le_not_le := _}
Equations
- with_bot.partial_order = {le := preorder.le with_bot.preorder, lt := preorder.lt with_bot.preorder, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- with_bot.order_bot = {bot := ⊥, le := partial_order.le with_bot.partial_order, lt := partial_order.lt with_bot.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _}
Equations
- with_bot.linear_order = {le := partial_order.le with_bot.partial_order, lt := partial_order.lt with_bot.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := with_bot.decidable_le (λ (a b : α), has_le.le.decidable a b), decidable_eq := decidable_eq_of_decidable_le with_bot.decidable_le, decidable_lt := with_bot.decidable_lt (λ (a b : α), has_lt.lt.decidable a b)}
Equations
- with_bot.semilattice_sup = {bot := order_bot.bot with_bot.order_bot, le := order_bot.le with_bot.order_bot, lt := order_bot.lt with_bot.order_bot, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := option.lift_or_get has_sup.sup, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- with_bot.semilattice_inf = {bot := order_bot.bot with_bot.order_bot, le := order_bot.le with_bot.order_bot, lt := order_bot.lt with_bot.order_bot, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := λ (o₁ o₂ : with_bot α), option.bind o₁ (λ (a : α), option.map (λ (b : α), a ⊓ b) o₂), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- with_bot.lattice = {sup := semilattice_sup_bot.sup with_bot.semilattice_sup, le := semilattice_sup_bot.le with_bot.semilattice_sup, lt := semilattice_sup_bot.lt with_bot.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf_bot.inf with_bot.semilattice_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- with_bot.order_top = {top := some ⊤, le := partial_order.le with_bot.partial_order, lt := partial_order.lt with_bot.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _}
Equations
- with_bot.bounded_lattice = {sup := lattice.sup with_bot.lattice, le := lattice.le with_bot.lattice, lt := lattice.lt with_bot.lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := lattice.inf with_bot.lattice, inf_le_left := _, inf_le_right := _, le_inf := _, top := order_top.top with_bot.order_top, le_top := _, bot := order_bot.bot with_bot.order_bot, bot_le := _}
Equations
- with_top.has_coe_t = {coe := some α}
Equations
- with_top.has_top = {top := none α}
Equations
- with_top.inhabited = {default := ⊤}
Recursor for with_top
using the preferred forms ⊤
and ↑a
.
Equations
- with_top.rec_top_coe h₁ h₂ = option.rec h₁ h₂
Equations
- with_top.preorder = {le := λ (o₁ o₂ : option α), ∀ (a : α), a ∈ o₂ → (∃ (b : α) (H : b ∈ o₁), b ≤ a), lt := has_lt.lt with_top.has_lt, le_refl := _, le_trans := _, lt_iff_le_not_le := _}
Equations
- with_top.partial_order = {le := preorder.le with_top.preorder, lt := preorder.lt with_top.preorder, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- with_top.order_top = {top := ⊤, le := partial_order.le with_top.partial_order, lt := partial_order.lt with_top.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _}
Equations
- with_top.decidable_le = λ (x y : with_top α), with_bot.decidable_le y x
Equations
- with_top.decidable_lt = λ (x y : with_top α), with_bot.decidable_lt y x
Equations
- with_top.linear_order = {le := partial_order.le with_top.partial_order, lt := partial_order.lt with_top.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := with_top.decidable_le (λ (a b : α), has_le.le.decidable a b), decidable_eq := decidable_eq_of_decidable_le with_top.decidable_le, decidable_lt := with_top.decidable_lt (λ (a b : α), has_lt.lt.decidable a b)}
Equations
- with_top.semilattice_inf = {top := order_top.top with_top.order_top, le := order_top.le with_top.order_top, lt := order_top.lt with_top.order_top, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := option.lift_or_get has_inf.inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- with_top.semilattice_sup = {top := order_top.top with_top.order_top, le := order_top.le with_top.order_top, lt := order_top.lt with_top.order_top, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, sup := λ (o₁ o₂ : with_top α), option.bind o₁ (λ (a : α), option.map (λ (b : α), a ⊔ b) o₂), le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- with_top.lattice = {sup := semilattice_sup_top.sup with_top.semilattice_sup, le := semilattice_sup_top.le with_top.semilattice_sup, lt := semilattice_sup_top.lt with_top.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf_top.inf with_top.semilattice_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- with_top.order_bot = {bot := some ⊥, le := partial_order.le with_top.partial_order, lt := partial_order.lt with_top.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _}
Equations
- with_top.bounded_lattice = {sup := lattice.sup with_top.lattice, le := lattice.le with_top.lattice, lt := lattice.lt with_top.lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := lattice.inf with_top.lattice, inf_le_left := _, inf_le_right := _, le_inf := _, top := order_top.top with_top.order_top, le_top := _, bot := order_bot.bot with_top.order_bot, bot_le := _}
A subtype forms a ⊔
-⊥
-semilattice if ⊥
and ⊔
preserve the property.
Equations
- subtype.semilattice_sup_bot Pbot Psup = {bot := ⟨⊥, Pbot⟩, le := semilattice_sup.le (subtype.semilattice_sup Psup), lt := semilattice_sup.lt (subtype.semilattice_sup Psup), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := semilattice_sup.sup (subtype.semilattice_sup Psup), le_sup_left := _, le_sup_right := _, sup_le := _}
A subtype forms a ⊓
-⊥
-semilattice if ⊥
and ⊓
preserve the property.
Equations
- subtype.semilattice_inf_bot Pbot Pinf = {bot := ⟨⊥, Pbot⟩, le := semilattice_inf.le (subtype.semilattice_inf Pinf), lt := semilattice_inf.lt (subtype.semilattice_inf Pinf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := semilattice_inf.inf (subtype.semilattice_inf Pinf), inf_le_left := _, inf_le_right := _, le_inf := _}
A subtype forms a ⊓
-⊤
-semilattice if ⊤
and ⊓
preserve the property.
Equations
- subtype.semilattice_inf_top Ptop Pinf = {top := ⟨⊤, Ptop⟩, le := semilattice_inf.le (subtype.semilattice_inf Pinf), lt := semilattice_inf.lt (subtype.semilattice_inf Pinf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := semilattice_inf.inf (subtype.semilattice_inf Pinf), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- order_dual.has_top α = {top := ⊥}
Equations
- order_dual.has_bot α = {bot := ⊤}
Equations
- order_dual.order_top α = {top := ⊤, le := partial_order.le (order_dual.partial_order α), lt := partial_order.lt (order_dual.partial_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _}
Equations
- order_dual.order_bot α = {bot := ⊥, le := partial_order.le (order_dual.partial_order α), lt := partial_order.lt (order_dual.partial_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _}
Equations
- order_dual.semilattice_sup_top α = {top := order_top.top (order_dual.order_top α), le := semilattice_sup.le (order_dual.semilattice_sup α), lt := semilattice_sup.lt (order_dual.semilattice_sup α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, sup := semilattice_sup.sup (order_dual.semilattice_sup α), le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- order_dual.semilattice_sup_bot α = {bot := order_bot.bot (order_dual.order_bot α), le := semilattice_sup.le (order_dual.semilattice_sup α), lt := semilattice_sup.lt (order_dual.semilattice_sup α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := semilattice_sup.sup (order_dual.semilattice_sup α), le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- order_dual.semilattice_inf_top α = {top := order_top.top (order_dual.order_top α), le := semilattice_inf.le (order_dual.semilattice_inf α), lt := semilattice_inf.lt (order_dual.semilattice_inf α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := semilattice_inf.inf (order_dual.semilattice_inf α), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- order_dual.semilattice_inf_bot α = {bot := order_bot.bot (order_dual.order_bot α), le := semilattice_inf.le (order_dual.semilattice_inf α), lt := semilattice_inf.lt (order_dual.semilattice_inf α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := semilattice_inf.inf (order_dual.semilattice_inf α), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- order_dual.bounded_lattice α = {sup := lattice.sup (order_dual.lattice α), le := lattice.le (order_dual.lattice α), lt := lattice.lt (order_dual.lattice α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := lattice.inf (order_dual.lattice α), inf_le_left := _, inf_le_right := _, le_inf := _, top := order_top.top (order_dual.order_top α), le_top := _, bot := order_bot.bot (order_dual.order_bot α), bot_le := _}
Equations
- order_dual.bounded_distrib_lattice α = {sup := bounded_lattice.sup (order_dual.bounded_lattice α), le := bounded_lattice.le (order_dual.bounded_lattice α), lt := bounded_lattice.lt (order_dual.bounded_lattice α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := bounded_lattice.inf (order_dual.bounded_lattice α), inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, top := bounded_lattice.top (order_dual.bounded_lattice α), le_top := _, bot := bounded_lattice.bot (order_dual.bounded_lattice α), bot_le := _}
Equations
- prod.order_top α β = {top := ⊤, le := partial_order.le (prod.partial_order α β), lt := partial_order.lt (prod.partial_order α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _}
Equations
- prod.order_bot α β = {bot := ⊥, le := partial_order.le (prod.partial_order α β), lt := partial_order.lt (prod.partial_order α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _}
Equations
- prod.semilattice_sup_top α β = {top := order_top.top (prod.order_top α β), le := semilattice_sup.le (prod.semilattice_sup α β), lt := semilattice_sup.lt (prod.semilattice_sup α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, sup := semilattice_sup.sup (prod.semilattice_sup α β), le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- prod.semilattice_inf_top α β = {top := order_top.top (prod.order_top α β), le := semilattice_inf.le (prod.semilattice_inf α β), lt := semilattice_inf.lt (prod.semilattice_inf α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_top := _, inf := semilattice_inf.inf (prod.semilattice_inf α β), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- prod.semilattice_sup_bot α β = {bot := order_bot.bot (prod.order_bot α β), le := semilattice_sup.le (prod.semilattice_sup α β), lt := semilattice_sup.lt (prod.semilattice_sup α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, sup := semilattice_sup.sup (prod.semilattice_sup α β), le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- prod.semilattice_inf_bot α β = {bot := order_bot.bot (prod.order_bot α β), le := semilattice_inf.le (prod.semilattice_inf α β), lt := semilattice_inf.lt (prod.semilattice_inf α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, bot_le := _, inf := semilattice_inf.inf (prod.semilattice_inf α β), inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- prod.bounded_lattice α β = {sup := lattice.sup (prod.lattice α β), le := lattice.le (prod.lattice α β), lt := lattice.lt (prod.lattice α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := lattice.inf (prod.lattice α β), inf_le_left := _, inf_le_right := _, le_inf := _, top := order_top.top (prod.order_top α β), le_top := _, bot := order_bot.bot (prod.order_bot α β), bot_le := _}
Equations
- prod.bounded_distrib_lattice α β = {sup := bounded_lattice.sup (prod.bounded_lattice α β), le := bounded_lattice.le (prod.bounded_lattice α β), lt := bounded_lattice.lt (prod.bounded_lattice α β), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := bounded_lattice.inf (prod.bounded_lattice α β), inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, top := bounded_lattice.top (prod.bounded_lattice α β), le_top := _, bot := bounded_lattice.bot (prod.bounded_lattice α β), bot_le := _}
- exists_is_compl : ∀ (a : α), ∃ (b : α), is_compl a b
A complemented bounded lattice is one where every element has a (not necessarily unique) complement.
Equations
- bool.bounded_lattice = {sup := lattice.sup infer_instance, le := lattice.le infer_instance, lt := lattice.lt infer_instance, le_refl := bool.bounded_lattice._proof_1, le_trans := bool.bounded_lattice._proof_2, lt_iff_le_not_le := bool.bounded_lattice._proof_3, le_antisymm := bool.bounded_lattice._proof_4, le_sup_left := bool.bounded_lattice._proof_5, le_sup_right := bool.bounded_lattice._proof_6, sup_le := bool.bounded_lattice._proof_7, inf := lattice.inf infer_instance, inf_le_left := bool.bounded_lattice._proof_8, inf_le_right := bool.bounded_lattice._proof_9, le_inf := bool.bounded_lattice._proof_10, top := tt, le_top := bool.bounded_lattice._proof_11, bot := ff, bot_le := bool.bounded_lattice._proof_12}