Theorem: Function.mulSupport_extend_one_subset
File: Mathlib/Algebra/Group/Support.lean

tactic: by_cases hf : ∃ a, f a = x
state_before: α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
⊢ extend f g 1 x = 1
state_after: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ∃ a, f a = x
⊢ extend f g 1 x = 1

case neg
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ¬∃ a, f a = x
⊢ extend f g 1 x = 1

tactic: rw [extend, dif_pos hf, ← nmem_mulSupport]
state_before: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ∃ a, f a = x
⊢ extend f g 1 x = 1
state_after: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ∃ a, f a = x
⊢ Classical.choose hf ∉ mulSupport g

tactic: rw [← Classical.choose_spec hf] at hfg
state_before: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ∃ a, f a = x
⊢ Classical.choose hf ∉ mulSupport g
state_after: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hf : ∃ a, f a = x
hfg : f (Classical.choose hf) ∉ f '' mulSupport g
⊢ Classical.choose hf ∉ mulSupport g

tactic: exact fun hg ↦ hfg ⟨_, hg, rfl⟩
state_before: case pos
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hf : ∃ a, f a = x
hfg : f (Classical.choose hf) ∉ f '' mulSupport g
⊢ Classical.choose hf ∉ mulSupport g
state_after: no goals

tactic: rw [extend_apply' _ _ _ hf]
state_before: case neg
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ¬∃ a, f a = x
⊢ extend f g 1 x = 1
state_after: case neg
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ¬∃ a, f a = x
⊢ 1 x = 1

tactic: rfl
state_before: case neg
α : Type u_1
β : Type u_2
A : Type u_3
B : Type u_4
M : Type u_5
N : Type u_6
P : Type u_7
G : Type u_8
inst✝² : One M
inst✝¹ : One N
inst✝ : One P
f : α → M
g : α → N
x : M
hfg : x ∉ f '' mulSupport g
hf : ¬∃ a, f a = x
⊢ 1 x = 1
state_after: no goals