Theorem: Finset.subset_image₂
File: Mathlib/Data/Finset/NAry.lean

tactic: apply @Finset.induction_on' γ _ _ u
state_before: α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ u ⊆ image₂ f s' t'

tactic: rintro a u ha _ _ ⟨s', t', hs, hs', h⟩
state_before: case h₂
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ∀ {a : γ} {s_1 : Finset γ},
    a ∈ u →
      s_1 ⊆ u →
        ¬a ∈ s_1 →
          (∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ s_1 ⊆ image₂ f s' t') →
            ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ insert a s_1 ⊆ image₂ f s' t'

tactic: obtain ⟨x, y, hx, hy, ha⟩ := hu ha
state_before: case h₂.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ insert a u ⊆ image₂ f s' t'

tactic: haveI := Classical.decEq α
state_before: case h₂.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha✝ : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
x : α
y : β
hx : x ∈ s
hy : y ∈ t
ha : f x y = a
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ insert a u ⊆ image₂ f s' t'

tactic: haveI := Classical.decEq β
state_before: case h₂.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha✝ : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
x : α
y : β
hx : x ∈ s
hy : y ∈ t
ha : f x y = a
this : DecidableEq α
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ insert a u ⊆ image₂ f s' t'

tactic: refine' ⟨insert x s', insert y t', _⟩
state_before: case h₂.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha✝ : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
x : α
y : β
hx : x ∈ s
hy : y ∈ t
ha : f x y = a
this✝ : DecidableEq α
this : DecidableEq β
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ insert a u ⊆ image₂ f s' t'

tactic: simp_rw [coe_insert, Set.insert_subset]
state_before: case h₂.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha✝ : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
x : α
y : β
hx : x ∈ s
hy : y ∈ t
ha : f x y = a
this✝ : DecidableEq α
this : DecidableEq β
⊢ ↑(insert x s') ⊆ s ∧ ↑(insert y t') ⊆ t ∧ insert a u ⊆ image₂ f (insert x s') (insert y t')

tactic: exact
  ⟨⟨hx, hs⟩, ⟨hy, hs'⟩,
    insert_subset.2
      ⟨mem_image₂.2 ⟨x, y, mem_insert_self _ _, mem_insert_self _ _, ha⟩,
        h.trans <| image₂_subset (subset_insert _ _) <| subset_insert _ _⟩⟩
state_before: case h₂.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s'✝ : Finset α
t✝ t'✝ : Finset β
u✝ u' : Finset γ
a✝² a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u✝ ⊆ image2 f s t
a : γ
u : Finset γ
ha✝ : a ∈ u✝
a✝¹ : u ⊆ u✝
a✝ : ¬a ∈ u
s' : Finset α
t' : Finset β
hs : ↑s' ⊆ s
hs' : ↑t' ⊆ t
h : u ⊆ image₂ f s' t'
x : α
y : β
hx : x ∈ s
hy : y ∈ t
ha : f x y = a
this✝ : DecidableEq α
this : DecidableEq β
⊢ (x ∈ s ∧ ↑s' ⊆ s) ∧ (y ∈ t ∧ ↑t' ⊆ t) ∧ insert a u ⊆ image₂ f (insert x s') (insert y t')

tactic: use ∅
state_before: case h₁
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ∃ s' t', ↑s' ⊆ s ∧ ↑t' ⊆ t ∧ ∅ ⊆ image₂ f s' t'

tactic: use ∅
state_before: case h₁
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ∃ t', ↑∅ ⊆ s ∧ ↑t' ⊆ t ∧ ∅ ⊆ image₂ f ∅ t'

tactic: simp only [coe_empty]
state_before: case h₁
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ↑∅ ⊆ s ∧ ↑∅ ⊆ t ∧ ∅ ⊆ image₂ f ∅ ∅

tactic: exact ⟨Set.empty_subset _, Set.empty_subset _, empty_subset _⟩
state_before: case h₁
α : Type u_1
α' : Type ?u.47258
β : Type u_2
β' : Type ?u.47264
γ : Type u_3
γ' : Type ?u.47270
δ : Type ?u.47273
δ' : Type ?u.47276
ε : Type ?u.47279
ε' : Type ?u.47282
ζ : Type ?u.47285
ζ' : Type ?u.47288
ν : Type ?u.47291
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s✝ s' : Finset α
t✝ t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
s : Set α
t : Set β
hu : ↑u ⊆ image2 f s t
⊢ ∅ ⊆ s ∧ ∅ ⊆ t ∧ ∅ ⊆ image₂ f ∅ ∅