internlm/Lean-Github huggingface dataset:
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ 𝒞.card ≤ 𝒜.card

α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ IsInitSeg 𝒞 r
Tactic:
rwa [Ccard]
Proof state after:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ IsInitSeg 𝒞 r
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ IsInitSeg 𝒞 r
Tactic:
refine' ⟨‹_›, _⟩
Proof state after:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ ∀ ⦃s t : Finset (Fin n)⦄, s ∈ 𝒞 → { ofColex := t } < { ofColex := s } ∧ t.card = r → t ∈ 𝒞
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
⊢ ∀ ⦃s t : Finset (Fin n)⦄, s ∈ 𝒞 → { ofColex := t } < { ofColex := s } ∧ t.card = r → t ∈ 𝒞
Tactic:
rintro A B hA ⟨HB₁, HB₂⟩
Proof state after:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
⊢ B ∈ 𝒞
Theorem: Finset.lovasz_form
Proof state before:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
⊢ B ∈ 𝒞
Tactic:
rw [mem_powersetCard]
Proof state after:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
⊢ B ⊆ range'k ∧ B.card = r
Theorem: Finset.lovasz_form
Proof state before:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
⊢ B ⊆ range'k ∧ B.card = r
Tactic:
refine' ⟨fun t ht ↦ _, ‹_›⟩
Proof state after:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
⊢ t ∈ range'k
Theorem: Finset.lovasz_form
Proof state before:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
⊢ t ∈ range'k
Tactic:
rw [mem_attachFin, mem_range]
Proof state after:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
⊢ ↑t < k
Theorem: Finset.lovasz_form
Proof state before:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
⊢ ↑t < k
Tactic:
have : toColex (image Fin.val B) < toColex (image Fin.val A) := by
  rwa [toColex_image_lt_toColex_image Fin.val_strictMono]
Proof state after:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ↑t < k
Theorem: Finset.lovasz_form
Proof state before:
case intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ↑t < k
Tactic:
apply Colex.forall_lt_mono this.le _ t (mem_image.2 ⟨t, ht, rfl⟩)
Proof state after:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ∀ b ∈ image Fin.val A, b < k
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ∀ b ∈ image Fin.val A, b < k
Tactic:
simp_rw [mem_image]
Proof state after:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ∀ (b : ℕ), (∃ a ∈ A, ↑a = b) → b < k
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
⊢ ∀ (b : ℕ), (∃ a ∈ A, ↑a = b) → b < k
Tactic:
rintro _ ⟨a, ha, q⟩
Proof state after:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ b✝ < k
Theorem: Finset.lovasz_form
Proof state before:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ b✝ < k
Tactic:
rw [mem_powersetCard] at hA
Proof state after:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ b✝ < k
Theorem: Finset.lovasz_form
Proof state before:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ b✝ < k
Tactic:
rw [← q, ← mem_range]
Proof state after:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ ↑a ∈ range k
Theorem: Finset.lovasz_form
Proof state before:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝¹ : Set.Sized r ↑𝒞
this✝ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
⊢ ↑a ∈ range k
Tactic:
have := hA.1 ha
Proof state after:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝² : Set.Sized r ↑𝒞
this✝¹ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this✝ : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
this : a ∈ range'k
⊢ ↑a ∈ range k
Theorem: Finset.lovasz_form
Proof state before:
case intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝² : Set.Sized r ↑𝒞
this✝¹ : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ⊆ range'k ∧ A.card = r
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
this✝ : { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
b✝ : ℕ
a : Fin n
ha : a ∈ A
q : ↑a = b✝
this : a ∈ range'k
⊢ ↑a ∈ range k
Tactic:
rwa [mem_attachFin] at this
Proof state after:
no goals
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : (∂ ^[i] 𝒞).card = k.choose (r - i)
A B : Finset (Fin n)
hA : A ∈ 𝒞
HB₁ : { ofColex := B } < { ofColex := A }
HB₂ : B.card = r
t : Fin n
ht : t ∈ B
⊢ { ofColex := image Fin.val B } < { ofColex := image Fin.val A }
Tactic:
rwa [toColex_image_lt_toColex_image Fin.val_strictMono]
Proof state after:
no goals
Theorem: Finset.lovasz_form
Proof state before:
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this✝ : Set.Sized r ↑𝒞
this : ∂ ^[i] 𝒞 = powersetCard (r - i) range'k
⊢ (∂ ^[i] 𝒞).card = k.choose (r - i)
Tactic:
rw [this, card_powersetCard, card_attachFin, card_range]
Proof state after:
no goals
Theorem: Finset.lovasz_form
Proof state before:
case a.mp
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B : Finset (Fin n)
⊢ (∃ s ∈ 𝒞, B ⊆ s ∧ (s \ B).card = i) → B ⊆ range'k ∧ B.card = r - i
Tactic:
rintro ⟨A, Ah, BsubA, card_sdiff_i⟩
Proof state after:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ∈ 𝒞
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B ⊆ range'k ∧ B.card = r - i
Theorem: Finset.lovasz_form
Proof state before:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ∈ 𝒞
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B ⊆ range'k ∧ B.card = r - i
Tactic:
rw [mem_powersetCard] at Ah
Proof state after:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B ⊆ range'k ∧ B.card = r - i
Theorem: Finset.lovasz_form
Proof state before:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B ⊆ range'k ∧ B.card = r - i
Tactic:
refine' ⟨BsubA.trans Ah.1, _⟩
Proof state after:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B.card = r - i
Theorem: Finset.lovasz_form
Proof state before:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ B.card = r - i
Tactic:
symm
Proof state after:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ r - i = B.card
Theorem: Finset.lovasz_form
Proof state before:
case a.mp.intro.intro.intro
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B A : Finset (Fin n)
Ah : A ⊆ range'k ∧ A.card = r
BsubA : B ⊆ A
card_sdiff_i : (A \ B).card = i
⊢ r - i = B.card
Tactic:
rw [Nat.sub_eq_iff_eq_add hir, ← Ah.2, ← card_sdiff_i, ← card_union_of_disjoint disjoint_sdiff,
  union_sdiff_of_subset BsubA]
Proof state after:
no goals
Theorem: Finset.lovasz_form
Proof state before:
case a.mpr.intro.refine_2.intro.intro.intro.refine'_2
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B : Finset (Fin n)
hBk : B ⊆ range'k
hB : B.card = r - i
C : Finset (Fin n)
BsubC : B ⊆ C
hCrange : C ⊆ range'k
hcard : C.card = r
⊢ (C \ B).card = i
Tactic:
rw [card_sdiff BsubC, hcard, hB, Nat.sub_sub_self hir]
Proof state after:
no goals
Theorem: Finset.lovasz_form
Proof state before:
case a.mpr.intro.refine_1
α : Type u_1
inst✝ : LinearOrder α
s U V : Finset α
n r k i : ℕ
𝒜 𝒞✝ : Finset (Finset (Fin n))
hir : i ≤ r
hrk : r ≤ k
hkn : k ≤ n
h₁ : Set.Sized r ↑𝒜
h₂ : k.choose r ≤ 𝒜.card
range'k : Finset (Fin n) := (range k).attachFin ⋯
𝒞 : Finset (Finset (Fin n)) := powersetCard r range'k
Ccard : 𝒞.card = k.choose r
this : Set.Sized r ↑𝒞
B : Finset (Fin n)
hBk : B ⊆ range'k
hB : B.card = r - i
⊢ i + B.card ≤ range'k.card
Tactic:
rwa [hB, card_attachFin, card_range, ← Nat.add_sub_assoc hir, Nat.add_sub_cancel_left]
Proof state after:
no goals