Documentation

ForbiddenMatrix.PermutationPatterns

Definitions #

def PermPattern {n : } (σ : Equiv.Perm (Fin n)) (i j : Fin n) :
Equations
Instances For

    Proofs #

    theorem ex_identityPattern_le (k n : ) :
    ex (IdentityPattern k) n (2 * n - 1) * (k - 1)

    Marcus Tardos' theorem #

    def rectPtsetq (n q i j : ) :
    Equations
    Instances For
      noncomputable def rectPtsetqMatrix {n : } (M : Fin nFin nProp) (q i j : ) :
      Equations
      Instances For
        def blkMatrix {n : } (M : Fin nFin nProp) (q : ) :
        Fin (n / q)Fin (n / q)Prop
        Equations
        Instances For
          noncomputable def blk_den {n q : } (M : Fin nFin nProp) (i j : Fin (n / q)) :
          Equations
          Instances For
            theorem den_eq_sum_blk_den {n q : } (M : Fin nFin nProp) (hqn : q n) :
            let B := blkMatrix M q; density M = x : Fin (n / q) × Fin (n / q) with match x with | (i, j) => B i j, match x with | (i, j) => blk_den M i j
            theorem den_submatrix_eq_sum_blk_den {n q : } (M : Fin nFin nProp) (hqn : q n) (f1 : Fin (n / q)Fin (n / q)Prop) :
            have B := blkMatrix M q; let B1 := fun (i j : Fin (n / q)) => B i j f1 i j; have fq := fun (x : Fin n) => x / q, ; have M1 := fun (i j : Fin n) => M i j B1 (fq i) (fq j); let Q := Fin (n / q) × Fin (n / q); density M1 = x : Q with match x with | (i, j) => B1 i j, match x with | (i, j) => blk_den M i j
            theorem split_density_blk {n q : } (hqn : q n) (M : Fin nFin nProp) (f1 f2 : Fin (n / q)Fin (n / q)Prop) :
            let Q := Fin (n / q) × Fin (n / q); let f3 := fun (i j : Fin (n / q)) => ¬f1 i j ¬f2 i j; have B := blkMatrix M q; let B1 := fun (i j : Fin (n / q)) => B i j f1 i j; let B2 := fun (i j : Fin (n / q)) => B i j f2 i j; let N := fun (i j : Fin (n / q)) => B i j f3 i j; density M ((∑ x : Q with match x with | (i, j) => B1 i j, match x with | (i, j) => blk_den M i j) + x : Q with match x with | (i, j) => B2 i j, match x with | (i, j) => blk_den M i j) + x : Q with match x with | (i, j) => N i j, match x with | (i, j) => blk_den M i j
            theorem sum_blk_den_le_mul_den_blk {n q c : } (M : Fin nFin nProp) (B : Fin (n / q)Fin (n / q)Prop) (h : ∀ (i j : Fin (n / q)), B i jblk_den M i j c) :
            (∑ x : Fin (n / q) × Fin (n / q) with match x with | (i, j) => B i j, match x with | (i, j) => blk_den M i j) c * density B
            theorem av_perm_contract_av_perm {k n : } (q : ) (σ : Equiv.Perm (Fin k)) (M : Fin nFin nProp) (hM : ¬Contains (PermPattern σ) M) :
            theorem density_WB {n k : } (h_n : 0 < n) (h_k : k ^ 2 n) (M : Fin nFin nProp) {σ : Equiv.Perm (Fin k)} (M_avoid_perm : ¬Contains (PermPattern σ) M) :
            have q := k ^ 2; have B := blkMatrix M q; have W := fun (i j : Fin (n / q)) => k {c : Fin n | ∃ (r : Fin n), (r, c) rectPtsetqMatrix M q i j}.card; have WB := fun (i j : Fin (n / q)) => W i j B i j; density WB n / k ^ 2 * (k * (k ^ 2).choose k)
            theorem density_TB {n k : } (h_n : 0 < n) (h_k : k ^ 2 n) (M : Fin nFin nProp) {σ : Equiv.Perm (Fin k)} (M_avoid_perm : ¬Contains (PermPattern σ) M) :
            have q := k ^ 2; have B := blkMatrix M q; have T := fun (i j : Fin (n / q)) => k {r : Fin n | ∃ (c : Fin n), (r, c) rectPtsetqMatrix M q i j}.card; have TB := fun (i j : Fin (n / q)) => T i j B i j; density TB n / k ^ 2 * (k * (k ^ 2).choose k)
            theorem blk_den_SB {n : } (k : ) (M : Fin nFin nProp) :
            have q := k ^ 2; have B := blkMatrix M q; have W := fun (i j : Fin (n / q)) => k {c : Fin n | ∃ (r : Fin n), (r, c) rectPtsetqMatrix M q i j}.card; have T := fun (i j : Fin (n / q)) => k {r : Fin n | ∃ (c : Fin n), (r, c) rectPtsetqMatrix M q i j}.card; have S := fun (i j : Fin (n / q)) => ¬W i j ¬T i j; have SB := fun (i j : Fin (n / q)) => S i j B i j; ∀ (i j : Fin (n / q)), SB i jblk_den M i j (k - 1) ^ 2
            theorem ex_perm_recurrence {k : } (σ : Equiv.Perm (Fin k)) (n : ) (hkn : k ^ 2 n) :
            ex (PermPattern σ) n (k - 1) ^ 2 * ex (PermPattern σ) (n / k ^ 2) + 2 * n * k ^ 3 * (k ^ 2).choose k
            theorem ex_permPattern_le {k : } (σ : Equiv.Perm (Fin k)) (n : ) :
            ex (PermPattern σ) n 2 * k ^ 4 * (k ^ 2).choose k * n
            theorem le_ex_permPattern {k : } (σ : Equiv.Perm (Fin k)) (n : ) (hk : 2 k) :
            n ex (PermPattern σ) n