2-better-quasi-orders (2-BQO) #
A formalization of 2-better-quasi-orders, following Pequignot, Towards better: A motivated
introduction to better-quasi-orders, EMS Surveys 2017. A 2-BQO is a strengthening of
well-quasi-order (WQO) phrased via pair-sequences f : ∀ m n, m < n → α instead of plain
sequences: r is 2-BQO if every pair-sequence has a good triple m < n < l with
r (f m n) (f n l).
2-BQO implies WQO (TwoBQO.wellQuasiOrdered), and unlike WQO it is closed under several
constructions that WQO alone is not known to be closed under, most importantly forming an
infinite sum indexed by a 2-BQO (TwoBQO.lexSigmaQO) and passing to sequences under a suitable
embedding relation (TwoBQO.embedForAll_wqo).
Main definitions #
PairSeq α: a pair-sequence, assigning a value to every pairm < nof naturals.TwoBQO r:ris 2-BQO if every pair-sequence has a good triple.DomOrder r X Y:Xdominates intoY, i.e. every element ofXisr-below some element ofY.EmbedForAll r: the pointwise-embedding preorder on sequencesℕ → αinduced byr.TwoBQO.LexSumRelQO r s t: the lexicographic sum of quasi-orderst ions i, ordered alongron the index type.
Main results #
TwoBQO.wellQuasiOrdered: 2-BQO implies WQO.TwoBQO.of_finite_coloring: a preorder with a finite partial order quotient is 2-BQO.TwoBQO.of_wellFoundedLT: well-founded linear orders are 2-BQO.Ordinal.isTwoBQO: ordinals are 2-BQO.TwoBQO.comap,TwoBQO.mono: 2-BQO is closed under monotone preimage and relation weakening.TwoBQO.union: closure under covering by two 2-BQO parts.TwoBQO.prod,TwoBQO.pi: closure under finite products.TwoBQO.lexSigmaQO: closure under lexicographic sum along a 2-BQO index.TwoBQO.dom_twoBQO: the domination order on subsets of a 2-BQO is WQO.TwoBQO.embedForAll_wqo:EmbedForAll ris WQO onℕ → Qwheneverris 2-BQO onQ.
Bad pair-sequences and 2-BQO #
Restrict a pair-sequence along a strictly monotone reindexing.
Instances For
Every pair-sequence has a restriction that is perfect or bad for r: colour each triple
h < i < j by whether r (f h i) (f i j) holds and apply infinite_ramsey_triples.
2-BQO implies WQO #
2-BQO implies WQO. Given a sequence g : ℕ → α, apply 2-BQO to the pair-sequence
(m, n, _) ↦ g m. A good triple m < n < l yields r (g m) (g n).
Finite preorders are TwoBQO #
A preorder with a finite partial order quotient is 2-BQO. If c : α → κ with κ
finite and same colour ⟹ r-related, then r is 2-BQO: colour pairs by c (f m n),
Ramsey-for-pairs (infinite_ramsey_pairs) makes the restriction monochromatic, so any triple is
good. In particular, if r is a preorder whose induced partial order on r-equivalence classes
has finitely many classes, taking c to be the quotient map gives TwoBQO r.
Well-orders are 2-BQO #
Well-orders are 2-BQO. If f is bad for a well-order <, the sequence n ↦ f (n, n+1)
is strictly decreasing, contradicting well-foundedness.
Ordinals are 2-BQO with respect to ≤.
Union of two parts #
Rests on Ramsey for pairs (infinite_ramsey_pairs): a 2-colouring of pairs by which part the
single value f m n lands in has an infinite homogeneous restriction, on which the relevant
2-BQO gives a good triple.
Union of two 2-BQO parts is 2-BQO. If p, q cover α and r is 2-BQO on each
sub-part {x // p x} and {x // q x}, then r is 2-BQO on α.
2-colour each pair (m,n) by whether p (f m n) holds; Ramsey-for-pairs gives an infinite
restriction landing wholly in one part, where the corresponding 2-BQO supplies a good triple.
Finite products (Dickson's lemma for 2-BQO) #
Sum along a 2-BQO (the main closure theorem) #
Setup. Given a quasi-order r on ι and quasi-orders s i on α i, the sum Σᵢ αᵢ is
ordered by (i, x) ≤ (j, y) iff r i j ∧ i ≠ j (strictly above), or i = j ∧ s i x y (same
fibre). This is Pequignot's Proposition 2.4(iii) lifted to 2-BQO.
The lexicographic sum order along a partial order on Σ i, α i: (i,x) ≤ (j,y) iff
r i j and i ≠ j (strictly above in r), or i = j and x ≤ y in t i.
Equations
Instances For
TwoBQO.LexSumRelQO r s t is reflexive whenever each t i is.
TwoBQO.LexSumRelQO r s t is transitive whenever r is reflexive, antisymmetric, and
transitive, and each t i is transitive.
Sum theorem for 2-BQO along a quasi-order, restricted to a bad pair-sequence. If f is
bad for LexSumRelQO r s t, then some restriction of f either has a bad index projection
(for r), or has a constant index i along which the second components form a bad
pair-sequence for t i. The constructive content underlying TwoBQO.lexSigmaQO.
Sum theorem for 2-BQO along a quasi-order. If r on ι is 2-BQO and each t i on
s i is 2-BQO, then Σ i, s i with LexSumRelQO r s t is 2-BQO.
Domination order on subsets #
The domination order on subsets of a 2-BQO is WQO.
Infinite sequences #
Infinite sequences ℕ → Q in a 2-BQO Q are WQO under EmbedForAll.
s embeds pointwise into s': there is a strictly monotone reindexing e with
r (s n) (s' (e n)) for every n.
Equations
- EmbedForAll r s s' = ∃ (e : ℕ → ℕ), StrictMono e ∧ ∀ (n : ℕ), r (s n) (s' (e n))
Instances For
EmbedForAll r is a preorder on ℕ → Q whenever r is (reflexivity via the identity
reindexing, transitivity via composition of strictly monotone reindexings).
Strengthening of regularity. If f is a regular sequence for a relation, then for every
threshold n there is a strictly monotone reindexing e : ℕ → ℕ whose values all lie at or
above n and which dominates f pointwise: n ≤ e i and f i ≤ f (e i) for every i. Proved
greedily via exists_strictMono_of_greedy, picking at each step a later index that is both >
the previous one and ≥ n, available by regularity.
EmbedForAll r is WQO on ℕ → Q whenever r is 2-BQO on Q.
Proof sketch. Split each sequence F n into a regular tail G n preceded by a finite head
w n (WellQuasiOrdered.eventuallyRegular). Apply the product of Higman's lemma on the heads
(WellQuasiOrdered.sublistForall₂) and of the domination order on the downsets
S n = {x | ∃ i, r x (G n i)} of the tails (TwoBQO.dom_twoBQO) to a pair a < b with both
components related. The domination relation on downsets, combined with regularity, produces a
pointwise embedding of the tail G a into G b; the Higman relation on the heads produces a
pointwise embedding of the head w a into w b; embed_combine splices the two into a single
embedding of F a into F b.