Theorem: Finsupp.extendDomain_eq_embDomain_subtype
File: Mathlib/Data/Finsupp/Basic.lean

tactic: ext a
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
⊢ f.extendDomain = embDomain (Embedding.subtype P) f
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a

tactic: by_cases h : P a
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : P a
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a

case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : ¬P a
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a

tactic: refine Eq.trans ?_ (embDomain_apply (.subtype P) f (Subtype.mk a h)).symm
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : P a
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a
state_after: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : P a
⊢ f.extendDomain a = f ⟨a, h⟩

tactic: simp [h]
state_before: case pos
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : P a
⊢ f.extendDomain a = f ⟨a, h⟩
state_after: no goals

tactic: rw [embDomain_notin_range, extendDomain_toFun, dif_neg h]
state_before: case neg
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : ¬P a
⊢ f.extendDomain a = (embDomain (Embedding.subtype P) f) a
state_after: case neg.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : ¬P a
⊢ a ∉ Set.range ⇑(Embedding.subtype P)

tactic: simp [h]
state_before: case neg.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M✝ : Type u_5
M' : Type u_6
N : Type u_7
P✝ : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
M : Type u_13
inst✝¹ : Zero M
P : α → Prop
inst✝ : DecidablePred P
f : Subtype P →₀ M
a : α
h : ¬P a
⊢ a ∉ Set.range ⇑(Embedding.subtype P)
state_after: no goals