Chains and flags #
This file defines chains for an arbitrary relation and flags for an order and proves Hausdorff's Maximality Principle.
Main declarations #
IsChain s
: A chains
is a set of comparable elements.maxChain_spec
: Hausdorff's Maximality Principle.Flag
: The type of flags, aka maximal chains, of an order.
Notes #
Originally ported from Isabelle/HOL. The original file was written by Jacques D. Fleuriot, Tobias Nipkow, Christian Sternagel.
Chains #
SuperChain s t
means that t
is a chain that strictly includes s
.
Equations
- SuperChain r s t = (IsChain r t ∧ s ⊂ t)
Instances For
Given a set s
, if there exists a chain t
strictly including s
, then SuccChain s
is one of these chains. Otherwise it is s
.
Equations
- SuccChain r s = if h : ∃ (t : Set α), IsChain r s ∧ SuperChain r s t then Classical.choose h else s
Instances For
Predicate for whether a set is reachable from ∅
using SuccChain
and ⋃₀
.
- succ: ∀ {α : Type u_1} {r : α → α → Prop} {s : Set α}, ChainClosure r s → ChainClosure r (SuccChain r s)
- union: ∀ {α : Type u_1} {r : α → α → Prop} {s : Set (Set α)}, (∀ a ∈ s, ChainClosure r a) → ChainClosure r (⋃₀ s)
Instances For
Hausdorff's maximality principle
There exists a maximal totally ordered set of α
.
Note that we do not require α
to be partially ordered by r
.
Flags #
The type of flags, aka maximal chains, of an order.
- carrier : Set α
The
carrier
of a flag is the underlying set. By definition, a flag is a chain
- max_chain' : ∀ ⦃s_1 : Set α⦄, IsChain (fun (x x_1 : α) => x ≤ x_1) s_1 → s.carrier ⊆ s_1 → s.carrier = s_1
By definition, a flag is a maximal chain
Instances For
Equations
- Flag.instBoundedOrderSubtypeMemFlagToLEInstMembershipInstSetLikeFlagLe s = Subtype.boundedOrder (_ : ⊥ ∈ s) (_ : ⊤ ∈ s)
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.