Theorem: HallMarriageTheorem.hall_cond_of_compl
File: Mathlib/Combinatorics/Hall/Finite.lean

tactic: haveI := Classical.decEq ι
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

tactic: have disj : Disjoint s (s'.image fun z => z.1) := by
  simp only [disjoint_left, not_exists, mem_image, exists_prop, SetCoe.exists, exists_and_right,
    exists_eq_right, Subtype.coe_mk]
  intro x hx hc _
  exact absurd hx hc
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

tactic: have : s'.card = (s ∪ s'.image fun z => z.1).card - s.card := by
  simp [disj, card_image_of_injective _ Subtype.coe_injective, Nat.add_sub_cancel_left]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

tactic: rw [this, hus]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s'.card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ (s ∪ image (fun z => ↑z) s').card - (s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

tactic: refine (Nat.sub_le_sub_right (ht _) _).trans ?_
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ (s ∪ image (fun z => ↑z) s').card - (s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ ((s ∪ image (fun z => ↑z) s').biUnion t).card - (s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

tactic: rw [← card_sdiff]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ ((s ∪ image (fun z => ↑z) s').biUnion t).card - (s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ ((s ∪ image (fun z => ↑z) s').biUnion t \ s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card

ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s.biUnion t ⊆ (s ∪ image (fun z => ↑z) s').biUnion t

tactic: simp only [disjoint_left, not_exists, mem_image, exists_prop, SetCoe.exists, exists_and_right,
  exists_eq_right, Subtype.coe_mk]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
⊢ Disjoint s (image (fun z => ↑z) s')
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
⊢ ∀ ⦃a : ι⦄, a ∈ s → ∀ (x : a ∈ (↑s)ᶜ), ⟨a, ⋯⟩ ∉ s'

tactic: intro x hx hc _
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
⊢ ∀ ⦃a : ι⦄, a ∈ s → ∀ (x : a ∈ (↑s)ᶜ), ⟨a, ⋯⟩ ∉ s'
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
x : ι
hx : x ∈ s
hc : x ∈ (↑s)ᶜ
a✝ : ⟨x, ⋯⟩ ∈ s'
⊢ False

tactic: exact absurd hx hc
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
x : ι
hx : x ∈ s
hc : x ∈ (↑s)ᶜ
a✝ : ⟨x, ⋯⟩ ∈ s'
⊢ False
state_after: no goals

tactic: simp [disj, card_image_of_injective _ Subtype.coe_injective, Nat.add_sub_cancel_left]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
⊢ s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
state_after: no goals

tactic: refine (card_le_card ?_).trans le_rfl
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ ((s ∪ image (fun z => ↑z) s').biUnion t \ s.biUnion t).card ≤ (s'.biUnion fun x' => t ↑x' \ s.biUnion t).card
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ (s ∪ image (fun z => ↑z) s').biUnion t \ s.biUnion t ⊆ s'.biUnion fun x' => t ↑x' \ s.biUnion t

tactic: intro t
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ (s ∪ image (fun z => ↑z) s').biUnion t \ s.biUnion t ⊆ s'.biUnion fun x' => t ↑x' \ s.biUnion t
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
⊢ t ∈ (s ∪ image (fun z => ↑z) s').biUnion t✝ \ s.biUnion t✝ → t ∈ s'.biUnion fun x' => t✝ ↑x' \ s.biUnion t✝

tactic: simp only [mem_biUnion, mem_sdiff, not_exists, mem_image, and_imp, mem_union, exists_and_right,
  exists_imp]
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
⊢ t ∈ (s ∪ image (fun z => ↑z) s').biUnion t✝ \ s.biUnion t✝ → t ∈ s'.biUnion fun x' => t✝ ↑x' \ s.biUnion t✝
state_after: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
⊢ ∀ (x : ι),
    (x ∈ s ∨ ∃ a ∈ s', ↑a = x) →
      t ∈ t✝ x → (∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)) → ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)

tactic: rintro x (hx | ⟨x', hx', rfl⟩) rat hs
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
⊢ ∀ (x : ι),
    (x ∈ s ∨ ∃ a ∈ s', ↑a = x) →
      t ∈ t✝ x → (∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)) → ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
state_after: case inl
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
x : ι
hx : x ∈ s
rat : t ∈ t✝ x
hs : ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
⊢ ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)

case inr.intro.intro
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
x' : ↑(↑s)ᶜ
hx' : x' ∈ s'
rat : t ∈ t✝ ↑x'
hs : ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
⊢ ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)

tactic: exact False.elim <| (hs x) <| And.intro hx rat
state_before: case inl
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
x : ι
hx : x ∈ s
rat : t ∈ t✝ x
hs : ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
⊢ ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
state_after: no goals

tactic: use x', hx', rat, hs
state_before: case inr.intro.intro
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝¹ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t✝ : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t✝).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t✝).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
t : α
x' : ↑(↑s)ᶜ
hx' : x' ∈ s'
rat : t ∈ t✝ ↑x'
hs : ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
⊢ ∃ a ∈ s', t ∈ t✝ ↑a ∧ ∀ (x : ι), ¬(x ∈ s ∧ t ∈ t✝ x)
state_after: no goals

tactic: apply biUnion_subset_biUnion_of_subset_left
state_before: ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s.biUnion t ⊆ (s ∪ image (fun z => ↑z) s').biUnion t
state_after: case h
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s ⊆ s ∪ image (fun z => ↑z) s'

tactic: apply subset_union_left
state_before: case h
ι✝ : Type u
α : Type v
inst✝¹ : DecidableEq α
t✝ : ι✝ → Finset α
inst✝ : Fintype ι✝
ι : Type u
t : ι → Finset α
s : Finset ι
hus : s.card = (s.biUnion t).card
ht : ∀ (s : Finset ι), s.card ≤ (s.biUnion t).card
s' : Finset ↑(↑s)ᶜ
this✝ : DecidableEq ι
disj : Disjoint s (image (fun z => ↑z) s')
this : s'.card = (s ∪ image (fun z => ↑z) s').card - s.card
⊢ s ⊆ s ∪ image (fun z => ↑z) s'
state_after: no goals