Theorem: addRothNumber_lt_of_forall_not_threeAPFree
File: Mathlib/Combinatorics/Additive/AP/Three/Defs.lean

Proof steps:
state_before: F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
⊢ mulRothNumber s < n
state_after: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
⊢ mulRothNumber s < n
tactic: obtain ⟨t, hts, hcard, ht⟩ := mulRothNumber_spec s
state_before: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
⊢ mulRothNumber s < n
state_after: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
⊢ ¬n ≤ t.card
tactic: rw [← hcard, ← not_le]
state_before: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
⊢ ¬n ≤ t.card
state_after: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
hn : n ≤ t.card
⊢ False
tactic: intro hn
state_before: case intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ : Finset α
n : ℕ
h : ∀ t ∈ powersetCard n s, ¬ThreeGPFree ↑t
t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
hn : n ≤ t.card
⊢ False
state_after: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
u : Finset α
hut : u ⊆ t
h : ∀ t ∈ powersetCard u.card s, ¬ThreeGPFree ↑t
hn : u.card ≤ t.card
⊢ False
tactic: obtain ⟨u, hut, rfl⟩ := exists_subset_card_eq hn
state_before: case intro.intro.intro.intro.intro
F : Type u_1
α : Type u_2
β : Type u_3
𝕜 : Type u_4
E : Type u_5
inst✝³ : DecidableEq α
inst✝² : Monoid α
inst✝¹ : DecidableEq β
inst✝ : Monoid β
s t✝ t : Finset α
hts : t ⊆ s
hcard : t.card = mulRothNumber s
ht : ThreeGPFree ↑t
u : Finset α
hut : u ⊆ t
h : ∀ t ∈ powersetCard u.card s, ¬ThreeGPFree ↑t
hn : u.card ≤ t.card
⊢ False
state_after: no goals
tactic: exact h _ (mem_powersetCard.2 ⟨hut.trans hts, rfl⟩) (ht.mono hut)