Theorem: Finset.card_le_card_shatterer
File: Mathlib/Combinatorics/SetFamily/Shatter.lean

tactic: refine memberFamily_induction_on 𝒜 ?_ ?_ ?_
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ 𝒜.card ≤ 𝒜.shatterer.card
state_after: case refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ ∅.card ≤ ∅.shatterer.card

case refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ {∅}.card ≤ {∅}.shatterer.card

case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ ∀ (a : α) ⦃𝒜 : Finset (Finset α)⦄,
    (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card →
      (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card → 𝒜.card ≤ 𝒜.shatterer.card

tactic: intros a 𝒜 ih₀ ih₁
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ ∀ (a : α) ⦃𝒜 : Finset (Finset α)⦄,
    (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card →
      (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card → 𝒜.card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
⊢ 𝒜.card ≤ 𝒜.shatterer.card

tactic: set ℬ : Finset (Finset α) :=
  ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).image (insert a)
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
⊢ 𝒜.card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ 𝒜.card ≤ 𝒜.shatterer.card

tactic: have hℬ :
    ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card := by
  refine card_image_of_injOn <| insert_erase_invOn.2.injOn.mono ?_
  simp only [coe_inter, Set.subset_def, Set.mem_inter_iff, mem_coe, Set.mem_setOf_eq, and_imp,
    mem_shatterer]
  exact fun s _ ↦ aux (fun t ht ↦ (mem_filter.1 ht).2)
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ 𝒜.card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ 𝒜.card ≤ 𝒜.shatterer.card

tactic: rw [← card_memberSubfamily_add_card_nonMemberSubfamily a]
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ 𝒜.card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).card + (nonMemberSubfamily a 𝒜).card ≤ 𝒜.shatterer.card

tactic: refine (Nat.add_le_add ih₁ ih₀).trans ?_
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).card + (nonMemberSubfamily a 𝒜).card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).shatterer.card + (nonMemberSubfamily a 𝒜).shatterer.card ≤ 𝒜.shatterer.card

tactic: rw [← card_union_add_card_inter, ← hℬ, ← card_union_of_disjoint]
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).shatterer.card + (nonMemberSubfamily a 𝒜).shatterer.card ≤ 𝒜.shatterer.card
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer ∪ ℬ).card ≤ 𝒜.shatterer.card

case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ Disjoint ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer) ℬ

tactic: swap
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer ∪ ℬ).card ≤ 𝒜.shatterer.card

case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ Disjoint ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer) ℬ
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ Disjoint ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer) ℬ

case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer ∪ ℬ).card ≤ 𝒜.shatterer.card

tactic: refine card_mono <| union_subset (union_subset ?_ <| shatterer_mono <| filter_subset _ _) ?_
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer ∪ ℬ).card ≤ 𝒜.shatterer.card
state_after: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).shatterer ⊆ 𝒜.shatterer

case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ℬ ⊆ 𝒜.shatterer

tactic: simp
state_before: case refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ ∅.card ≤ ∅.shatterer.card
state_after: no goals

tactic: rfl
state_before: case refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝ ℬ : Finset (Finset α)
s t : Finset α
a : α
n : ℕ
𝒜 : Finset (Finset α)
⊢ {∅}.card ≤ {∅}.shatterer.card
state_after: no goals

