Theorem: Set.image2_image2_right
File: Mathlib/Data/Set/NAry.lean

tactic: ext
state_before: α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
⊢ image2 f s (image2 g t u) = image3 (fun a b c => f a (g b c)) s t u

tactic: constructor
state_before: case h
α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
x✝ : ε
⊢ x✝ ∈ image2 f s (image2 g t u) ↔ x✝ ∈ image3 (fun a b c => f a (g b c)) s t u

tactic: rintro ⟨a, _, ha, ⟨b, c, hb, hc, rfl⟩, rfl⟩
state_before: case h.mp
α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
x✝ : ε
⊢ x✝ ∈ image2 f s (image2 g t u) → x✝ ∈ image3 (fun a b c => f a (g b c)) s t u

tactic: refine' ⟨a, b, c, ha, hb, hc, rfl⟩
state_before: case h.mp.intro.intro.intro.intro.intro.intro.intro.intro
α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a✝ a' : α
b✝ b' : β
c✝ c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
a : α
ha : a ∈ s
b : β
c : γ
hb : b ∈ t
hc : c ∈ u
⊢ f a (g b c) ∈ image3 (fun a b c => f a (g b c)) s t u

tactic: rintro ⟨a, b, c, ha, hb, hc, rfl⟩
state_before: case h.mpr
α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
x✝ : ε
⊢ x✝ ∈ image3 (fun a b c => f a (g b c)) s t u → x✝ ∈ image2 f s (image2 g t u)

tactic: refine' ⟨a, _, ha, ⟨b, c, hb, hc, rfl⟩, rfl⟩
state_before: case h.mpr.intro.intro.intro.intro.intro.intro
α : Type u_2
α' : Type ?u.32621
β : Type u_4
β' : Type ?u.32627
γ : Type u_5
γ' : Type ?u.32633
δ : Type u_3
δ' : Type ?u.32639
ε : Type u_1
ε' : Type ?u.32645
ζ : Type ?u.32648
ζ' : Type ?u.32651
ν : Type ?u.32654
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a✝ a' : α
b✝ b' : β
c✝ c' : γ
d d' : δ
f : α → δ → ε
g : β → γ → δ
a : α
b : β
c : γ
ha : a ∈ s
hb : b ∈ t
hc : c ∈ u
⊢ (fun a b c => f a (g b c)) a b c ∈ image2 f s (image2 g t u)