Definitions #
Equations
- PermPattern σ i j = (σ i = j)
Instances For
@[simp]
Proofs #
Marcus Tardos' theorem #
theorem
den_submatrix_eq_sum_blk_den
{n q : ℕ}
(M : Fin n → Fin n → Prop)
(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 n → Fin n → Prop)
(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
av_perm_contract_av_perm
{k n : ℕ}
(q : ℕ)
(σ : Equiv.Perm (Fin k))
(M : Fin n → Fin n → Prop)
(hM : ¬Contains (PermPattern σ) M)
:
¬Contains (PermPattern σ) (blkMatrix M q)
theorem
density_WB
{n k : ℕ}
(h_n : 0 < n)
(h_k : k ^ 2 ∣ n)
(M : Fin n → Fin n → Prop)
{σ : Equiv.Perm (Fin k)}
(M_avoid_perm : ¬Contains (PermPattern σ) M)
:
theorem
density_TB
{n k : ℕ}
(h_n : 0 < n)
(h_k : k ^ 2 ∣ n)
(M : Fin n → Fin n → Prop)
{σ : Equiv.Perm (Fin k)}
(M_avoid_perm : ¬Contains (PermPattern σ) M)
:
theorem
blk_den_SB
{n : ℕ}
(k : ℕ)
(M : Fin n → Fin n → Prop)
:
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 j → blk_den M i j ≤ (k - 1) ^ 2