Theorem: Finsupp.extendDomain_single
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
a : Subtype P
m : M
⊢ (single a m).extendDomain = single (↑a) m
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
a : Subtype P
m : M
a' : α
⊢ (single a m).extendDomain a' = (single (↑a) m) a'

tactic: rw [extendDomain_toFun]
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
a : Subtype P
m : M
a' : α
⊢ (single a m).extendDomain a' = (single (↑a) m) a'
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
a : Subtype P
m : M
a' : α
⊢ (if h : P a' then (single a m) ⟨a', h⟩ else 0) = (single (↑a) m) a'

tactic: obtain rfl | ha := eq_or_ne a.val 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
a : Subtype P
m : M
a' : α
⊢ (if h : P a' then (single a m) ⟨a', h⟩ else 0) = (single (↑a) m) a'
state_after: case h.inl
α : 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
a : Subtype P
m : M
⊢ (if h : P ↑a then (single a m) ⟨↑a, h⟩ else 0) = (single (↑a) m) ↑a

case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
⊢ (if h : P a' then (single a m) ⟨a', h⟩ else 0) = (single (↑a) m) a'

tactic: simp_rw [single_eq_same, dif_pos a.prop]
state_before: case h.inl
α : 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
a : Subtype P
m : M
⊢ (if h : P ↑a then (single a m) ⟨↑a, h⟩ else 0) = (single (↑a) m) ↑a
state_after: no goals

tactic: simp_rw [single_eq_of_ne ha, dite_eq_right_iff]
state_before: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
⊢ (if h : P a' then (single a m) ⟨a', h⟩ else 0) = (single (↑a) m) a'
state_after: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
⊢ ∀ (h : P a'), (single a m) ⟨a', h⟩ = 0

tactic: intro h
state_before: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
⊢ ∀ (h : P a'), (single a m) ⟨a', h⟩ = 0
state_after: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
h : P a'
⊢ (single a m) ⟨a', h⟩ = 0

tactic: rw [single_eq_of_ne]
state_before: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
h : P a'
⊢ (single a m) ⟨a', h⟩ = 0
state_after: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
h : P a'
⊢ a ≠ ⟨a', h⟩

tactic: simp [Subtype.ext_iff, ha]
state_before: case h.inr
α : 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
a : Subtype P
m : M
a' : α
ha : ↑a ≠ a'
h : P a'
⊢ a ≠ ⟨a', h⟩
state_after: no goals