File: Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean

full_name: CliffordAlgebra.EquivEven.Q'
code: /-- The quadratic form on the augmented vector space `M × R` sending `v + r•e0` to `Q v - r^2`. -/
abbrev Q' : QuadraticForm R (M × R) 
goal: QuadraticForm R (M × R)

full_name: CliffordAlgebra.EquivEven.Q'_apply
code: theorem Q'_apply (m : M × R) : Q' Q m = Q m.1 - m.2 * m.2 
goal: (CliffordAlgebra.EquivEven.Q' Q) m = Q m.1 - m.2 * m.2

full_name: CliffordAlgebra.EquivEven.e0
code: /-- The unit vector in the new dimension -/
def e0 : CliffordAlgebra (Q' Q) 
goal: CliffordAlgebra (CliffordAlgebra.EquivEven.Q' Q)

full_name: CliffordAlgebra.EquivEven.v
code: /-- The embedding from the existing vector space -/
def v : M →ₗ[R] CliffordAlgebra (Q' Q) 
goal: M →ₗ[R] CliffordAlgebra (CliffordAlgebra.EquivEven.Q' Q)

full_name: CliffordAlgebra.EquivEven.ι_eq_v_add_smul_e0
code: theorem ι_eq_v_add_smul_e0 (m : M) (r : R) : ι (Q' Q) (m, r) = v Q m + r • e0 Q 
goal: (CliffordAlgebra.ι (CliffordAlgebra.EquivEven.Q' Q)) (m, r) =
  (CliffordAlgebra.EquivEven.v Q) m + r • CliffordAlgebra.EquivEven.e0 Q

full_name: CliffordAlgebra.EquivEven.e0_mul_e0
code: theorem e0_mul_e0 : e0 Q * e0 Q = -1 
goal: CliffordAlgebra.EquivEven.e0 Q * CliffordAlgebra.EquivEven.e0 Q = -1

full_name: CliffordAlgebra.EquivEven.v_sq_scalar
code: theorem v_sq_scalar (m : M) : v Q m * v Q m = algebraMap _ _ (Q m) 
goal: (CliffordAlgebra.EquivEven.v Q) m * (CliffordAlgebra.EquivEven.v Q) m =
  (algebraMap R (CliffordAlgebra (CliffordAlgebra.EquivEven.Q' Q))) (Q m)

full_name: CliffordAlgebra.EquivEven.neg_e0_mul_v
code: theorem neg_e0_mul_v (m : M) : -(e0 Q * v Q m) = v Q m * e0 Q 
goal: -(CliffordAlgebra.EquivEven.e0 Q * (CliffordAlgebra.EquivEven.v Q) m) =
  (CliffordAlgebra.EquivEven.v Q) m * CliffordAlgebra.EquivEven.e0 Q

full_name: CliffordAlgebra.EquivEven.neg_v_mul_e0
code: theorem neg_v_mul_e0 (m : M) : -(v Q m * e0 Q) = e0 Q * v Q m 
goal: -((CliffordAlgebra.EquivEven.v Q) m * CliffordAlgebra.EquivEven.e0 Q) =
  CliffordAlgebra.EquivEven.e0 Q * (CliffordAlgebra.EquivEven.v Q) m

full_name: CliffordAlgebra.EquivEven.e0_mul_v_mul_e0
code: @[simp]
theorem e0_mul_v_mul_e0 (m : M) : e0 Q * v Q m * e0 Q = v Q m 
goal: CliffordAlgebra.EquivEven.e0 Q * (CliffordAlgebra.EquivEven.v Q) m * CliffordAlgebra.EquivEven.e0 Q =
  (CliffordAlgebra.EquivEven.v Q) m

full_name: CliffordAlgebra.EquivEven.reverse_v
code: @[simp]
theorem reverse_v (m : M) : reverse (Q := Q' Q) (v Q m) = v Q m 
goal: CliffordAlgebra.reverse ((CliffordAlgebra.EquivEven.v Q) m) = (CliffordAlgebra.EquivEven.v Q) m

full_name: CliffordAlgebra.EquivEven.involute_v
code: @[simp]
theorem involute_v (m : M) : involute (v Q m) = -v Q m 
goal: CliffordAlgebra.involute ((CliffordAlgebra.EquivEven.v Q) m) = -(CliffordAlgebra.EquivEven.v Q) m

full_name: CliffordAlgebra.EquivEven.reverse_e0
code: @[simp]
theorem reverse_e0 : reverse (Q := Q' Q) (e0 Q) = e0 Q 
goal: CliffordAlgebra.reverse (CliffordAlgebra.EquivEven.e0 Q) = CliffordAlgebra.EquivEven.e0 Q

full_name: CliffordAlgebra.EquivEven.involute_e0
code: @[simp]
theorem involute_e0 : involute (e0 Q) = -e0 Q 
goal: CliffordAlgebra.involute (CliffordAlgebra.EquivEven.e0 Q) = -CliffordAlgebra.EquivEven.e0 Q

full_name: CliffordAlgebra.toEven
code: /-- The embedding from the smaller algebra into the new larger one. -/
def toEven : CliffordAlgebra Q →ₐ[R] CliffordAlgebra.even (Q' Q) 
goal: CliffordAlgebra Q →ₐ[R] ↥(CliffordAlgebra.even (CliffordAlgebra.EquivEven.Q' Q))

full_name: CliffordAlgebra.toEven_ι
code: theorem toEven_ι (m : M) : (toEven Q (ι Q m) : CliffordAlgebra (Q' Q)) = e0 Q * v Q m 
goal: ↑((CliffordAlgebra.toEven Q) ((CliffordAlgebra.ι Q) m)) =
  CliffordAlgebra.EquivEven.e0 Q * (CliffordAlgebra.EquivEven.v Q) m

full_name: CliffordAlgebra.ofEven
code: /-- The embedding from the even subalgebra with an extra dimension into the original algebra. -/
def ofEven : CliffordAlgebra.even (Q' Q) →ₐ[R] CliffordAlgebra Q 
goal: ↥(CliffordAlgebra.even (CliffordAlgebra.EquivEven.Q' Q)) →ₐ[R] CliffordAlgebra Q

full_name: CliffordAlgebra.ofEven_ι
code: theorem ofEven_ι (x y : M × R) :
    ofEven Q ((even.ι (Q' Q)).bilin x y) =
      (ι Q x.1 + algebraMap R _ x.2) * (ι Q y.1 - algebraMap R _ y.2) 
goal: (CliffordAlgebra.ofEven Q) (((CliffordAlgebra.even.ι (CliffordAlgebra.EquivEven.Q' Q)).bilin x) y) =
  ((CliffordAlgebra.ι Q) x.1 + (algebraMap R (CliffordAlgebra Q)) x.2) *
    ((CliffordAlgebra.ι Q) y.1 - (algebraMap R (CliffordAlgebra Q)) y.2)

full_name: CliffordAlgebra.toEven_comp_ofEven
code: theorem toEven_comp_ofEven : (toEven Q).comp (ofEven Q) = AlgHom.id R _ 
goal: (CliffordAlgebra.toEven Q).comp (CliffordAlgebra.ofEven Q) =
  AlgHom.id R ↥(CliffordAlgebra.even (CliffordAlgebra.EquivEven.Q' Q))

full_name: CliffordAlgebra.ofEven_comp_toEven
code: theorem ofEven_comp_toEven : (ofEven Q).comp (toEven Q) = AlgHom.id R _ 
goal: (CliffordAlgebra.ofEven Q).comp (CliffordAlgebra.toEven Q) = AlgHom.id R (CliffordAlgebra Q)

full_name: CliffordAlgebra.equivEven
code: /-- Any clifford algebra is isomorphic to the even subalgebra of a clifford algebra with an extra
dimension (that is, with vector space `M × R`), with a quadratic form evaluating to `-1` on that new
basis vector. -/
def equivEven : CliffordAlgebra Q ≃ₐ[R] CliffordAlgebra.even (Q' Q) 
goal: CliffordAlgebra Q ≃ₐ[R] ↥(CliffordAlgebra.even (CliffordAlgebra.EquivEven.Q' Q))

full_name: CliffordAlgebra.coe_toEven_reverse_involute
code: /-- The representation of the clifford conjugate (i.e. the reverse of the involute) in the even
subalgebra is just the reverse of the representation. -/
theorem coe_toEven_reverse_involute (x : CliffordAlgebra Q) :
    ↑(toEven Q (reverse (involute x))) =
      reverse (Q := Q' Q) (toEven Q x : CliffordAlgebra (Q' Q)) 
goal: ↑((CliffordAlgebra.toEven Q) (CliffordAlgebra.reverse (CliffordAlgebra.involute x))) =
  CliffordAlgebra.reverse ↑((CliffordAlgebra.toEven Q) x)

full_name: CliffordAlgebra.evenToNeg
code: /-- One direction of `CliffordAlgebra.evenEquivEvenNeg` -/
def evenToNeg (Q' : QuadraticForm R M) (h : Q' = -Q) :
    CliffordAlgebra.even Q →ₐ[R] CliffordAlgebra.even Q' 
goal: ↥(CliffordAlgebra.even Q) →ₐ[R] ↥(CliffordAlgebra.even Q')

full_name: CliffordAlgebra.evenToNeg_ι
code: @[simp, nolint simpNF]
theorem evenToNeg_ι (Q' : QuadraticForm R M) (h : Q' = -Q) (m₁ m₂ : M) :
    evenToNeg Q Q' h ((even.ι Q).bilin m₁ m₂) = -(even.ι Q').bilin m₁ m₂ 
goal: (CliffordAlgebra.evenToNeg Q Q' h) (((CliffordAlgebra.even.ι Q).bilin m₁) m₂) =
  -((CliffordAlgebra.even.ι Q').bilin m₁) m₂

full_name: CliffordAlgebra.evenToNeg_comp_evenToNeg
code: theorem evenToNeg_comp_evenToNeg (Q' : QuadraticForm R M) (h : Q' = -Q) (h' : Q = -Q') :
    (evenToNeg Q' Q h').comp (evenToNeg Q Q' h) = AlgHom.id R _ 
goal: (CliffordAlgebra.evenToNeg Q' Q h').comp (CliffordAlgebra.evenToNeg Q Q' h) = AlgHom.id R ↥(CliffordAlgebra.even Q)

full_name: CliffordAlgebra.evenEquivEvenNeg_symm_apply
code: /-- The even subalgebras of the algebras with quadratic form `Q` and `-Q` are isomorphic.

Stated another way, `𝒞ℓ⁺(p,q,r)` and `𝒞ℓ⁺(q,p,r)` are isomorphic. -/
@[simps!]
def evenEquivEvenNeg : CliffordAlgebra.even Q ≃ₐ[R] CliffordAlgebra.even (-Q) 
goal: (CliffordAlgebra.evenEquivEvenNeg Q).symm a = (CliffordAlgebra.evenToNeg (-Q) Q ⋯) a

full_name: CliffordAlgebra.evenEquivEvenNeg_apply
code: /-- The even subalgebras of the algebras with quadratic form `Q` and `-Q` are isomorphic.

Stated another way, `𝒞ℓ⁺(p,q,r)` and `𝒞ℓ⁺(q,p,r)` are isomorphic. -/
@[simps!]
def evenEquivEvenNeg : CliffordAlgebra.even Q ≃ₐ[R] CliffordAlgebra.even (-Q) 
goal: (CliffordAlgebra.evenEquivEvenNeg Q) a = (CliffordAlgebra.evenToNeg Q (-Q) ⋯) a

full_name: CliffordAlgebra.evenEquivEvenNeg
code: /-- The even subalgebras of the algebras with quadratic form `Q` and `-Q` are isomorphic.

Stated another way, `𝒞ℓ⁺(p,q,r)` and `𝒞ℓ⁺(q,p,r)` are isomorphic. -/
@[simps!]
def evenEquivEvenNeg : CliffordAlgebra.even Q ≃ₐ[R] CliffordAlgebra.even (-Q) 
goal: ↥(CliffordAlgebra.even Q) ≃ₐ[R] ↥(CliffordAlgebra.even (-Q))