Documentation

Mathlib.Order.WellQuasiOrder

Well quasi-orders #

A well quasi-order (WQO) is a relation such that any infinite sequence contains an infinite subsequence of related elements. For a preorder, this is equivalent to having a well-founded order with no infinite antichains.

Main definitions #

TODO #

Tags #

wqo, pwo, well quasi-order, partial well order, dickson order

def WellQuasiOrdered {α : Type u_1} (r : ααProp) :

A well quasi-order or WQO is a relation such that any infinite sequence contains an infinite monotonic subsequence, or equivalently, two elements f m and f n with m < n and r (f m) (f n).

For a preorder, this is equivalent to having a well-founded order with no infinite antichains.

Despite the nomenclature, we don't require the relation to be preordered. Moreover, a well quasi-order will not in general be a well-order.

Equations
Instances For
    theorem wellQuasiOrdered_of_isEmpty {α : Type u_1} [IsEmpty α] (r : ααProp) :
    theorem IsAntichain.finite_of_wellQuasiOrdered {α : Type u_1} {r : ααProp} {s : Set α} (hs : IsAntichain r s) (hr : WellQuasiOrdered r) :
    theorem Finite.wellQuasiOrdered {α : Type u_1} (r : ααProp) [Finite α] [IsRefl α r] :
    theorem WellQuasiOrdered.exists_monotone_subseq {α : Type u_1} {r : ααProp} [IsPreorder α r] (h : WellQuasiOrdered r) (f : α) :
    ∃ (g : ↪o ), ∀ (m n : ), m nr (f (g m)) (f (g n))
    theorem wellQuasiOrdered_iff_exists_monotone_subseq {α : Type u_1} {r : ααProp} [IsPreorder α r] :
    WellQuasiOrdered r ∀ (f : α), ∃ (g : ↪o ), ∀ (m n : ), m nr (f (g m)) (f (g n))
    theorem WellQuasiOrdered.prod {α : Type u_1} {β : Type u_2} {r : ααProp} {s : ββProp} [IsPreorder α r] (hr : WellQuasiOrdered r) (hs : WellQuasiOrdered s) :
    WellQuasiOrdered fun (a b : α × β) => r a.1 b.1 s a.2 b.2
    class WellQuasiOrderedLE (α : Type u_3) [LE α] :

    A typeclass for an order with a well quasi-ordered relation.

    Note that this is unlike WellFoundedLT, which instead takes a < relation.

    Instances
      theorem wellQuasiOrderedLE_def (α : Type u_3) [LE α] :
      WellQuasiOrderedLE α WellQuasiOrdered fun (x1 x2 : α) => x1 x2
      theorem wellQuasiOrdered_le {α : Type u_1} [LE α] [h : WellQuasiOrderedLE α] :
      WellQuasiOrdered fun (x1 x2 : α) => x1 x2
      @[instance 100]
      theorem WellQuasiOrdered.wellFounded {α : Type u_3} {r : ααProp} [IsPreorder α r] (h : WellQuasiOrdered r) :
      WellFounded fun (a b : α) => r a b ¬r b a
      theorem WellQuasiOrderedLE.finite_of_isAntichain {α : Type u_1} [Preorder α] [WellQuasiOrderedLE α] {s : Set α} (h : IsAntichain (fun (x1 x2 : α) => x1 x2) s) :
      theorem wellQuasiOrderedLE_iff {α : Type u_1} [Preorder α] :
      WellQuasiOrderedLE α WellFoundedLT α ∀ (s : Set α), IsAntichain (fun (x1 x2 : α) => x1 x2) ss.Finite

      A preorder is well quasi-ordered iff it's well-founded and has no infinite antichains.

      A linear WQO is the same thing as a well-order.