Documentation

LeanPool.NashWilliams.Order.WellQuasiOrder.Regular

Regular sequences in a well quasi-order #

A sequence f : ℕ → Q in a quasi-order (Q, r) is regular if every term dominates infinitely many later terms. This file shows that in a WQO every sequence has a regular tail (WellQuasiOrdered.eventuallyRegular), and draws two consequences that are the backbone of the 2-BQO closure theorems in TwoBQO.lean:

Main definitions #

Main results #

Regular sequences #

A sequence (f i)_{i ∈ ℕ} in a quasi-order (Q, ≤) is regular if for every i : ℕ, the set {j : ℕ | f i ≤ f j} is infinite.

def Preorder.IsRegularSeq {Q : Type u_1} (r : QQProp) (f : Q) :

A sequence is regular if every term dominates infinitely many later terms.

Equations
Instances For
    theorem Preorder.IsRegularSeq.exists_ge {Q : Type u_1} {r : QQProp} {f : Q} (hf : IsRegularSeq r f) (i N : ) :
    ∃ (j : ), N j r (f i) (f j)

    A regular sequence has arbitrarily large indices dominating any given index: for every i and threshold N there is j ≥ N with f i ≤ f j.

    theorem Preorder.IsRegularSeq.tail {Q : Type u_1} {r : QQProp} {f : Q} (hf : IsRegularSeq r f) (k : ) :
    IsRegularSeq r fun (i : ) => f (i + k)

    A tail of a regular sequence is regular.

    theorem WellQuasiOrdered.eventuallyRegular {Q : Type u_1} (r : QQProp) (hwqo : WellQuasiOrdered r) (f : Q) :
    ∃ (n : ), Preorder.IsRegularSeq r fun (i : ) => f (i + n)

    In a WQO every sequence is eventually regular. In fact this is an equivalent characterization of WQO, since any bad sequence admits no regular tail.

    theorem WellQuasiOrdered.exists_forall_le_of_antitone {β : Type u_1} {r : ββProp} [IsPreorder β r] (hwqo : WellQuasiOrdered r) (a : β) (hanti : ∀ (m n : ), m nr (a n) (a m)) :
    ∃ (m : ), ∀ (n : ), m nr (a m) (a n)

    In a WQO, an antitone sequence stabilizes from above: there is an index m from which the sequence becomes r-dominated by a m (so, together with antitonicity, a m is r-equivalent to every later term).

    instance List.SublistForall₂.instIsPreorder {Q : Type u_1} (r : QQProp) [IsPreorder Q r] :

    List.SublistForall₂ r is a preorder on List Q whenever r is a preorder on Q.

    Higman's Lemma, unrestricted. If r is a WQO on Q, then List.SublistForall₂ r is a WQO on all of List Q (not just on a PartiallyWellOrderedOn subset). A direct restatement of Set.PartiallyWellOrderedOn.partiallyWellOrderedOn_sublistForall₂ via partiallyWellOrderedOn_univ_iff.