Theorem: CliffordAlgebra.lift_symm_apply
File: Mathlib/LinearAlgebra/CliffordAlgebra/Basic.lean

Proof steps:
state_before: R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
x y : TensorAlgebra R M
h : Rel Q x y
⊢ ((TensorAlgebra.lift R) ↑f) x = ((TensorAlgebra.lift R) ↑f) y
state_after: case of
R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
x y : TensorAlgebra R M
m✝ : M
⊢ ((TensorAlgebra.lift R) ↑f) ((TensorAlgebra.ι R) m✝ * (TensorAlgebra.ι R) m✝) =
    ((TensorAlgebra.lift R) ↑f) ((algebraMap R (TensorAlgebra R M)) (Q m✝))
tactic: induction h
state_before: case of
R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
x y : TensorAlgebra R M
m✝ : M
⊢ ((TensorAlgebra.lift R) ↑f) ((TensorAlgebra.ι R) m✝ * (TensorAlgebra.ι R) m✝) =
    ((TensorAlgebra.lift R) ↑f) ((algebraMap R (TensorAlgebra R M)) (Q m✝))
state_after: no goals
tactic: rw [AlgHom.commutes, map_mul, TensorAlgebra.lift_ι_apply, f.prop]
state_before: R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
F : CliffordAlgebra Q →ₐ[R] A
m : M
⊢ (F.toLinearMap ∘ₗ ι Q) m * (F.toLinearMap ∘ₗ ι Q) m = (algebraMap R A) (Q m)
state_after: no goals
tactic: rw [LinearMap.comp_apply, AlgHom.toLinearMap_apply, comp_ι_sq_scalar]
state_before: R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
⊢ (fun F => ⟨F.toLinearMap ∘ₗ ι Q, ⋯⟩) ((fun f => (RingQuot.liftAlgHom R) ⟨(TensorAlgebra.lift R) ↑f, ⋯⟩) f) = f
state_after: case a.h
R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
x : M
⊢ ↑((fun F => ⟨F.toLinearMap ∘ₗ ι Q, ⋯⟩) ((fun f => (RingQuot.liftAlgHom R) ⟨(TensorAlgebra.lift R) ↑f, ⋯⟩) f)) x = ↑f x
tactic: ext x
state_before: case a.h
R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
f : { f // ∀ (m : M), f m * f m = (algebraMap R A) (Q m) }
x : M
⊢ ↑((fun F => ⟨F.toLinearMap ∘ₗ ι Q, ⋯⟩) ((fun f => (RingQuot.liftAlgHom R) ⟨(TensorAlgebra.lift R) ↑f, ⋯⟩) f)) x = ↑f x
state_after: no goals
tactic: exact (RingQuot.liftAlgHom_mkAlgHom_apply _ _ _ _).trans (TensorAlgebra.lift_ι_apply _ x)
state_before: R : Type u_1
inst✝⁴ : CommRing R
M : Type u_2
inst✝³ : AddCommGroup M
inst✝² : Module R M
Q : QuadraticForm R M
n : ℕ
A : Type u_3
inst✝¹ : Semiring A
inst✝ : Algebra R A
F : CliffordAlgebra Q →ₐ[R] A
x : M
⊢ ((((fun f => (RingQuot.liftAlgHom R) ⟨(TensorAlgebra.lift R) ↑f, ⋯⟩) ((fun F => ⟨F.toLinearMap ∘ₗ ι Q, ⋯⟩) F)).comp
            (RingQuot.mkAlgHom R (Rel Q))).toLinearMap ∘ₗ
        TensorAlgebra.ι R)
      x =
    ((F.comp (RingQuot.mkAlgHom R (Rel Q))).toLinearMap ∘ₗ TensorAlgebra.ι R) x
state_after: no goals
tactic: exact
            (RingQuot.liftAlgHom_mkAlgHom_apply _ _ _ _).trans (TensorAlgebra.lift_ι_apply _ _)