Theorem: CliffordAlgebraQuaternion.ofQuaternion_comp_toQuaternion
File: Mathlib/LinearAlgebra/CliffordAlgebra/Equivs.lean

tactic: ext : 1
state_before: R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ ofQuaternion.comp toQuaternion = AlgHom.id R (CliffordAlgebra (Q c₁ c₂))
state_after: case a
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (ofQuaternion.comp toQuaternion).toLinearMap ∘ₗ ι (Q c₁ c₂) =
    (AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)

tactic: dsimp
state_before: case a
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (ofQuaternion.comp toQuaternion).toLinearMap ∘ₗ ι (Q c₁ c₂) =
    (AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)
state_after: case a
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂) =
    (AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)

tactic: ext
state_before: case a
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂) =
    (AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)
state_after: case a.hl.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (((ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inl R R R) 1 =
    (((AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inl R R R) 1

case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (((ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1 =
    (((AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1

tactic: all_goals
  dsimp
  rw [toQuaternion_ι]
  dsimp
  simp only [toQuaternion_ι, zero_smul, one_smul, zero_add, add_zero, RingHom.map_zero]
state_before: case a.hl.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (((ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inl R R R) 1 =
    (((AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inl R R R) 1

case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (((ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1 =
    (((AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1
state_after: no goals

tactic: dsimp
state_before: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (((ofQuaternion.toLinearMap ∘ₗ toQuaternion.toLinearMap) ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1 =
    (((AlgHom.id R (CliffordAlgebra (Q c₁ c₂))).toLinearMap ∘ₗ ι (Q c₁ c₂)) ∘ₗ LinearMap.inr R R R) 1
state_after: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ ofQuaternion (toQuaternion ((ι (Q c₁ c₂)) (0, 1))) = (ι (Q c₁ c₂)) (0, 1)

tactic: rw [toQuaternion_ι]
state_before: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ ofQuaternion (toQuaternion ((ι (Q c₁ c₂)) (0, 1))) = (ι (Q c₁ c₂)) (0, 1)
state_after: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ ofQuaternion { re := 0, imI := (0, 1).1, imJ := (0, 1).2, imK := 0 } = (ι (Q c₁ c₂)) (0, 1)

tactic: dsimp
state_before: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ ofQuaternion { re := 0, imI := (0, 1).1, imJ := (0, 1).2, imK := 0 } = (ι (Q c₁ c₂)) (0, 1)
state_after: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (algebraMap R (CliffordAlgebra (Q c₁ c₂))) 0 + 0 • (ι (Q c₁ c₂)) (1, 0) + 1 • (ι (Q c₁ c₂)) (0, 1) +
      0 • ((ι (Q c₁ c₂)) (1, 0) * (ι (Q c₁ c₂)) (0, 1)) =
    (ι (Q c₁ c₂)) (0, 1)

tactic: simp only [toQuaternion_ι, zero_smul, one_smul, zero_add, add_zero, RingHom.map_zero]
state_before: case a.hr.h
R : Type u_1
inst✝ : CommRing R
c₁ c₂ : R
⊢ (algebraMap R (CliffordAlgebra (Q c₁ c₂))) 0 + 0 • (ι (Q c₁ c₂)) (1, 0) + 1 • (ι (Q c₁ c₂)) (0, 1) +
      0 • ((ι (Q c₁ c₂)) (1, 0) * (ι (Q c₁ c₂)) (0, 1)) =
    (ι (Q c₁ c₂)) (0, 1)
state_after: no goals