Theorem: CliffordAlgebra.changeForm_changeForm
File: Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean

tactic: induction' x using CliffordAlgebra.left_induction with r x y hx hy m x hx
state_before: R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x : CliffordAlgebra Q
⊢ (changeForm h') ((changeForm h) x) = (changeForm ⋯) x
state_after: case algebraMap
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
r : R
⊢ (changeForm h') ((changeForm h) ((algebraMap R (CliffordAlgebra Q)) r)) =
    (changeForm ⋯) ((algebraMap R (CliffordAlgebra Q)) r)

case add
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x y : CliffordAlgebra Q
hx : (changeForm h') ((changeForm h) x) = (changeForm ⋯) x
hy : (changeForm h') ((changeForm h) y) = (changeForm ⋯) y
⊢ (changeForm h') ((changeForm h) (x + y)) = (changeForm ⋯) (x + y)

case ι_mul
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
m : CliffordAlgebra Q
x : M
hx : (changeForm h') ((changeForm h) m) = (changeForm ⋯) m
⊢ (changeForm h') ((changeForm h) ((ι Q) x * m)) = (changeForm ⋯) ((ι Q) x * m)

tactic: simp_rw [changeForm_algebraMap]
state_before: case algebraMap
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
r : R
⊢ (changeForm h') ((changeForm h) ((algebraMap R (CliffordAlgebra Q)) r)) =
    (changeForm ⋯) ((algebraMap R (CliffordAlgebra Q)) r)
state_after: no goals

tactic: rw [map_add, map_add, map_add, hx, hy]
state_before: case add
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
x y : CliffordAlgebra Q
hx : (changeForm h') ((changeForm h) x) = (changeForm ⋯) x
hy : (changeForm h') ((changeForm h) y) = (changeForm ⋯) y
⊢ (changeForm h') ((changeForm h) (x + y)) = (changeForm ⋯) (x + y)
state_after: no goals

tactic: rw [changeForm_ι_mul, map_sub, changeForm_ι_mul, changeForm_ι_mul, hx, sub_sub,
  LinearMap.add_apply, map_add, LinearMap.add_apply, changeForm_contractLeft, hx,
  add_comm (_ : CliffordAlgebra Q'')]
state_before: case ι_mul
R : Type u1
inst✝² : CommRing R
M : Type u2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q Q' Q'' : QuadraticForm R M
B B' : BilinForm R M
h : B.toQuadraticForm = Q' - Q
h' : B'.toQuadraticForm = Q'' - Q'
m : CliffordAlgebra Q
x : M
hx : (changeForm h') ((changeForm h) m) = (changeForm ⋯) m
⊢ (changeForm h') ((changeForm h) ((ι Q) x * m)) = (changeForm ⋯) ((ι Q) x * m)
state_after: no goals