Order ideals, cofinal sets, and the RasiowaβSikorski lemma #
Main definitions #
Throughout this file, P is at least a preorder, but some sections require more
structure, such as a bottom element, a top element, or a join-semilattice structure.
Order.Ideal P: the type of nonempty, upward directed, and downward closed subsets ofP. Dual to the notion of a filter on a preorder.Order.IsIdeal I: a predicate for when aSet Pis an ideal.Order.Ideal.principal p: the principal ideal generated byp : P.Order.Ideal.IsProper I: a predicate for proper ideals. Dual to the notion of a proper filter.Order.Ideal.IsMaximal I: a predicate for maximal ideals. Dual to the notion of an ultrafilter.Order.Cofinal P: the type of subsets ofPcontaining arbitrarily large elements. Dual to the notion of 'dense set' used in forcing.Order.idealOfCofinals p π, wherep : P, andπis a countable family of cofinal subsets ofP: an ideal inPwhich containspand intersects every set inπ. (This a form of the RasiowaβSikorski lemma.)
References #
- https://en.wikipedia.org/wiki/Ideal_(order_theory)
- https://en.wikipedia.org/wiki/Cofinal_(mathematics)
- https://en.wikipedia.org/wiki/Rasiowa%E2%80%93Sikorski_lemma
Note that for the RasiowaβSikorski lemma, Wikipedia uses the opposite ordering on P,
in line with most presentations of forcing.
Tags #
ideal, cofinal, dense, countable, generic
An ideal on an order P is a subset of P that is
- nonempty
- upward directed (any pair of elements in the ideal has an upper bound in the ideal)
- downward closed (any element less than an element of the ideal is in the ideal).
- lower' : IsLowerSet self.carrier
The ideal is nonempty.
- directed' : DirectedOn (fun (x1 x2 : P) => x1 β€ x2) self.carrier
The ideal is upward directed.
Instances For
A subset of a preorder P is an ideal if it is
- nonempty
- upward directed (any pair of elements in the ideal has an upper bound in the ideal)
- downward closed (any element less than an element of the ideal is in the ideal).
- IsLowerSet : _root_.IsLowerSet I
The ideal is downward closed.
- Nonempty : I.Nonempty
The ideal is nonempty.
- Directed : DirectedOn (fun (x1 x2 : P) => x1 β€ x2) I
The ideal is upward directed.
Instances For
Create an element of type Order.Ideal from a set satisfying the predicate
Order.IsIdeal.
Instances For
Equations
- Order.Ideal.instSetLike = { coe := fun (s : Order.Ideal P) => s.carrier, coe_injective' := β― }
The partial ordering by subset inclusion, inherited from Set P.
Equations
An ideal is maximal if it is maximal in the collection of proper ideals.
Note that IsCoatom is less general because ideals only have a top element when P is directed
and nonempty.
This ideal is maximal in the collection of proper ideals.
Instances
In a directed and nonempty order, the top ideal of a is univ.
Equations
The smallest ideal containing a given element.
Equations
- Order.Ideal.principal p = { toLowerSet := LowerSet.Iic p, nonempty' := β―, directed' := β― }
Instances For
Equations
- Order.Ideal.instInhabited = { default := Order.Ideal.principal default }
There is a bottom ideal when P has a bottom element.
Equations
A specific witness of I.directed when P has joins.
The infimum of two ideals of a co-directed order is their intersection.
Equations
- Order.Ideal.instMin = { min := fun (I J : Order.Ideal P) => { toLowerSet := I.toLowerSet β J.toLowerSet, nonempty' := β―, directed' := β― } }
The supremum of two ideals of a co-directed order is the union of the down sets of the pointwise
supremum of I and J.
Equations
- Order.Ideal.instMax = { max := fun (I J : Order.Ideal P) => { carrier := {x : P | β i β I, β j β J, x β€ i β j}, lower' := β―, nonempty' := β―, directed' := β― } }
Equations
- Order.Ideal.instLattice = Lattice.mk (fun (x1 x2 : Order.Ideal P) => x1 β x2) β― β― β―
Equations
- Order.Ideal.instInfSet = { sInf := fun (S : Set (Order.Ideal P)) => { toLowerSet := β¨ s β S, s.toLowerSet, nonempty' := β―, directed' := β― } }
Equations
- Order.Ideal.instCompleteLattice = CompleteLattice.mk β― β― β― β― β― β―
Alias of Order.Cofinal.isCofinal.
The Cofinal contains arbitrarily large elements.
Equations
- Order.Cofinal.instInhabited = { default := { carrier := Set.univ, isCofinal := β― } }
Equations
- Order.Cofinal.instMembership = { mem := fun (D : Order.Cofinal P) (x : P) => x β D.carrier }
A (noncomputable) element of a cofinal set lying above a given element.
Equations
- D.above x = Classical.choose β―
Instances For
Given a starting point, and a countable family of cofinal sets, this is an increasing sequence that intersects each cofinal set.
Equations
- Order.sequenceOfCofinals p π 0 = p
- Order.sequenceOfCofinals p π n.succ = match Encodable.decode n with | none => Order.sequenceOfCofinals p π n | some i => (π i).above (Order.sequenceOfCofinals p π n)
Instances For
Given an element p : P and a family π of cofinal subsets of a preorder P,
indexed by a countable type, idealOfCofinals p π is an ideal in P which
- contains
p, according tomem_idealOfCofinals p π, and - intersects every set in
π, according tocofinal_meets_idealOfCofinals p π.
This proves the RasiowaβSikorski lemma.
Equations
- Order.idealOfCofinals p π = { carrier := {x : P | β (n : β), x β€ Order.sequenceOfCofinals p π n}, lower' := β―, nonempty' := β―, directed' := β― }
Instances For
idealOfCofinals p π is π-generic.