tactic: refine card_image_of_injOn <| insert_erase_invOn.2.injOn.mono ?_
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ ↑((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer) ⊆ {s | a ∉ s}

tactic: simp only [coe_inter, Set.subset_def, Set.mem_inter_iff, mem_coe, Set.mem_setOf_eq, and_imp,
  mem_shatterer]
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ ↑((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer) ⊆ {s | a ∉ s}
state_after: α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ ∀ (x : Finset α), (memberSubfamily a 𝒜).Shatters x → (nonMemberSubfamily a 𝒜).Shatters x → a ∉ x

tactic: exact fun s _ ↦ aux (fun t ht ↦ (mem_filter.1 ht).2)
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
⊢ ∀ (x : Finset α), (memberSubfamily a 𝒜).Shatters x → (nonMemberSubfamily a 𝒜).Shatters x → a ∉ x
state_after: no goals

tactic: simp only [ℬ, disjoint_left, mem_union, mem_shatterer, mem_image, not_exists, not_and]
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ Disjoint ((memberSubfamily a 𝒜).shatterer ∪ (nonMemberSubfamily a 𝒜).shatterer) ℬ
state_after: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ∀ ⦃a_1 : Finset α⦄,
    (memberSubfamily a 𝒜).Shatters a_1 ∨ (nonMemberSubfamily a 𝒜).Shatters a_1 →
      ∀ x ∈ (memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer, ¬insert a x = a_1

tactic: rintro _ (hs | hs) s - rfl
state_before: case refine_3
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ∀ ⦃a_1 : Finset α⦄,
    (memberSubfamily a 𝒜).Shatters a_1 ∨ (nonMemberSubfamily a 𝒜).Shatters a_1 →
      ∀ x ∈ (memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer, ¬insert a x = a_1
state_after: case refine_3.inl
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters (insert a s)
⊢ False

case refine_3.inr
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (nonMemberSubfamily a 𝒜).Shatters (insert a s)
⊢ False

tactic: exact aux (fun t ht ↦ (mem_memberSubfamily.1 ht).2) hs <| mem_insert_self _ _
state_before: case refine_3.inl
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters (insert a s)
⊢ False
state_after: no goals

tactic: exact aux (fun t ht ↦ (mem_nonMemberSubfamily.1 ht).2) hs <| mem_insert_self _ _
state_before: case refine_3.inr
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (nonMemberSubfamily a 𝒜).Shatters (insert a s)
⊢ False
state_after: no goals

tactic: simp only [subset_iff, mem_shatterer]
state_before: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ (memberSubfamily a 𝒜).shatterer ⊆ 𝒜.shatterer
state_after: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ∀ ⦃x : Finset α⦄, (memberSubfamily a 𝒜).Shatters x → 𝒜.Shatters x

tactic: rintro s hs t ht
state_before: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ∀ ⦃x : Finset α⦄, (memberSubfamily a 𝒜).Shatters x → 𝒜.Shatters x
state_after: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
t : Finset α
ht : t ⊆ s
⊢ ∃ u ∈ 𝒜, s ∩ u = t

tactic: obtain ⟨u, hu, rfl⟩ := hs ht
state_before: case refine_3.refine_1
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
t : Finset α
ht : t ⊆ s
⊢ ∃ u ∈ 𝒜, s ∩ u = t
state_after: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : u ∈ memberSubfamily a 𝒜
ht : s ∩ u ⊆ s
⊢ ∃ u_1 ∈ 𝒜, s ∩ u_1 = s ∩ u

tactic: rw [mem_memberSubfamily] at hu
state_before: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : u ∈ memberSubfamily a 𝒜
ht : s ∩ u ⊆ s
⊢ ∃ u_1 ∈ 𝒜, s ∩ u_1 = s ∩ u
state_after: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
⊢ ∃ u_1 ∈ 𝒜, s ∩ u_1 = s ∩ u

tactic: refine ⟨insert a u, hu.1, inter_insert_of_not_mem fun ha ↦ ?_⟩
state_before: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
⊢ ∃ u_1 ∈ 𝒜, s ∩ u_1 = s ∩ u
state_after: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
⊢ False

tactic: obtain ⟨v, hv, hsv⟩ := hs.exists_inter_eq_singleton ha
state_before: case refine_3.refine_1.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
⊢ False
state_after: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : v ∈ memberSubfamily a 𝒜
hsv : s ∩ v = {a}
⊢ False

tactic: rw [mem_memberSubfamily] at hv
state_before: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : v ∈ memberSubfamily a 𝒜
hsv : s ∩ v = {a}
⊢ False
state_after: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : insert a v ∈ 𝒜 ∧ a ∉ v
hsv : s ∩ v = {a}
⊢ False

tactic: rw [← singleton_subset_iff (a := a), ← hsv] at hv
state_before: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : insert a v ∈ 𝒜 ∧ a ∉ v
hsv : s ∩ v = {a}
⊢ False
state_after: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : insert a v ∈ 𝒜 ∧ ¬s ∩ v ⊆ v
hsv : s ∩ v = {a}
⊢ False

tactic: exact hv.2 inter_subset_right
state_before: case refine_3.refine_1.intro.intro.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : (memberSubfamily a 𝒜).Shatters s
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
ht : s ∩ u ⊆ s
ha : a ∈ s
v : Finset α
hv : insert a v ∈ 𝒜 ∧ ¬s ∩ v ⊆ v
hsv : s ∩ v = {a}
⊢ False
state_after: no goals

tactic: refine forall_image.2 fun s hs ↦ mem_shatterer.2 fun t ht ↦ ?_
state_before: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s t : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
⊢ ℬ ⊆ 𝒜.shatterer
state_after: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : s ∈ (memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer
t : Finset α
ht : t ⊆ insert a s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: simp only [mem_inter, mem_shatterer] at hs
state_before: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s : Finset α
hs : s ∈ (memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer
t : Finset α
ht : t ⊆ insert a s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t ⊆ insert a s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: rw [subset_insert_iff] at ht
state_before: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t ⊆ insert a s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: by_cases ha : a ∈ t
state_before: case refine_3.refine_2
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case pos
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

case neg
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: obtain ⟨u, hu, hsu⟩ := hs.1 ht
state_before: case pos
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : u ∈ memberSubfamily a 𝒜
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: rw [mem_memberSubfamily] at hu
state_before: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : u ∈ memberSubfamily a 𝒜
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: refine ⟨_, hu.1, ?_⟩
state_before: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ insert a s ∩ insert a u = t

tactic: rw [← insert_inter_distrib, hsu, insert_erase ha]
state_before: case pos.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∈ t
u : Finset α
hu : insert a u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ insert a s ∩ insert a u = t
state_after: no goals

tactic: obtain ⟨u, hu, hsu⟩ := hs.2 ht
state_before: case neg
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ nonMemberSubfamily a 𝒜
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: rw [mem_nonMemberSubfamily] at hu
state_before: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ nonMemberSubfamily a 𝒜
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t

tactic: refine ⟨_, hu.1, ?_⟩
state_before: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ ∃ u ∈ 𝒜, insert a s ∩ u = t
state_after: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ insert a s ∩ u = t

tactic: rwa [insert_inter_of_not_mem hu.2, hsu, erase_eq_self]
state_before: case neg.intro.intro
α : Type u_1
inst✝ : DecidableEq α
𝒜✝¹ ℬ✝ : Finset (Finset α)
s✝ t✝ : Finset α
a✝ : α
n : ℕ
𝒜✝ : Finset (Finset α)
a : α
𝒜 : Finset (Finset α)
ih₀ : (nonMemberSubfamily a 𝒜).card ≤ (nonMemberSubfamily a 𝒜).shatterer.card
ih₁ : (memberSubfamily a 𝒜).card ≤ (memberSubfamily a 𝒜).shatterer.card
ℬ : Finset (Finset α) := image (insert a) ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer)
hℬ : ℬ.card = ((memberSubfamily a 𝒜).shatterer ∩ (nonMemberSubfamily a 𝒜).shatterer).card
s t : Finset α
ht : t.erase a ⊆ s
hs : (memberSubfamily a 𝒜).Shatters s ∧ (nonMemberSubfamily a 𝒜).Shatters s
ha : a ∉ t
u : Finset α
hu : u ∈ 𝒜 ∧ a ∉ u
hsu : s ∩ u = t.erase a
⊢ insert a s ∩ u = t
state_after: no goals