Frames, completely distributive lattices and Boolean algebras #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define and provide API for frames, completely distributive lattices and completely distributive Boolean algebras.
Typeclasses #
order.frame
: Frame: A complete lattice whose⊓
distributes over⨆
.order.coframe
: Coframe: A complete lattice whose⊔
distributes over⨅
.complete_distrib_lattice
: Completely distributive lattices: A complete lattice whose⊓
and⊔
distribute over⨆
and⨅
respectively.complete_boolean_algebra
: Completely distributive Boolean algebra: A Boolean algebra whose⊓
and⊔
distribute over⨆
and⨅
respectively.
A set of opens gives rise to a topological space precisely if it forms a frame. Such a frame is also
completely distributive, but not all frames are. filter
is a coframe but not a completely
distributive lattice.
TODO #
Add instances for prod
References #
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- 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 : α), a ≤ c → b ≤ c → a ⊔ b ≤ c
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
- Sup : set α → α
- le_Sup : ∀ (s : set α) (a : α), a ∈ s → a ≤ order.frame.Sup s
- Sup_le : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → b ≤ a) → order.frame.Sup s ≤ a
- Inf : set α → α
- Inf_le : ∀ (s : set α) (a : α), a ∈ s → order.frame.Inf s ≤ a
- le_Inf : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → a ≤ b) → a ≤ order.frame.Inf s
- top : α
- bot : α
- le_top : ∀ (x : α), x ≤ ⊤
- bot_le : ∀ (x : α), ⊥ ≤ x
- inf_Sup_le_supr_inf : ∀ (a : α) (s : set α), a ⊓ order.frame.Sup s ≤ ⨆ (b : α) (H : b ∈ s), a ⊓ b
A frame, aka complete Heyting algebra, is a complete lattice whose ⊓
distributes over ⨆
.
Instances of this typeclass
Instances of other typeclasses for order.frame
- order.frame.has_sizeof_inst
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- 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 : α), a ≤ c → b ≤ c → a ⊔ b ≤ c
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
- Sup : set α → α
- le_Sup : ∀ (s : set α) (a : α), a ∈ s → a ≤ order.coframe.Sup s
- Sup_le : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → b ≤ a) → order.coframe.Sup s ≤ a
- Inf : set α → α
- Inf_le : ∀ (s : set α) (a : α), a ∈ s → order.coframe.Inf s ≤ a
- le_Inf : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → a ≤ b) → a ≤ order.coframe.Inf s
- top : α
- bot : α
- le_top : ∀ (x : α), x ≤ ⊤
- bot_le : ∀ (x : α), ⊥ ≤ x
- infi_sup_le_sup_Inf : ∀ (a : α) (s : set α), (⨅ (b : α) (H : b ∈ s), a ⊔ b) ≤ a ⊔ order.coframe.Inf s
A coframe, aka complete Brouwer algebra or complete co-Heyting algebra, is a complete lattice
whose ⊔
distributes over ⨅
.
Instances of this typeclass
Instances of other typeclasses for order.coframe
- order.coframe.has_sizeof_inst
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- 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 : α), a ≤ c → b ≤ c → a ⊔ b ≤ c
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
- Sup : set α → α
- le_Sup : ∀ (s : set α) (a : α), a ∈ s → a ≤ complete_distrib_lattice.Sup s
- Sup_le : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → b ≤ a) → complete_distrib_lattice.Sup s ≤ a
- Inf : set α → α
- Inf_le : ∀ (s : set α) (a : α), a ∈ s → complete_distrib_lattice.Inf s ≤ a
- le_Inf : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → a ≤ b) → a ≤ complete_distrib_lattice.Inf s
- top : α
- bot : α
- le_top : ∀ (x : α), x ≤ ⊤
- bot_le : ∀ (x : α), ⊥ ≤ x
- inf_Sup_le_supr_inf : ∀ (a : α) (s : set α), a ⊓ complete_distrib_lattice.Sup s ≤ ⨆ (b : α) (H : b ∈ s), a ⊓ b
- infi_sup_le_sup_Inf : ∀ (a : α) (s : set α), (⨅ (b : α) (H : b ∈ s), a ⊔ b) ≤ a ⊔ complete_distrib_lattice.Inf s
A completely distributive lattice is a complete lattice whose ⊔
and ⊓
respectively
distribute over ⨅
and ⨆
.
Instances of this typeclass
Instances of other typeclasses for complete_distrib_lattice
- complete_distrib_lattice.has_sizeof_inst
Equations
- complete_distrib_lattice.to_coframe = {sup := complete_distrib_lattice.sup _inst_1, le := complete_distrib_lattice.le _inst_1, lt := complete_distrib_lattice.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_distrib_lattice.inf _inst_1, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_distrib_lattice.Sup _inst_1, le_Sup := _, Sup_le := _, Inf := complete_distrib_lattice.Inf _inst_1, Inf_le := _, le_Inf := _, top := complete_distrib_lattice.top _inst_1, bot := complete_distrib_lattice.bot _inst_1, le_top := _, bot_le := _, infi_sup_le_sup_Inf := _}
Equations
- order_dual.coframe = {sup := complete_lattice.sup (order_dual.complete_lattice α), le := complete_lattice.le (order_dual.complete_lattice α), lt := complete_lattice.lt (order_dual.complete_lattice α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf (order_dual.complete_lattice α), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (order_dual.complete_lattice α), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (order_dual.complete_lattice α), Inf_le := _, le_Inf := _, top := complete_lattice.top (order_dual.complete_lattice α), bot := complete_lattice.bot (order_dual.complete_lattice α), le_top := _, bot_le := _, infi_sup_le_sup_Inf := _}
Equations
- pi.frame = {sup := complete_lattice.sup pi.complete_lattice, le := complete_lattice.le pi.complete_lattice, lt := complete_lattice.lt pi.complete_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf pi.complete_lattice, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup pi.complete_lattice, le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf pi.complete_lattice, Inf_le := _, le_Inf := _, top := complete_lattice.top pi.complete_lattice, bot := complete_lattice.bot pi.complete_lattice, le_top := _, bot_le := _, inf_Sup_le_supr_inf := _}
Equations
- frame.to_distrib_lattice = distrib_lattice.of_inf_sup_le frame.to_distrib_lattice._proof_1
Equations
- order_dual.frame = {sup := complete_lattice.sup (order_dual.complete_lattice α), le := complete_lattice.le (order_dual.complete_lattice α), lt := complete_lattice.lt (order_dual.complete_lattice α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf (order_dual.complete_lattice α), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (order_dual.complete_lattice α), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (order_dual.complete_lattice α), Inf_le := _, le_Inf := _, top := complete_lattice.top (order_dual.complete_lattice α), bot := complete_lattice.bot (order_dual.complete_lattice α), le_top := _, bot_le := _, inf_Sup_le_supr_inf := _}
Equations
- pi.coframe = {sup := complete_lattice.sup pi.complete_lattice, le := complete_lattice.le pi.complete_lattice, lt := complete_lattice.lt pi.complete_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf pi.complete_lattice, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup pi.complete_lattice, le_Sup := _, Sup_le := _, Inf := has_Inf.Inf pi.has_Inf, Inf_le := _, le_Inf := _, top := complete_lattice.top pi.complete_lattice, bot := complete_lattice.bot pi.complete_lattice, le_top := _, bot_le := _, infi_sup_le_sup_Inf := _}
Equations
- coframe.to_distrib_lattice = {sup := order.coframe.sup _inst_1, le := order.coframe.le _inst_1, lt := order.coframe.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := order.coframe.inf _inst_1, inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _}
Equations
- order_dual.complete_distrib_lattice = {sup := order.frame.sup order_dual.frame, le := order.frame.le order_dual.frame, lt := order.frame.lt order_dual.frame, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := order.frame.inf order_dual.frame, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := order.frame.Sup order_dual.frame, le_Sup := _, Sup_le := _, Inf := order.frame.Inf order_dual.frame, Inf_le := _, le_Inf := _, top := order.frame.top order_dual.frame, bot := order.frame.bot order_dual.frame, le_top := _, bot_le := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
Equations
- pi.complete_distrib_lattice = {sup := order.frame.sup pi.frame, le := order.frame.le pi.frame, lt := order.frame.lt pi.frame, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := order.frame.inf pi.frame, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := order.frame.Sup pi.frame, le_Sup := _, Sup_le := _, Inf := order.frame.Inf pi.frame, Inf_le := _, le_Inf := _, top := order.frame.top pi.frame, bot := order.frame.bot pi.frame, le_top := _, bot_le := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
- sup : α → α → α
- le : α → α → Prop
- lt : α → α → Prop
- le_refl : ∀ (a : α), a ≤ a
- le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
- 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 : α), a ≤ c → b ≤ c → a ⊔ b ≤ c
- inf : α → α → α
- inf_le_left : ∀ (a b : α), a ⊓ b ≤ a
- inf_le_right : ∀ (a b : α), a ⊓ b ≤ b
- le_inf : ∀ (a b c : α), a ≤ b → a ≤ c → a ≤ b ⊓ c
- le_sup_inf : ∀ (x y z : α), (x ⊔ y) ⊓ (x ⊔ z) ≤ x ⊔ y ⊓ z
- compl : α → α
- sdiff : α → α → α
- himp : α → α → α
- top : α
- bot : α
- inf_compl_le_bot : ∀ (x : α), x ⊓ xᶜ ≤ ⊥
- top_le_sup_compl : ∀ (x : α), ⊤ ≤ x ⊔ xᶜ
- le_top : ∀ (a : α), a ≤ ⊤
- bot_le : ∀ (a : α), ⊥ ≤ a
- sdiff_eq : (∀ (x y : α), x \ y = x ⊓ yᶜ) . "obviously"
- himp_eq : (∀ (x y : α), x ⇨ y = y ⊔ xᶜ) . "obviously"
- Sup : set α → α
- le_Sup : ∀ (s : set α) (a : α), a ∈ s → a ≤ complete_boolean_algebra.Sup s
- Sup_le : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → b ≤ a) → complete_boolean_algebra.Sup s ≤ a
- Inf : set α → α
- Inf_le : ∀ (s : set α) (a : α), a ∈ s → complete_boolean_algebra.Inf s ≤ a
- le_Inf : ∀ (s : set α) (a : α), (∀ (b : α), b ∈ s → a ≤ b) → a ≤ complete_boolean_algebra.Inf s
- inf_Sup_le_supr_inf : ∀ (a : α) (s : set α), a ⊓ complete_boolean_algebra.Sup s ≤ ⨆ (b : α) (H : b ∈ s), a ⊓ b
- infi_sup_le_sup_Inf : ∀ (a : α) (s : set α), (⨅ (b : α) (H : b ∈ s), a ⊔ b) ≤ a ⊔ complete_boolean_algebra.Inf s
A complete Boolean algebra is a completely distributive Boolean algebra.
Instances of this typeclass
Instances of other typeclasses for complete_boolean_algebra
- complete_boolean_algebra.has_sizeof_inst
Equations
- pi.complete_boolean_algebra = {sup := boolean_algebra.sup pi.boolean_algebra, le := boolean_algebra.le pi.boolean_algebra, lt := boolean_algebra.lt pi.boolean_algebra, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := boolean_algebra.inf pi.boolean_algebra, inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, compl := boolean_algebra.compl pi.boolean_algebra, sdiff := boolean_algebra.sdiff pi.boolean_algebra, himp := boolean_algebra.himp pi.boolean_algebra, top := boolean_algebra.top pi.boolean_algebra, bot := boolean_algebra.bot pi.boolean_algebra, inf_compl_le_bot := _, top_le_sup_compl := _, le_top := _, bot_le := _, sdiff_eq := _, himp_eq := _, Sup := complete_distrib_lattice.Sup pi.complete_distrib_lattice, le_Sup := _, Sup_le := _, Inf := complete_distrib_lattice.Inf pi.complete_distrib_lattice, Inf_le := _, le_Inf := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
Equations
- Prop.complete_boolean_algebra = {sup := boolean_algebra.sup Prop.boolean_algebra, le := boolean_algebra.le Prop.boolean_algebra, lt := boolean_algebra.lt Prop.boolean_algebra, le_refl := Prop.complete_boolean_algebra._proof_1, le_trans := Prop.complete_boolean_algebra._proof_2, lt_iff_le_not_le := Prop.complete_boolean_algebra._proof_3, le_antisymm := Prop.complete_boolean_algebra._proof_4, le_sup_left := Prop.complete_boolean_algebra._proof_5, le_sup_right := Prop.complete_boolean_algebra._proof_6, sup_le := Prop.complete_boolean_algebra._proof_7, inf := boolean_algebra.inf Prop.boolean_algebra, inf_le_left := Prop.complete_boolean_algebra._proof_8, inf_le_right := Prop.complete_boolean_algebra._proof_9, le_inf := Prop.complete_boolean_algebra._proof_10, le_sup_inf := Prop.complete_boolean_algebra._proof_11, compl := boolean_algebra.compl Prop.boolean_algebra, sdiff := boolean_algebra.sdiff Prop.boolean_algebra, himp := boolean_algebra.himp Prop.boolean_algebra, top := boolean_algebra.top Prop.boolean_algebra, bot := boolean_algebra.bot Prop.boolean_algebra, inf_compl_le_bot := Prop.complete_boolean_algebra._proof_12, top_le_sup_compl := Prop.complete_boolean_algebra._proof_13, le_top := Prop.complete_boolean_algebra._proof_14, bot_le := Prop.complete_boolean_algebra._proof_15, sdiff_eq := Prop.complete_boolean_algebra._proof_16, himp_eq := Prop.complete_boolean_algebra._proof_17, Sup := complete_lattice.Sup Prop.complete_lattice, le_Sup := Prop.complete_boolean_algebra._proof_18, Sup_le := Prop.complete_boolean_algebra._proof_19, Inf := complete_lattice.Inf Prop.complete_lattice, Inf_le := Prop.complete_boolean_algebra._proof_20, le_Inf := Prop.complete_boolean_algebra._proof_21, inf_Sup_le_supr_inf := Prop.complete_boolean_algebra._proof_22, infi_sup_le_sup_Inf := Prop.complete_boolean_algebra._proof_23}
Pullback an order.frame
along an injection.
Equations
- function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot = {sup := complete_lattice.sup (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le := complete_lattice.le (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), lt := complete_lattice.lt (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), Inf_le := _, le_Inf := _, top := complete_lattice.top (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), bot := complete_lattice.bot (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_top := _, bot_le := _, inf_Sup_le_supr_inf := _}
Pullback an order.coframe
along an injection.
Equations
- function.injective.coframe f hf map_sup map_inf map_Sup map_Inf map_top map_bot = {sup := complete_lattice.sup (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le := complete_lattice.le (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), lt := complete_lattice.lt (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_lattice.inf (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), Inf_le := _, le_Inf := _, top := complete_lattice.top (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), bot := complete_lattice.bot (function.injective.complete_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_top := _, bot_le := _, infi_sup_le_sup_Inf := _}
Pullback a complete_distrib_lattice
along an injection.
Equations
- function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot = {sup := order.frame.sup (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le := order.frame.le (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), lt := order.frame.lt (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := order.frame.inf (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := order.frame.Sup (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_Sup := _, Sup_le := _, Inf := order.frame.Inf (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), Inf_le := _, le_Inf := _, top := order.frame.top (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), bot := order.frame.bot (function.injective.frame f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_top := _, bot_le := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
Pullback a complete_boolean_algebra
along an injection.
Equations
- function.injective.complete_boolean_algebra f hf map_sup map_inf map_Sup map_Inf map_top map_bot map_compl map_sdiff = {sup := complete_distrib_lattice.sup (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le := complete_distrib_lattice.le (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), lt := complete_distrib_lattice.lt (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_distrib_lattice.inf (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, compl := boolean_algebra.compl (function.injective.boolean_algebra f hf map_sup map_inf map_top map_bot map_compl map_sdiff), sdiff := boolean_algebra.sdiff (function.injective.boolean_algebra f hf map_sup map_inf map_top map_bot map_compl map_sdiff), himp := boolean_algebra.himp (function.injective.boolean_algebra f hf map_sup map_inf map_top map_bot map_compl map_sdiff), top := complete_distrib_lattice.top (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), bot := complete_distrib_lattice.bot (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), inf_compl_le_bot := _, top_le_sup_compl := _, le_top := _, bot_le := _, sdiff_eq := _, himp_eq := _, Sup := complete_distrib_lattice.Sup (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), le_Sup := _, Sup_le := _, Inf := complete_distrib_lattice.Inf (function.injective.complete_distrib_lattice f hf map_sup map_inf map_Sup map_Inf map_top map_bot), Inf_le := _, le_Inf := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
Equations
- punit.complete_boolean_algebra = {sup := boolean_algebra.sup punit.boolean_algebra, le := boolean_algebra.le punit.boolean_algebra, lt := boolean_algebra.lt punit.boolean_algebra, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := boolean_algebra.inf punit.boolean_algebra, inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _, compl := boolean_algebra.compl punit.boolean_algebra, sdiff := boolean_algebra.sdiff punit.boolean_algebra, himp := boolean_algebra.himp punit.boolean_algebra, top := boolean_algebra.top punit.boolean_algebra, bot := boolean_algebra.bot punit.boolean_algebra, inf_compl_le_bot := _, top_le_sup_compl := _, le_top := _, bot_le := _, sdiff_eq := _, himp_eq := _, Sup := λ (_x : set punit), punit.star, le_Sup := punit.complete_boolean_algebra._proof_1, Sup_le := punit.complete_boolean_algebra._proof_2, Inf := λ (_x : set punit), punit.star, Inf_le := punit.complete_boolean_algebra._proof_3, le_Inf := punit.complete_boolean_algebra._proof_4, inf_Sup_le_supr_inf := punit.complete_boolean_algebra._proof_5, infi_sup_le_sup_Inf := punit.complete_boolean_algebra._proof_6}