Theorem: UV.compression_self
File: Mathlib/Combinatorics/SetFamily/Compression/UV.lean

tactic: unfold compression
state_before: α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ 𝓒 u u s = s
state_after: α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => compress u u x ∈ s) s ∪ filter (fun x => x ∉ s) (image (compress u u) s) = s

tactic: convert union_empty s
state_before: α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => compress u u x ∈ s) s ∪ filter (fun x => x ∉ s) (image (compress u u) s) = s
state_after: case h.e'_2.h.e'_3
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => compress u u x ∈ s) s = s

case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => x ∉ s) (image (compress u u) s) = ∅

tactic: ext a
state_before: case h.e'_2.h.e'_3
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => compress u u x ∈ s) s = s
state_after: case h.e'_2.h.e'_3.a
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
⊢ a ∈ filter (fun x => compress u u x ∈ s) s ↔ a ∈ s

tactic: rw [mem_filter, compress_self, and_self_iff]
state_before: case h.e'_2.h.e'_3.a
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
⊢ a ∈ filter (fun x => compress u u x ∈ s) s ↔ a ∈ s
state_after: no goals

tactic: refine eq_empty_of_forall_not_mem fun a ha ↦ ?_
state_before: case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b : α
inst✝ : DecidableEq α
u : α
s : Finset α
⊢ filter (fun x => x ∉ s) (image (compress u u) s) = ∅
state_after: case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
ha : a ∈ filter (fun x => x ∉ s) (image (compress u u) s)
⊢ False

tactic: simp_rw [mem_filter, mem_image, compress_self] at ha
state_before: case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
ha : a ∈ filter (fun x => x ∉ s) (image (compress u u) s)
⊢ False
state_after: case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
ha : (∃ a_1 ∈ s, a_1 = a) ∧ a ∉ s
⊢ False

tactic: obtain ⟨⟨b, hb, rfl⟩, hb'⟩ := ha
state_before: case h.e'_2.h.e'_4
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a✝ b : α
inst✝ : DecidableEq α
u : α
s : Finset α
a : α
ha : (∃ a_1 ∈ s, a_1 = a) ∧ a ∉ s
⊢ False
state_after: case h.e'_2.h.e'_4.intro.intro.intro
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b✝ : α
inst✝ : DecidableEq α
u : α
s : Finset α
b : α
hb : b ∈ s
hb' : b ∉ s
⊢ False

tactic: exact hb' hb
state_before: case h.e'_2.h.e'_4.intro.intro.intro
α : Type u_1
inst✝³ : GeneralizedBooleanAlgebra α
inst✝² : DecidableRel Disjoint
inst✝¹ : DecidableRel fun x x_1 => x ≤ x_1
s✝ : Finset α
u✝ v a b✝ : α
inst✝ : DecidableEq α
u : α
s : Finset α
b : α
hb : b ∈ s
hb' : b ∉ s
⊢ False
state_after: no goals