Up-sets and down-sets #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines upper and lower sets in an order.
Main declarations #
is_upper_set
: Predicate for a set to be an upper set. This means every element greater than a member of the set is in the set itself.is_lower_set
: Predicate for a set to be a lower set. This means every element less than a member of the set is in the set itself.upper_set
: The type of upper sets.lower_set
: The type of lower sets.upper_closure
: The greatest upper set containing a set.lower_closure
: The least lower set containing a set.upper_set.Ici
: Principal upper set.set.Ici
as an upper set.upper_set.Ioi
: Strict principal upper set.set.Ioi
as an upper set.lower_set.Iic
: Principal lower set.set.Iic
as an lower set.lower_set.Iio
: Strict principal lower set.set.Iio
as an lower set.
Notation #
×ˢ
is notation for upper_set.prod
/lower_set.prod
.
Notes #
Upper sets are ordered by reverse inclusion. This convention is motivated by the fact that this
makes them order-isomorphic to lower sets and antichains, and matches the convention on filter
.
TODO #
Lattice structure on antichains. Order equivalence between upper/lower sets and antichains.
Unbundled upper/lower sets #
Alias of the reverse direction of is_lower_set_preimage_of_dual_iff
.
Alias of the reverse direction of is_upper_set_preimage_of_dual_iff
.
Alias of the reverse direction of is_lower_set_preimage_to_dual_iff
.
Alias of the reverse direction of is_upper_set_preimage_to_dual_iff
.
Alias of the forward direction of is_upper_set_iff_Ici_subset
.
Alias of the forward direction of is_lower_set_iff_Iic_subset
.
Alias of the forward direction of is_upper_set_iff_Ioi_subset
.
Alias of the forward direction of is_lower_set_iff_Iio_subset
.
Bundled upper/lower sets #
- carrier : set α
- upper' : is_upper_set self.carrier
The type of upper sets of an order.
Instances for upper_set
- carrier : set α
- lower' : is_lower_set self.carrier
The type of lower sets of an order.
Instances for lower_set
Equations
- upper_set.set_like = {coe := upper_set.carrier _inst_1, coe_injective' := _}
Equations
- lower_set.set_like = {coe := lower_set.carrier _inst_1, coe_injective' := _}
Order #
Equations
- upper_set.complete_distrib_lattice = function.injective.complete_distrib_lattice (⇑order_dual.to_dual ∘ coe) upper_set.complete_distrib_lattice._proof_1 upper_set.complete_distrib_lattice._proof_2 upper_set.complete_distrib_lattice._proof_3 upper_set.complete_distrib_lattice._proof_4 upper_set.complete_distrib_lattice._proof_5 upper_set.complete_distrib_lattice._proof_6 upper_set.complete_distrib_lattice._proof_7
Equations
- lower_set.complete_distrib_lattice = function.injective.complete_distrib_lattice coe lower_set.complete_distrib_lattice._proof_1 lower_set.complete_distrib_lattice._proof_2 lower_set.complete_distrib_lattice._proof_3 lower_set.complete_distrib_lattice._proof_4 lower_set.complete_distrib_lattice._proof_5 lower_set.complete_distrib_lattice._proof_6 lower_set.complete_distrib_lattice._proof_7
Complement #
Upper sets are order-isomorphic to lower sets under complementation.
Equations
- upper_set_iso_lower_set = {to_equiv := {to_fun := upper_set.compl _inst_1, inv_fun := lower_set.compl _inst_1, left_inv := _, right_inv := _}, map_rel_iff' := _}
Equations
- upper_set.complete_linear_order = {sup := complete_distrib_lattice.sup upper_set.complete_distrib_lattice, le := complete_distrib_lattice.le upper_set.complete_distrib_lattice, lt := complete_distrib_lattice.lt upper_set.complete_distrib_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_distrib_lattice.inf upper_set.complete_distrib_lattice, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_distrib_lattice.Sup upper_set.complete_distrib_lattice, le_Sup := _, Sup_le := _, Inf := complete_distrib_lattice.Inf upper_set.complete_distrib_lattice, Inf_le := _, le_Inf := _, top := complete_distrib_lattice.top upper_set.complete_distrib_lattice, bot := complete_distrib_lattice.bot upper_set.complete_distrib_lattice, le_top := _, bot_le := _, le_total := _, decidable_le := classical.dec_rel has_le.le, decidable_eq := classical.dec_rel eq, decidable_lt := classical.dec_rel has_lt.lt, max_def := _, min_def := _}
Equations
- lower_set.complete_linear_order = {sup := complete_distrib_lattice.sup lower_set.complete_distrib_lattice, le := complete_distrib_lattice.le lower_set.complete_distrib_lattice, lt := complete_distrib_lattice.lt lower_set.complete_distrib_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := complete_distrib_lattice.inf lower_set.complete_distrib_lattice, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_distrib_lattice.Sup lower_set.complete_distrib_lattice, le_Sup := _, Sup_le := _, Inf := complete_distrib_lattice.Inf lower_set.complete_distrib_lattice, Inf_le := _, le_Inf := _, top := complete_distrib_lattice.top lower_set.complete_distrib_lattice, bot := complete_distrib_lattice.bot lower_set.complete_distrib_lattice, le_top := _, bot_le := _, le_total := _, decidable_le := classical.dec_rel has_le.le, decidable_eq := classical.dec_rel eq, decidable_lt := classical.dec_rel has_lt.lt, max_def := _, min_def := _}
Map #
Principal sets #
upper_closure
forms a reversed Galois insertion with the coercion from upper sets to sets.
Equations
- gi_upper_closure_coe = {choice := λ (s : set α) (hs : (coe ∘ ⇑order_dual.of_dual) ((⇑order_dual.to_dual ∘ upper_closure) s) ≤ s), ⇑order_dual.to_dual {carrier := s, upper' := _}, gc := _, le_l_u := _, choice_eq := _}
lower_closure
forms a Galois insertion with the coercion from lower sets to sets.
Alias of the reverse direction of bdd_above_lower_closure
.
Alias of the forward direction of bdd_above_lower_closure
.
Alias of the forward direction of bdd_below_upper_closure
.
Alias of the reverse direction of bdd_below_upper_closure
.