linear_algebra.clifford_algebra.equivsMathlib.LinearAlgebra.CliffordAlgebra.Equivs

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,12 +3,12 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 -/
-import Mathbin.Algebra.DualNumber
-import Mathbin.Algebra.QuaternionBasis
-import Mathbin.Data.Complex.Module
-import Mathbin.LinearAlgebra.CliffordAlgebra.Conjugation
-import Mathbin.LinearAlgebra.CliffordAlgebra.Star
-import Mathbin.LinearAlgebra.QuadraticForm.Prod
+import Algebra.DualNumber
+import Algebra.QuaternionBasis
+import Data.Complex.Module
+import LinearAlgebra.CliffordAlgebra.Conjugation
+import LinearAlgebra.CliffordAlgebra.Star
+import LinearAlgebra.QuadraticForm.Prod
 
 #align_import linear_algebra.clifford_algebra.equivs from "leanprover-community/mathlib"@"30faa0c3618ce1472bf6305ae0e3fa56affa3f95"
 
Diff
@@ -322,14 +322,14 @@ def quaternionBasis : QuaternionAlgebra.Basis (CliffordAlgebra (Q c₁ c₂)) c
   i := ι (Q c₁ c₂) (1, 0)
   j := ι (Q c₁ c₂) (0, 1)
   k := ι (Q c₁ c₂) (1, 0) * ι (Q c₁ c₂) (0, 1)
-  i_mul_i := by
+  i_hMul_i := by
     rw [ι_sq_scalar, Q_apply, ← Algebra.algebraMap_eq_smul_one]
     simp
-  j_mul_j := by
+  j_hMul_j := by
     rw [ι_sq_scalar, Q_apply, ← Algebra.algebraMap_eq_smul_one]
     simp
-  i_mul_j := rfl
-  j_mul_i := by
+  i_hMul_j := rfl
+  j_hMul_i := by
     rw [eq_neg_iff_add_eq_zero, ι_mul_ι_add_swap, QuadraticForm.polar]
     simp
 #align clifford_algebra_quaternion.quaternion_basis CliffordAlgebraQuaternion.quaternionBasis
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.clifford_algebra.equivs
-! leanprover-community/mathlib commit 30faa0c3618ce1472bf6305ae0e3fa56affa3f95
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.DualNumber
 import Mathbin.Algebra.QuaternionBasis
@@ -15,6 +10,8 @@ import Mathbin.LinearAlgebra.CliffordAlgebra.Conjugation
 import Mathbin.LinearAlgebra.CliffordAlgebra.Star
 import Mathbin.LinearAlgebra.QuadraticForm.Prod
 
+#align_import linear_algebra.clifford_algebra.equivs from "leanprover-community/mathlib"@"30faa0c3618ce1472bf6305ae0e3fa56affa3f95"
+
 /-!
 # Other constructions isomorphic to Clifford Algebras
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.clifford_algebra.equivs
-! leanprover-community/mathlib commit cf7a7252c1989efe5800e0b3cdfeb4228ac6b40e
+! leanprover-community/mathlib commit 30faa0c3618ce1472bf6305ae0e3fa56affa3f95
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -18,6 +18,9 @@ import Mathbin.LinearAlgebra.QuadraticForm.Prod
 /-!
 # Other constructions isomorphic to Clifford Algebras
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file contains isomorphisms showing that other types are equivalent to some `clifford_algebra`.
 
 ## Rings
Diff
@@ -74,10 +74,12 @@ open scoped ComplexConjugate
 
 variable {R : Type _} [CommRing R]
 
+#print CliffordAlgebraRing.ι_eq_zero /-
 @[simp]
 theorem ι_eq_zero : ι (0 : QuadraticForm R Unit) = 0 :=
   Subsingleton.elim _ _
 #align clifford_algebra_ring.ι_eq_zero CliffordAlgebraRing.ι_eq_zero
+-/
 
 /-- Since the vector space is empty the ring is commutative. -/
 instance : CommRing (CliffordAlgebra (0 : QuadraticForm R Unit)) :=
@@ -89,6 +91,7 @@ instance : CommRing (CliffordAlgebra (0 : QuadraticForm R Unit)) :=
       case h_add x₁ x₂ hx₁ hx₂ => rw [mul_add, add_mul, hx₁, hx₂]
       case h_mul x₁ x₂ hx₁ hx₂ => rw [mul_assoc, hx₂, ← mul_assoc, hx₁, ← mul_assoc] }
 
+#print CliffordAlgebraRing.reverse_apply /-
 theorem reverse_apply (x : CliffordAlgebra (0 : QuadraticForm R Unit)) : x.reverse = x :=
   by
   induction x using CliffordAlgebra.induction
@@ -97,18 +100,24 @@ theorem reverse_apply (x : CliffordAlgebra (0 : QuadraticForm R Unit)) : x.rever
   case h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
   case h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_ring.reverse_apply CliffordAlgebraRing.reverse_apply
+-/
 
+#print CliffordAlgebraRing.reverse_eq_id /-
 @[simp]
 theorem reverse_eq_id :
     (reverse : CliffordAlgebra (0 : QuadraticForm R Unit) →ₗ[R] _) = LinearMap.id :=
   LinearMap.ext reverse_apply
 #align clifford_algebra_ring.reverse_eq_id CliffordAlgebraRing.reverse_eq_id
+-/
 
+#print CliffordAlgebraRing.involute_eq_id /-
 @[simp]
 theorem involute_eq_id :
     (involute : CliffordAlgebra (0 : QuadraticForm R Unit) →ₐ[R] _) = AlgHom.id R _ := by ext; simp
 #align clifford_algebra_ring.involute_eq_id CliffordAlgebraRing.involute_eq_id
+-/
 
+#print CliffordAlgebraRing.equiv /-
 /-- The clifford algebra over a 0-dimensional vector space is isomorphic to its scalars. -/
 protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
   AlgEquiv.ofAlgHom
@@ -117,6 +126,7 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
     (Algebra.ofId R _) (by ext x; exact AlgHom.commutes _ x)
     (by ext : 1; rw [ι_eq_zero, LinearMap.comp_zero, LinearMap.comp_zero])
 #align clifford_algebra_ring.equiv CliffordAlgebraRing.equiv
+-/
 
 end CliffordAlgebraRing
 
@@ -127,35 +137,44 @@ namespace CliffordAlgebraComplex
 
 open scoped ComplexConjugate
 
+#print CliffordAlgebraComplex.Q /-
 /-- The quadratic form sending elements to the negation of their square. -/
-def q : QuadraticForm ℝ ℝ :=
+def Q : QuadraticForm ℝ ℝ :=
   -QuadraticForm.sq
-#align clifford_algebra_complex.Q CliffordAlgebraComplex.q
+#align clifford_algebra_complex.Q CliffordAlgebraComplex.Q
+-/
 
+#print CliffordAlgebraComplex.Q_apply /-
 @[simp]
-theorem q_apply (r : ℝ) : q r = -(r * r) :=
+theorem Q_apply (r : ℝ) : Q r = -(r * r) :=
   rfl
-#align clifford_algebra_complex.Q_apply CliffordAlgebraComplex.q_apply
+#align clifford_algebra_complex.Q_apply CliffordAlgebraComplex.Q_apply
+-/
 
+#print CliffordAlgebraComplex.toComplex /-
 /-- Intermediate result for `clifford_algebra_complex.equiv`: clifford algebras over
 `clifford_algebra_complex.Q` above can be converted to `ℂ`. -/
-def toComplex : CliffordAlgebra q →ₐ[ℝ] ℂ :=
-  CliffordAlgebra.lift q
+def toComplex : CliffordAlgebra Q →ₐ[ℝ] ℂ :=
+  CliffordAlgebra.lift Q
     ⟨LinearMap.toSpanSingleton _ _ Complex.I, fun r =>
       by
       dsimp [LinearMap.toSpanSingleton, LinearMap.id]
       rw [mul_mul_mul_comm]
       simp⟩
 #align clifford_algebra_complex.to_complex CliffordAlgebraComplex.toComplex
+-/
 
+#print CliffordAlgebraComplex.toComplex_ι /-
 @[simp]
-theorem toComplex_ι (r : ℝ) : toComplex (ι q r) = r • Complex.I :=
+theorem toComplex_ι (r : ℝ) : toComplex (ι Q r) = r • Complex.I :=
   CliffordAlgebra.lift_ι_apply _ _ r
 #align clifford_algebra_complex.to_complex_ι CliffordAlgebraComplex.toComplex_ι
+-/
 
+#print CliffordAlgebraComplex.toComplex_involute /-
 /-- `clifford_algebra.involute` is analogous to `complex.conj`. -/
 @[simp]
-theorem toComplex_involute (c : CliffordAlgebra q) : toComplex c.involute = conj (toComplex c) :=
+theorem toComplex_involute (c : CliffordAlgebra Q) : toComplex c.involute = conj (toComplex c) :=
   by
   have : to_complex (involute (ι Q 1)) = conj (to_complex (ι Q 1)) := by
     simp only [involute_ι, to_complex_ι, AlgHom.map_neg, one_smul, Complex.conj_I]
@@ -164,20 +183,26 @@ theorem toComplex_involute (c : CliffordAlgebra q) : toComplex c.involute = conj
   ext : 2
   exact this
 #align clifford_algebra_complex.to_complex_involute CliffordAlgebraComplex.toComplex_involute
+-/
 
+#print CliffordAlgebraComplex.ofComplex /-
 /-- Intermediate result for `clifford_algebra_complex.equiv`: `ℂ` can be converted to
 `clifford_algebra_complex.Q` above can be converted to. -/
-def ofComplex : ℂ →ₐ[ℝ] CliffordAlgebra q :=
+def ofComplex : ℂ →ₐ[ℝ] CliffordAlgebra Q :=
   Complex.lift
-    ⟨CliffordAlgebra.ι q 1, by
+    ⟨CliffordAlgebra.ι Q 1, by
       rw [CliffordAlgebra.ι_sq_scalar, Q_apply, one_mul, RingHom.map_neg, RingHom.map_one]⟩
 #align clifford_algebra_complex.of_complex CliffordAlgebraComplex.ofComplex
+-/
 
+#print CliffordAlgebraComplex.ofComplex_I /-
 @[simp]
-theorem ofComplex_i : ofComplex Complex.I = ι q 1 :=
+theorem ofComplex_I : ofComplex Complex.I = ι Q 1 :=
   Complex.liftAux_apply_I _ _
-#align clifford_algebra_complex.of_complex_I CliffordAlgebraComplex.ofComplex_i
+#align clifford_algebra_complex.of_complex_I CliffordAlgebraComplex.ofComplex_I
+-/
 
+#print CliffordAlgebraComplex.toComplex_comp_ofComplex /-
 @[simp]
 theorem toComplex_comp_ofComplex : toComplex.comp ofComplex = AlgHom.id ℝ ℂ :=
   by
@@ -185,44 +210,54 @@ theorem toComplex_comp_ofComplex : toComplex.comp ofComplex = AlgHom.id ℝ ℂ
   dsimp only [AlgHom.comp_apply, Subtype.coe_mk, AlgHom.id_apply]
   rw [of_complex_I, to_complex_ι, one_smul]
 #align clifford_algebra_complex.to_complex_comp_of_complex CliffordAlgebraComplex.toComplex_comp_ofComplex
+-/
 
+#print CliffordAlgebraComplex.toComplex_ofComplex /-
 @[simp]
 theorem toComplex_ofComplex (c : ℂ) : toComplex (ofComplex c) = c :=
   AlgHom.congr_fun toComplex_comp_ofComplex c
 #align clifford_algebra_complex.to_complex_of_complex CliffordAlgebraComplex.toComplex_ofComplex
+-/
 
+#print CliffordAlgebraComplex.ofComplex_comp_toComplex /-
 @[simp]
-theorem ofComplex_comp_toComplex : ofComplex.comp toComplex = AlgHom.id ℝ (CliffordAlgebra q) :=
+theorem ofComplex_comp_toComplex : ofComplex.comp toComplex = AlgHom.id ℝ (CliffordAlgebra Q) :=
   by
   ext
   dsimp only [LinearMap.comp_apply, Subtype.coe_mk, AlgHom.id_apply, AlgHom.toLinearMap_apply,
     AlgHom.comp_apply]
   rw [to_complex_ι, one_smul, of_complex_I]
 #align clifford_algebra_complex.of_complex_comp_to_complex CliffordAlgebraComplex.ofComplex_comp_toComplex
+-/
 
+#print CliffordAlgebraComplex.ofComplex_toComplex /-
 @[simp]
-theorem ofComplex_toComplex (c : CliffordAlgebra q) : ofComplex (toComplex c) = c :=
+theorem ofComplex_toComplex (c : CliffordAlgebra Q) : ofComplex (toComplex c) = c :=
   AlgHom.congr_fun ofComplex_comp_toComplex c
 #align clifford_algebra_complex.of_complex_to_complex CliffordAlgebraComplex.ofComplex_toComplex
+-/
 
+#print CliffordAlgebraComplex.equiv /-
 /-- The clifford algebras over `clifford_algebra_complex.Q` is isomorphic as an `ℝ`-algebra to
 `ℂ`. -/
 @[simps]
-protected def equiv : CliffordAlgebra q ≃ₐ[ℝ] ℂ :=
+protected def equiv : CliffordAlgebra Q ≃ₐ[ℝ] ℂ :=
   AlgEquiv.ofAlgHom toComplex ofComplex toComplex_comp_ofComplex ofComplex_comp_toComplex
 #align clifford_algebra_complex.equiv CliffordAlgebraComplex.equiv
+-/
 
 /-- The clifford algebra is commutative since it is isomorphic to the complex numbers.
 
 TODO: prove this is true for all `clifford_algebra`s over a 1-dimensional vector space. -/
-instance : CommRing (CliffordAlgebra q) :=
+instance : CommRing (CliffordAlgebra Q) :=
   { CliffordAlgebra.instRing _ with
     mul_comm := fun x y =>
       CliffordAlgebraComplex.equiv.Injective <| by
         rw [AlgEquiv.map_mul, mul_comm, AlgEquiv.map_mul] }
 
+#print CliffordAlgebraComplex.reverse_apply /-
 /-- `reverse` is a no-op over `clifford_algebra_complex.Q`. -/
-theorem reverse_apply (x : CliffordAlgebra q) : x.reverse = x :=
+theorem reverse_apply (x : CliffordAlgebra Q) : x.reverse = x :=
   by
   induction x using CliffordAlgebra.induction
   case h_grade0 r => exact reverse.commutes _
@@ -230,18 +265,23 @@ theorem reverse_apply (x : CliffordAlgebra q) : x.reverse = x :=
   case h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
   case h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_complex.reverse_apply CliffordAlgebraComplex.reverse_apply
+-/
 
+#print CliffordAlgebraComplex.reverse_eq_id /-
 @[simp]
-theorem reverse_eq_id : (reverse : CliffordAlgebra q →ₗ[ℝ] _) = LinearMap.id :=
+theorem reverse_eq_id : (reverse : CliffordAlgebra Q →ₗ[ℝ] _) = LinearMap.id :=
   LinearMap.ext reverse_apply
 #align clifford_algebra_complex.reverse_eq_id CliffordAlgebraComplex.reverse_eq_id
+-/
 
+#print CliffordAlgebraComplex.ofComplex_conj /-
 /-- `complex.conj` is analogous to `clifford_algebra.involute`. -/
 @[simp]
 theorem ofComplex_conj (c : ℂ) : ofComplex (conj c) = (ofComplex c).involute :=
   CliffordAlgebraComplex.equiv.Injective <| by
     rw [equiv_apply, equiv_apply, to_complex_involute, to_complex_of_complex, to_complex_of_complex]
 #align clifford_algebra_complex.of_complex_conj CliffordAlgebraComplex.ofComplex_conj
+-/
 
 -- this name is too short for us to want it visible after `open clifford_algebra_complex`
 attribute [protected] Q
@@ -259,24 +299,29 @@ open QuaternionAlgebra
 
 variable {R : Type _} [CommRing R] (c₁ c₂ : R)
 
+#print CliffordAlgebraQuaternion.Q /-
 /-- `Q c₁ c₂` is a quadratic form over `R × R` such that `clifford_algebra (Q c₁ c₂)` is isomorphic
 as an `R`-algebra to `ℍ[R,c₁,c₂]`. -/
-def q : QuadraticForm R (R × R) :=
+def Q : QuadraticForm R (R × R) :=
   (c₁ • QuadraticForm.sq).Prod (c₂ • QuadraticForm.sq)
-#align clifford_algebra_quaternion.Q CliffordAlgebraQuaternion.q
+#align clifford_algebra_quaternion.Q CliffordAlgebraQuaternion.Q
+-/
 
+#print CliffordAlgebraQuaternion.Q_apply /-
 @[simp]
-theorem q_apply (v : R × R) : q c₁ c₂ v = c₁ * (v.1 * v.1) + c₂ * (v.2 * v.2) :=
+theorem Q_apply (v : R × R) : Q c₁ c₂ v = c₁ * (v.1 * v.1) + c₂ * (v.2 * v.2) :=
   rfl
-#align clifford_algebra_quaternion.Q_apply CliffordAlgebraQuaternion.q_apply
+#align clifford_algebra_quaternion.Q_apply CliffordAlgebraQuaternion.Q_apply
+-/
 
+#print CliffordAlgebraQuaternion.quaternionBasis /-
 /-- The quaternion basis vectors within the algebra. -/
 @[simps i j k]
-def quaternionBasis : QuaternionAlgebra.Basis (CliffordAlgebra (q c₁ c₂)) c₁ c₂
+def quaternionBasis : QuaternionAlgebra.Basis (CliffordAlgebra (Q c₁ c₂)) c₁ c₂
     where
-  i := ι (q c₁ c₂) (1, 0)
-  j := ι (q c₁ c₂) (0, 1)
-  k := ι (q c₁ c₂) (1, 0) * ι (q c₁ c₂) (0, 1)
+  i := ι (Q c₁ c₂) (1, 0)
+  j := ι (Q c₁ c₂) (0, 1)
+  k := ι (Q c₁ c₂) (1, 0) * ι (Q c₁ c₂) (0, 1)
   i_mul_i := by
     rw [ι_sq_scalar, Q_apply, ← Algebra.algebraMap_eq_smul_one]
     simp
@@ -288,13 +333,15 @@ def quaternionBasis : QuaternionAlgebra.Basis (CliffordAlgebra (q c₁ c₂)) c
     rw [eq_neg_iff_add_eq_zero, ι_mul_ι_add_swap, QuadraticForm.polar]
     simp
 #align clifford_algebra_quaternion.quaternion_basis CliffordAlgebraQuaternion.quaternionBasis
+-/
 
 variable {c₁ c₂}
 
+#print CliffordAlgebraQuaternion.toQuaternion /-
 /-- Intermediate result of `clifford_algebra_quaternion.equiv`: clifford algebras over
 `clifford_algebra_quaternion.Q` can be converted to `ℍ[R,c₁,c₂]`. -/
-def toQuaternion : CliffordAlgebra (q c₁ c₂) →ₐ[R] ℍ[R,c₁,c₂] :=
-  CliffordAlgebra.lift (q c₁ c₂)
+def toQuaternion : CliffordAlgebra (Q c₁ c₂) →ₐ[R] ℍ[R,c₁,c₂] :=
+  CliffordAlgebra.lift (Q c₁ c₂)
     ⟨{  toFun := fun v => (⟨0, v.1, v.2, 0⟩ : ℍ[R,c₁,c₂])
         map_add' := fun v₁ v₂ => by simp
         map_smul' := fun r v => by ext <;> simp }, fun v =>
@@ -303,15 +350,19 @@ def toQuaternion : CliffordAlgebra (q c₁ c₂) →ₐ[R] ℍ[R,c₁,c₂] :=
       ext
       all_goals dsimp; ring⟩
 #align clifford_algebra_quaternion.to_quaternion CliffordAlgebraQuaternion.toQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.toQuaternion_ι /-
 @[simp]
 theorem toQuaternion_ι (v : R × R) :
-    toQuaternion (ι (q c₁ c₂) v) = (⟨0, v.1, v.2, 0⟩ : ℍ[R,c₁,c₂]) :=
+    toQuaternion (ι (Q c₁ c₂) v) = (⟨0, v.1, v.2, 0⟩ : ℍ[R,c₁,c₂]) :=
   CliffordAlgebra.lift_ι_apply _ _ v
 #align clifford_algebra_quaternion.to_quaternion_ι CliffordAlgebraQuaternion.toQuaternion_ι
+-/
 
+#print CliffordAlgebraQuaternion.toQuaternion_star /-
 /-- The "clifford conjugate" maps to the quaternion conjugate. -/
-theorem toQuaternion_star (c : CliffordAlgebra (q c₁ c₂)) :
+theorem toQuaternion_star (c : CliffordAlgebra (Q c₁ c₂)) :
     toQuaternion (star c) = star (toQuaternion c) :=
   by
   simp only [CliffordAlgebra.star_def']
@@ -325,23 +376,29 @@ theorem toQuaternion_star (c : CliffordAlgebra (q c₁ c₂)) :
   case h_mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
   case h_add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
 #align clifford_algebra_quaternion.to_quaternion_star CliffordAlgebraQuaternion.toQuaternion_star
+-/
 
+#print CliffordAlgebraQuaternion.ofQuaternion /-
 /-- Map a quaternion into the clifford algebra. -/
-def ofQuaternion : ℍ[R,c₁,c₂] →ₐ[R] CliffordAlgebra (q c₁ c₂) :=
+def ofQuaternion : ℍ[R,c₁,c₂] →ₐ[R] CliffordAlgebra (Q c₁ c₂) :=
   (quaternionBasis c₁ c₂).liftHom
 #align clifford_algebra_quaternion.of_quaternion CliffordAlgebraQuaternion.ofQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.ofQuaternion_mk /-
 @[simp]
 theorem ofQuaternion_mk (a₁ a₂ a₃ a₄ : R) :
     ofQuaternion (⟨a₁, a₂, a₃, a₄⟩ : ℍ[R,c₁,c₂]) =
-      algebraMap R _ a₁ + a₂ • ι (q c₁ c₂) (1, 0) + a₃ • ι (q c₁ c₂) (0, 1) +
-        a₄ • (ι (q c₁ c₂) (1, 0) * ι (q c₁ c₂) (0, 1)) :=
+      algebraMap R _ a₁ + a₂ • ι (Q c₁ c₂) (1, 0) + a₃ • ι (Q c₁ c₂) (0, 1) +
+        a₄ • (ι (Q c₁ c₂) (1, 0) * ι (Q c₁ c₂) (0, 1)) :=
   rfl
 #align clifford_algebra_quaternion.of_quaternion_mk CliffordAlgebraQuaternion.ofQuaternion_mk
+-/
 
+#print CliffordAlgebraQuaternion.ofQuaternion_comp_toQuaternion /-
 @[simp]
 theorem ofQuaternion_comp_toQuaternion :
-    ofQuaternion.comp toQuaternion = AlgHom.id R (CliffordAlgebra (q c₁ c₂)) :=
+    ofQuaternion.comp toQuaternion = AlgHom.id R (CliffordAlgebra (Q c₁ c₂)) :=
   by
   ext : 1
   dsimp
@@ -353,33 +410,43 @@ theorem ofQuaternion_comp_toQuaternion :
     dsimp
     simp only [to_quaternion_ι, zero_smul, one_smul, zero_add, add_zero, RingHom.map_zero]
 #align clifford_algebra_quaternion.of_quaternion_comp_to_quaternion CliffordAlgebraQuaternion.ofQuaternion_comp_toQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.ofQuaternion_toQuaternion /-
 @[simp]
-theorem ofQuaternion_toQuaternion (c : CliffordAlgebra (q c₁ c₂)) :
+theorem ofQuaternion_toQuaternion (c : CliffordAlgebra (Q c₁ c₂)) :
     ofQuaternion (toQuaternion c) = c :=
-  AlgHom.congr_fun (ofQuaternion_comp_toQuaternion : _ = AlgHom.id R (CliffordAlgebra (q c₁ c₂))) c
+  AlgHom.congr_fun (ofQuaternion_comp_toQuaternion : _ = AlgHom.id R (CliffordAlgebra (Q c₁ c₂))) c
 #align clifford_algebra_quaternion.of_quaternion_to_quaternion CliffordAlgebraQuaternion.ofQuaternion_toQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.toQuaternion_comp_ofQuaternion /-
 @[simp]
 theorem toQuaternion_comp_ofQuaternion : toQuaternion.comp ofQuaternion = AlgHom.id R ℍ[R,c₁,c₂] :=
   by
   apply quaternion_algebra.lift.symm.injective
   ext1 <;> dsimp [QuaternionAlgebra.Basis.lift] <;> simp
 #align clifford_algebra_quaternion.to_quaternion_comp_of_quaternion CliffordAlgebraQuaternion.toQuaternion_comp_ofQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.toQuaternion_ofQuaternion /-
 @[simp]
 theorem toQuaternion_ofQuaternion (q : ℍ[R,c₁,c₂]) : toQuaternion (ofQuaternion q) = q :=
   AlgHom.congr_fun (toQuaternion_comp_ofQuaternion : _ = AlgHom.id R ℍ[R,c₁,c₂]) q
 #align clifford_algebra_quaternion.to_quaternion_of_quaternion CliffordAlgebraQuaternion.toQuaternion_ofQuaternion
+-/
 
+#print CliffordAlgebraQuaternion.equiv /-
 /-- The clifford algebra over `clifford_algebra_quaternion.Q c₁ c₂` is isomorphic as an `R`-algebra
 to `ℍ[R,c₁,c₂]`. -/
 @[simps]
-protected def equiv : CliffordAlgebra (q c₁ c₂) ≃ₐ[R] ℍ[R,c₁,c₂] :=
+protected def equiv : CliffordAlgebra (Q c₁ c₂) ≃ₐ[R] ℍ[R,c₁,c₂] :=
   AlgEquiv.ofAlgHom toQuaternion ofQuaternion toQuaternion_comp_ofQuaternion
     ofQuaternion_comp_toQuaternion
 #align clifford_algebra_quaternion.equiv CliffordAlgebraQuaternion.equiv
+-/
 
+#print CliffordAlgebraQuaternion.ofQuaternion_star /-
 /-- The quaternion conjugate maps to the "clifford conjugate" (aka `star`). -/
 @[simp]
 theorem ofQuaternion_star (q : ℍ[R,c₁,c₂]) : ofQuaternion (star q) = star (ofQuaternion q) :=
@@ -387,6 +454,7 @@ theorem ofQuaternion_star (q : ℍ[R,c₁,c₂]) : ofQuaternion (star q) = star
     rw [equiv_apply, equiv_apply, to_quaternion_star, to_quaternion_of_quaternion,
       to_quaternion_of_quaternion]
 #align clifford_algebra_quaternion.of_quaternion_star CliffordAlgebraQuaternion.ofQuaternion_star
+-/
 
 -- this name is too short for us to want it visible after `open clifford_algebra_quaternion`
 attribute [protected] Q
@@ -404,12 +472,15 @@ open DualNumber TrivSqZeroExt
 
 variable {R M : Type _} [CommRing R] [AddCommGroup M] [Module R M]
 
+#print CliffordAlgebraDualNumber.ι_mul_ι /-
 theorem ι_mul_ι (r₁ r₂) : ι (0 : QuadraticForm R R) r₁ * ι (0 : QuadraticForm R R) r₂ = 0 := by
   rw [← mul_one r₁, ← mul_one r₂, ← smul_eq_mul R, ← smul_eq_mul R, LinearMap.map_smul,
     LinearMap.map_smul, smul_mul_smul, ι_sq_scalar, QuadraticForm.zero_apply, RingHom.map_zero,
     smul_zero]
 #align clifford_algebra_dual_number.ι_mul_ι CliffordAlgebraDualNumber.ι_mul_ι
+-/
 
+#print CliffordAlgebraDualNumber.equiv /-
 /-- The clifford algebra over a 1-dimensional vector space with 0 quadratic form is isomorphic to
 the dual numbers. -/
 protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
@@ -419,17 +490,22 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
     (by ext x : 1; dsimp; rw [lift_apply_eps, Subtype.coe_mk, lift_ι_apply, inr_hom_apply, eps])
     (by ext : 2; dsimp; rw [lift_ι_apply, inr_hom_apply, ← eps, lift_apply_eps, Subtype.coe_mk])
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
+-/
 
+#print CliffordAlgebraDualNumber.equiv_ι /-
 @[simp]
 theorem equiv_ι (r : R) : CliffordAlgebraDualNumber.equiv (ι _ r) = r • ε :=
   (lift_ι_apply _ _ r).trans (inr_eq_smul_eps _)
 #align clifford_algebra_dual_number.equiv_ι CliffordAlgebraDualNumber.equiv_ι
+-/
 
+#print CliffordAlgebraDualNumber.equiv_symm_eps /-
 @[simp]
 theorem equiv_symm_eps :
     CliffordAlgebraDualNumber.equiv.symm (eps : R[ε]) = ι (0 : QuadraticForm R R) 1 :=
   DualNumber.lift_apply_eps _
 #align clifford_algebra_dual_number.equiv_symm_eps CliffordAlgebraDualNumber.equiv_symm_eps
+-/
 
 end CliffordAlgebraDualNumber
 
Diff
@@ -81,7 +81,7 @@ theorem ι_eq_zero : ι (0 : QuadraticForm R Unit) = 0 :=
 
 /-- Since the vector space is empty the ring is commutative. -/
 instance : CommRing (CliffordAlgebra (0 : QuadraticForm R Unit)) :=
-  { CliffordAlgebra.ring _ with
+  { CliffordAlgebra.instRing _ with
     mul_comm := fun x y => by
       induction x using CliffordAlgebra.induction
       case h_grade0 r => apply Algebra.commutes
@@ -216,7 +216,7 @@ protected def equiv : CliffordAlgebra q ≃ₐ[ℝ] ℂ :=
 
 TODO: prove this is true for all `clifford_algebra`s over a 1-dimensional vector space. -/
 instance : CommRing (CliffordAlgebra q) :=
-  { CliffordAlgebra.ring _ with
+  { CliffordAlgebra.instRing _ with
     mul_comm := fun x y =>
       CliffordAlgebraComplex.equiv.Injective <| by
         rw [AlgEquiv.map_mul, mul_comm, AlgEquiv.map_mul] }
Diff
@@ -70,7 +70,7 @@ open CliffordAlgebra
 
 namespace CliffordAlgebraRing
 
-open ComplexConjugate
+open scoped ComplexConjugate
 
 variable {R : Type _} [CommRing R]
 
@@ -125,7 +125,7 @@ end CliffordAlgebraRing
 
 namespace CliffordAlgebraComplex
 
-open ComplexConjugate
+open scoped ComplexConjugate
 
 /-- The quadratic form sending elements to the negation of their square. -/
 def q : QuadraticForm ℝ ℝ :=
@@ -253,7 +253,7 @@ end CliffordAlgebraComplex
 
 namespace CliffordAlgebraQuaternion
 
-open Quaternion
+open scoped Quaternion
 
 open QuaternionAlgebra
 
@@ -398,7 +398,7 @@ end CliffordAlgebraQuaternion
 
 namespace CliffordAlgebraDualNumber
 
-open DualNumber
+open scoped DualNumber
 
 open DualNumber TrivSqZeroExt
 
Diff
@@ -106,10 +106,7 @@ theorem reverse_eq_id :
 
 @[simp]
 theorem involute_eq_id :
-    (involute : CliffordAlgebra (0 : QuadraticForm R Unit) →ₐ[R] _) = AlgHom.id R _ :=
-  by
-  ext
-  simp
+    (involute : CliffordAlgebra (0 : QuadraticForm R Unit) →ₐ[R] _) = AlgHom.id R _ := by ext; simp
 #align clifford_algebra_ring.involute_eq_id CliffordAlgebraRing.involute_eq_id
 
 /-- The clifford algebra over a 0-dimensional vector space is isomorphic to its scalars. -/
@@ -117,13 +114,8 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R Unit) <|
       ⟨0, fun m : Unit => (MulZeroClass.zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
-    (Algebra.ofId R _)
-    (by
-      ext x
-      exact AlgHom.commutes _ x)
-    (by
-      ext : 1
-      rw [ι_eq_zero, LinearMap.comp_zero, LinearMap.comp_zero])
+    (Algebra.ofId R _) (by ext x; exact AlgHom.commutes _ x)
+    (by ext : 1; rw [ι_eq_zero, LinearMap.comp_zero, LinearMap.comp_zero])
 #align clifford_algebra_ring.equiv CliffordAlgebraRing.equiv
 
 end CliffordAlgebraRing
@@ -424,14 +416,8 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R R) ⟨inrHom R _, fun m => inr_mul_inr _ m m⟩)
     (DualNumber.lift ⟨ι _ (1 : R), ι_mul_ι (1 : R) 1⟩)
-    (by
-      ext x : 1
-      dsimp
-      rw [lift_apply_eps, Subtype.coe_mk, lift_ι_apply, inr_hom_apply, eps])
-    (by
-      ext : 2
-      dsimp
-      rw [lift_ι_apply, inr_hom_apply, ← eps, lift_apply_eps, Subtype.coe_mk])
+    (by ext x : 1; dsimp; rw [lift_apply_eps, Subtype.coe_mk, lift_ι_apply, inr_hom_apply, eps])
+    (by ext : 2; dsimp; rw [lift_ι_apply, inr_hom_apply, ← eps, lift_apply_eps, Subtype.coe_mk])
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
 
 @[simp]
Diff
@@ -183,7 +183,7 @@ def ofComplex : ℂ →ₐ[ℝ] CliffordAlgebra q :=
 
 @[simp]
 theorem ofComplex_i : ofComplex Complex.I = ι q 1 :=
-  Complex.liftAux_apply_i _ _
+  Complex.liftAux_apply_I _ _
 #align clifford_algebra_complex.of_complex_I CliffordAlgebraComplex.ofComplex_i
 
 @[simp]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.clifford_algebra.equivs
-! leanprover-community/mathlib commit 4d66277cfec381260ba05c68f9ae6ce2a118031d
+! leanprover-community/mathlib commit cf7a7252c1989efe5800e0b3cdfeb4228ac6b40e
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -53,7 +53,7 @@ We show additionally that this equivalence sends `quaternion_algebra.conj` to th
 and vice-versa:
 
 * `clifford_algebra_quaternion.to_quaternion_star`
-* `clifford_algebra_quaternion.of_quaternion_conj`
+* `clifford_algebra_quaternion.of_quaternion_star`
 
 ## Dual numbers
 
@@ -320,20 +320,18 @@ theorem toQuaternion_ι (v : R × R) :
 
 /-- The "clifford conjugate" maps to the quaternion conjugate. -/
 theorem toQuaternion_star (c : CliffordAlgebra (q c₁ c₂)) :
-    toQuaternion (star c) = QuaternionAlgebra.conj (toQuaternion c) :=
+    toQuaternion (star c) = star (toQuaternion c) :=
   by
   simp only [CliffordAlgebra.star_def']
   induction c using CliffordAlgebra.induction
   case h_grade0 r =>
     simp only [reverse.commutes, AlgHom.commutes, QuaternionAlgebra.coe_algebraMap,
-      QuaternionAlgebra.conj_coe]
+      QuaternionAlgebra.star_coe]
   case h_grade1 x =>
     rw [reverse_ι, involute_ι, to_quaternion_ι, AlgHom.map_neg, to_quaternion_ι,
-      QuaternionAlgebra.neg_mk, conj_mk, neg_zero]
-  case h_mul x₁ x₂ hx₁ hx₂ =>
-    simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, QuaternionAlgebra.conj_mul]
-  case h_add x₁ x₂ hx₁ hx₂ =>
-    simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, QuaternionAlgebra.conj_add]
+      QuaternionAlgebra.neg_mk, star_mk, neg_zero]
+  case h_mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
+  case h_add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
 #align clifford_algebra_quaternion.to_quaternion_star CliffordAlgebraQuaternion.toQuaternion_star
 
 /-- Map a quaternion into the clifford algebra. -/
@@ -392,11 +390,11 @@ protected def equiv : CliffordAlgebra (q c₁ c₂) ≃ₐ[R] ℍ[R,c₁,c₂] :
 
 /-- The quaternion conjugate maps to the "clifford conjugate" (aka `star`). -/
 @[simp]
-theorem ofQuaternion_conj (q : ℍ[R,c₁,c₂]) : ofQuaternion q.conj = star (ofQuaternion q) :=
+theorem ofQuaternion_star (q : ℍ[R,c₁,c₂]) : ofQuaternion (star q) = star (ofQuaternion q) :=
   CliffordAlgebraQuaternion.equiv.Injective <| by
     rw [equiv_apply, equiv_apply, to_quaternion_star, to_quaternion_of_quaternion,
       to_quaternion_of_quaternion]
-#align clifford_algebra_quaternion.of_quaternion_conj CliffordAlgebraQuaternion.ofQuaternion_conj
+#align clifford_algebra_quaternion.of_quaternion_star CliffordAlgebraQuaternion.ofQuaternion_star
 
 -- this name is too short for us to want it visible after `open clifford_algebra_quaternion`
 attribute [protected] Q
Diff
@@ -116,7 +116,7 @@ theorem involute_eq_id :
 protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R Unit) <|
-      ⟨0, fun m : Unit => (zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
+      ⟨0, fun m : Unit => (MulZeroClass.zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
     (Algebra.ofId R _)
     (by
       ext x
Diff
@@ -149,7 +149,7 @@ theorem q_apply (r : ℝ) : q r = -(r * r) :=
 `clifford_algebra_complex.Q` above can be converted to `ℂ`. -/
 def toComplex : CliffordAlgebra q →ₐ[ℝ] ℂ :=
   CliffordAlgebra.lift q
-    ⟨LinearMap.toSpanSingleton _ _ Complex.i, fun r =>
+    ⟨LinearMap.toSpanSingleton _ _ Complex.I, fun r =>
       by
       dsimp [LinearMap.toSpanSingleton, LinearMap.id]
       rw [mul_mul_mul_comm]
@@ -157,7 +157,7 @@ def toComplex : CliffordAlgebra q →ₐ[ℝ] ℂ :=
 #align clifford_algebra_complex.to_complex CliffordAlgebraComplex.toComplex
 
 @[simp]
-theorem toComplex_ι (r : ℝ) : toComplex (ι q r) = r • Complex.i :=
+theorem toComplex_ι (r : ℝ) : toComplex (ι q r) = r • Complex.I :=
   CliffordAlgebra.lift_ι_apply _ _ r
 #align clifford_algebra_complex.to_complex_ι CliffordAlgebraComplex.toComplex_ι
 
@@ -166,7 +166,7 @@ theorem toComplex_ι (r : ℝ) : toComplex (ι q r) = r • Complex.i :=
 theorem toComplex_involute (c : CliffordAlgebra q) : toComplex c.involute = conj (toComplex c) :=
   by
   have : to_complex (involute (ι Q 1)) = conj (to_complex (ι Q 1)) := by
-    simp only [involute_ι, to_complex_ι, AlgHom.map_neg, one_smul, Complex.conj_i]
+    simp only [involute_ι, to_complex_ι, AlgHom.map_neg, one_smul, Complex.conj_I]
   suffices to_complex.comp involute = complex.conj_ae.to_alg_hom.comp to_complex by
     exact AlgHom.congr_fun this c
   ext : 2
@@ -182,7 +182,7 @@ def ofComplex : ℂ →ₐ[ℝ] CliffordAlgebra q :=
 #align clifford_algebra_complex.of_complex CliffordAlgebraComplex.ofComplex
 
 @[simp]
-theorem ofComplex_i : ofComplex Complex.i = ι q 1 :=
+theorem ofComplex_i : ofComplex Complex.I = ι q 1 :=
   Complex.liftAux_apply_i _ _
 #align clifford_algebra_complex.of_complex_I CliffordAlgebraComplex.ofComplex_i
 

Changes in mathlib4

mathlib3
mathlib4
chore: minor backports from nightly-testing (#12531)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -415,9 +415,17 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
     (by
       ext : 1
       -- This used to be a single `simp` before leanprover/lean4#2644
-      simp; erw [lift_ι_apply]; simp)
+      simp only [QuadraticForm.zero_apply, AlgHom.coe_comp, Function.comp_apply, lift_apply_eps,
+        AlgHom.coe_id, id_eq]
+      erw [lift_ι_apply]
+      simp)
     -- This used to be a single `simp` before leanprover/lean4#2644
-    (by ext : 2; simp; erw [lift_ι_apply]; simp)
+    (by
+      ext : 2
+      simp only [QuadraticForm.zero_apply, AlgHom.comp_toLinearMap, LinearMap.coe_comp,
+        Function.comp_apply, AlgHom.toLinearMap_apply, AlgHom.toLinearMap_id, LinearMap.id_comp]
+      erw [lift_ι_apply]
+      simp)
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
 
 @[simp]
chore: rename induction principle arguments around CliffordAlgebra (#10908)

In order to improve the ergonomics of the induction tactic, this renames the arguments of:

  • ExteriorAlgebra.induction
  • TensorAlgebra.induction
  • CliffordAlgebra.induction
  • CliffordAlgebra.left_induction
  • CliffordAlgebra.right_induction
  • CliffordAlgebra.even_induction
  • CliffordAlgebra.odd_induction
  • Submodule.iSup_induction'
  • Submodule.pow_induction_on_left'
  • Submodule.pow_induction_on_right'

This is slightly awkward for name-resolution within these induction principles, as the argument names end up clashing with the function they are about. Thankfully, this pain is not transferred to the caller using induction _ using _.

Diff
@@ -81,19 +81,19 @@ instance : CommRing (CliffordAlgebra (0 : QuadraticForm R Unit)) :=
   { CliffordAlgebra.instRing _ with
     mul_comm := fun x y => by
       induction x using CliffordAlgebra.induction with
-      | h_grade0 r => apply Algebra.commutes
-      | h_grade1 x => simp
-      | h_add x₁ x₂ hx₁ hx₂ => rw [mul_add, add_mul, hx₁, hx₂]
-      | h_mul x₁ x₂ hx₁ hx₂ => rw [mul_assoc, hx₂, ← mul_assoc, hx₁, ← mul_assoc] }
+      | algebraMap r => apply Algebra.commutes
+      | ι x => simp
+      | add x₁ x₂ hx₁ hx₂ => rw [mul_add, add_mul, hx₁, hx₂]
+      | mul x₁ x₂ hx₁ hx₂ => rw [mul_assoc, hx₂, ← mul_assoc, hx₁, ← mul_assoc] }
 
 -- Porting note: Changed `x.reverse` to `reverse (R := R) x`
 theorem reverse_apply (x : CliffordAlgebra (0 : QuadraticForm R Unit)) :
     reverse (R := R) x = x := by
   induction x using CliffordAlgebra.induction with
-  | h_grade0 r => exact reverse.commutes _
-  | h_grade1 x => rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
-  | h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
-  | h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
+  | algebraMap r => exact reverse.commutes _
+  | ι x => rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
+  | mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
+  | add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_ring.reverse_apply CliffordAlgebraRing.reverse_apply
 
 @[simp]
@@ -222,10 +222,10 @@ instance : CommRing (CliffordAlgebra Q) :=
 /-- `reverse` is a no-op over `CliffordAlgebraComplex.Q`. -/
 theorem reverse_apply (x : CliffordAlgebra Q) : reverse (R := ℝ) x = x := by
   induction x using CliffordAlgebra.induction with
-  | h_grade0 r => exact reverse.commutes _
-  | h_grade1 x => rw [reverse_ι]
-  | h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
-  | h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
+  | algebraMap r => exact reverse.commutes _
+  | ι x => rw [reverse_ι]
+  | mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
+  | add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_complex.reverse_apply CliffordAlgebraComplex.reverse_apply
 
 @[simp]
@@ -312,14 +312,14 @@ theorem toQuaternion_star (c : CliffordAlgebra (Q c₁ c₂)) :
     toQuaternion (star c) = star (toQuaternion c) := by
   simp only [CliffordAlgebra.star_def']
   induction c using CliffordAlgebra.induction with
-  | h_grade0 r =>
+  | algebraMap r =>
     simp only [reverse.commutes, AlgHom.commutes, QuaternionAlgebra.coe_algebraMap,
       QuaternionAlgebra.star_coe]
-  | h_grade1 x =>
+  | ι x =>
     rw [reverse_ι, involute_ι, toQuaternion_ι, AlgHom.map_neg, toQuaternion_ι,
       QuaternionAlgebra.neg_mk, star_mk, neg_zero]
-  | h_mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
-  | h_add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
+  | mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
+  | add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
 #align clifford_algebra_quaternion.to_quaternion_star CliffordAlgebraQuaternion.toQuaternion_star
 
 /-- Map a quaternion into the clifford algebra. -/
chore(Algebra.Basic): override toFun and smul in Algebra.id (#9949)

The current definition of Algebra.id is (RingHom.id _).toAlgebra. The problem with this is that RingHom.id is a def and is not reducible. Thus Lean will often refuse to unfold it causing unification to fail unecessarily in typeclass searches. This overrides the data fields from RingHom.id.

Diff
@@ -295,7 +295,7 @@ def toQuaternion : CliffordAlgebra (Q c₁ c₂) →ₐ[R] ℍ[R,c₁,c₂] :=
   CliffordAlgebra.lift (Q c₁ c₂)
     ⟨{  toFun := fun v => (⟨0, v.1, v.2, 0⟩ : ℍ[R,c₁,c₂])
         map_add' := fun v₁ v₂ => by simp
-        map_smul' := fun r v => by dsimp; rw [mul_zero]; rfl }, fun v => by
+        map_smul' := fun r v => by dsimp; rw [mul_zero] }, fun v => by
       dsimp
       ext
       all_goals dsimp; ring⟩
feat(Algebra/QuaternionBasis): extensionality for algebra morphisms from quaternions (#9441)

This result was basically already here, this just registers it with ext.

Diff
@@ -357,8 +357,7 @@ theorem ofQuaternion_toQuaternion (c : CliffordAlgebra (Q c₁ c₂)) :
 @[simp]
 theorem toQuaternion_comp_ofQuaternion :
     toQuaternion.comp ofQuaternion = AlgHom.id R ℍ[R,c₁,c₂] := by
-  apply QuaternionAlgebra.lift.symm.injective
-  ext1 <;> dsimp [QuaternionAlgebra.Basis.lift] <;> simp
+  ext : 1 <;> simp
 #align clifford_algebra_quaternion.to_quaternion_comp_of_quaternion CliffordAlgebraQuaternion.toQuaternion_comp_ofQuaternion
 
 @[simp]
style: use cases x with | ... instead of cases x; case => ... (#9321)

This converts usages of the pattern

cases h
case inl h' => ...
case inr h' => ...

which derive from mathported code, to the "structured cases" syntax:

cases h with
| inl h' => ...
| inr h' => ...

The case where the subgoals are handled with · instead of case is more contentious (and much more numerous) so I left those alone. This pattern also appears with cases', induction, induction', and rcases. Furthermore, there is a similar transformation for by_cases:

by_cases h : cond
case pos => ...
case neg => ...

is replaced by:

if h : cond then
  ...
else
  ...

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -80,20 +80,20 @@ theorem ι_eq_zero : ι (0 : QuadraticForm R Unit) = 0 :=
 instance : CommRing (CliffordAlgebra (0 : QuadraticForm R Unit)) :=
   { CliffordAlgebra.instRing _ with
     mul_comm := fun x y => by
-      induction x using CliffordAlgebra.induction
-      case h_grade0 r => apply Algebra.commutes
-      case h_grade1 x => simp
-      case h_add x₁ x₂ hx₁ hx₂ => rw [mul_add, add_mul, hx₁, hx₂]
-      case h_mul x₁ x₂ hx₁ hx₂ => rw [mul_assoc, hx₂, ← mul_assoc, hx₁, ← mul_assoc] }
+      induction x using CliffordAlgebra.induction with
+      | h_grade0 r => apply Algebra.commutes
+      | h_grade1 x => simp
+      | h_add x₁ x₂ hx₁ hx₂ => rw [mul_add, add_mul, hx₁, hx₂]
+      | h_mul x₁ x₂ hx₁ hx₂ => rw [mul_assoc, hx₂, ← mul_assoc, hx₁, ← mul_assoc] }
 
 -- Porting note: Changed `x.reverse` to `reverse (R := R) x`
 theorem reverse_apply (x : CliffordAlgebra (0 : QuadraticForm R Unit)) :
     reverse (R := R) x = x := by
-  induction x using CliffordAlgebra.induction
-  case h_grade0 r => exact reverse.commutes _
-  case h_grade1 x => rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
-  case h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
-  case h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
+  induction x using CliffordAlgebra.induction with
+  | h_grade0 r => exact reverse.commutes _
+  | h_grade1 x => rw [ι_eq_zero, LinearMap.zero_apply, reverse.map_zero]
+  | h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
+  | h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_ring.reverse_apply CliffordAlgebraRing.reverse_apply
 
 @[simp]
@@ -221,11 +221,11 @@ instance : CommRing (CliffordAlgebra Q) :=
 -- Porting note: Changed `x.reverse` to `reverse (R := ℝ) x`
 /-- `reverse` is a no-op over `CliffordAlgebraComplex.Q`. -/
 theorem reverse_apply (x : CliffordAlgebra Q) : reverse (R := ℝ) x = x := by
-  induction x using CliffordAlgebra.induction
-  case h_grade0 r => exact reverse.commutes _
-  case h_grade1 x => rw [reverse_ι]
-  case h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
-  case h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
+  induction x using CliffordAlgebra.induction with
+  | h_grade0 r => exact reverse.commutes _
+  | h_grade1 x => rw [reverse_ι]
+  | h_mul x₁ x₂ hx₁ hx₂ => rw [reverse.map_mul, mul_comm, hx₁, hx₂]
+  | h_add x₁ x₂ hx₁ hx₂ => rw [reverse.map_add, hx₁, hx₂]
 #align clifford_algebra_complex.reverse_apply CliffordAlgebraComplex.reverse_apply
 
 @[simp]
@@ -311,15 +311,15 @@ theorem toQuaternion_ι (v : R × R) :
 theorem toQuaternion_star (c : CliffordAlgebra (Q c₁ c₂)) :
     toQuaternion (star c) = star (toQuaternion c) := by
   simp only [CliffordAlgebra.star_def']
-  induction c using CliffordAlgebra.induction
-  case h_grade0 r =>
+  induction c using CliffordAlgebra.induction with
+  | h_grade0 r =>
     simp only [reverse.commutes, AlgHom.commutes, QuaternionAlgebra.coe_algebraMap,
       QuaternionAlgebra.star_coe]
-  case h_grade1 x =>
+  | h_grade1 x =>
     rw [reverse_ι, involute_ι, toQuaternion_ι, AlgHom.map_neg, toQuaternion_ι,
       QuaternionAlgebra.neg_mk, star_mk, neg_zero]
-  case h_mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
-  case h_add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
+  | h_mul x₁ x₂ hx₁ hx₂ => simp only [reverse.map_mul, AlgHom.map_mul, hx₁, hx₂, star_mul]
+  | h_add x₁ x₂ hx₁ hx₂ => simp only [reverse.map_add, AlgHom.map_add, hx₁, hx₂, star_add]
 #align clifford_algebra_quaternion.to_quaternion_star CliffordAlgebraQuaternion.toQuaternion_star
 
 /-- Map a quaternion into the clifford algebra. -/
refactor(Algebra/DualNumber): generalize the universal property to non-commutative rings (#7934)

The current universal properties of TrivSqZeroExt and DualNumber work only when the underlying ring is commutative. This is not the case for things like the dual quaternions.

This generalizes both sets of results to the non-commutative case. Unfortunately the new TrivSqZeroExt version is rather involved, so this keeps the old statement as a special case.

The new DualNumber version is less bad, so I just discarded the commutative special case.

For dual numbers, the generalization is from R[ε] →ₐ[R] B to A[ε] →ₐ[R] B, where R is commutative but A may not be. Some variable names had to be shuffled to make the new statement look nice.

Diff
@@ -409,9 +409,14 @@ the dual numbers. -/
 protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R R) ⟨inrHom R _, fun m => inr_mul_inr _ m m⟩)
-    (DualNumber.lift ⟨ι (R := R) _ 1, ι_mul_ι (1 : R) 1⟩)
-    -- This used to be a single `simp` before leanprover/lean4#2644
-    (by ext : 1; simp; erw [lift_ι_apply]; simp)
+    (DualNumber.lift ⟨
+      (Algebra.ofId _ _, ι (R := R) _ 1),
+      ι_mul_ι (1 : R) 1,
+      fun _ => (Algebra.commutes _ _).symm⟩)
+    (by
+      ext : 1
+      -- This used to be a single `simp` before leanprover/lean4#2644
+      simp; erw [lift_ι_apply]; simp)
     -- This used to be a single `simp` before leanprover/lean4#2644
     (by ext : 2; simp; erw [lift_ι_apply]; simp)
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
@@ -425,7 +430,7 @@ theorem equiv_ι (r : R) : CliffordAlgebraDualNumber.equiv (ι (R := R) _ r) = r
 theorem equiv_symm_eps :
     CliffordAlgebraDualNumber.equiv.symm (eps : R[ε]) = ι (0 : QuadraticForm R R) 1 :=
   -- Porting note: Original proof was `DualNumber.lift_apply_eps _`
-  DualNumber.lift_apply_eps (R := R) (A := CliffordAlgebra (0 : QuadraticForm R R)) _
+  DualNumber.lift_apply_eps (R := R) (B := CliffordAlgebra (0 : QuadraticForm R R)) _
 #align clifford_algebra_dual_number.equiv_symm_eps CliffordAlgebraDualNumber.equiv_symm_eps
 
 end CliffordAlgebraDualNumber
feat(Algebra/Algebra/Hom): add a trivial ext lemma (#8168)

This caused a few downstream proofs to fail with "no goals", forcing them to be golfed!

Diff
@@ -112,7 +112,7 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R Unit) <|
       ⟨0, fun m : Unit => (zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
-    (Algebra.ofId R _) (by ext x; exact AlgHom.commutes _ x)
+    (Algebra.ofId R _) (by ext)
     (by ext : 1; rw [ι_eq_zero, LinearMap.comp_zero, LinearMap.comp_zero])
 #align clifford_algebra_ring.equiv CliffordAlgebraRing.equiv
 
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -410,8 +410,10 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R R) ⟨inrHom R _, fun m => inr_mul_inr _ m m⟩)
     (DualNumber.lift ⟨ι (R := R) _ 1, ι_mul_ι (1 : R) 1⟩)
-    (by ext : 1; simp)
-    (by ext : 2; simp)
+    -- This used to be a single `simp` before leanprover/lean4#2644
+    (by ext : 1; simp; erw [lift_ι_apply]; simp)
+    -- This used to be a single `simp` before leanprover/lean4#2644
+    (by ext : 2; simp; erw [lift_ι_apply]; simp)
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
 
 @[simp]
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -410,10 +410,8 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R R) ⟨inrHom R _, fun m => inr_mul_inr _ m m⟩)
     (DualNumber.lift ⟨ι (R := R) _ 1, ι_mul_ι (1 : R) 1⟩)
-    -- This used to be a single `simp` before leanprover/lean4#2644
-    (by ext : 1; simp; erw [lift_ι_apply]; simp)
-    -- This used to be a single `simp` before leanprover/lean4#2644
-    (by ext : 2; simp; erw [lift_ι_apply]; simp)
+    (by ext : 1; simp)
+    (by ext : 2; simp)
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
 
 @[simp]
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -410,8 +410,10 @@ protected def equiv : CliffordAlgebra (0 : QuadraticForm R R) ≃ₐ[R] R[ε] :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R R) ⟨inrHom R _, fun m => inr_mul_inr _ m m⟩)
     (DualNumber.lift ⟨ι (R := R) _ 1, ι_mul_ι (1 : R) 1⟩)
-    (by ext : 1; simp)
-    (by ext : 2; simp)
+    -- This used to be a single `simp` before leanprover/lean4#2644
+    (by ext : 1; simp; erw [lift_ι_apply]; simp)
+    -- This used to be a single `simp` before leanprover/lean4#2644
+    (by ext : 2; simp; erw [lift_ι_apply]; simp)
 #align clifford_algebra_dual_number.equiv CliffordAlgebraDualNumber.equiv
 
 @[simp]
chore: drop MulZeroClass. in mul_zero/zero_mul (#6682)

Search&replace MulZeroClass.mul_zero -> mul_zero, MulZeroClass.zero_mul -> zero_mul.

These were introduced by Mathport, as the full name of mul_zero is actually MulZeroClass.mul_zero (it's exported with the short name).

Diff
@@ -111,7 +111,7 @@ theorem involute_eq_id :
 protected def equiv : CliffordAlgebra (0 : QuadraticForm R Unit) ≃ₐ[R] R :=
   AlgEquiv.ofAlgHom
     (CliffordAlgebra.lift (0 : QuadraticForm R Unit) <|
-      ⟨0, fun m : Unit => (MulZeroClass.zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
+      ⟨0, fun m : Unit => (zero_mul (0 : R)).trans (algebraMap R _).map_zero.symm⟩)
     (Algebra.ofId R _) (by ext x; exact AlgHom.commutes _ x)
     (by ext : 1; rw [ι_eq_zero, LinearMap.comp_zero, LinearMap.comp_zero])
 #align clifford_algebra_ring.equiv CliffordAlgebraRing.equiv
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -69,7 +69,7 @@ namespace CliffordAlgebraRing
 
 open scoped ComplexConjugate
 
-variable {R : Type _} [CommRing R]
+variable {R : Type*} [CommRing R]
 
 @[simp]
 theorem ι_eq_zero : ι (0 : QuadraticForm R Unit) = 0 :=
@@ -254,7 +254,7 @@ open scoped Quaternion
 
 open QuaternionAlgebra
 
-variable {R : Type _} [CommRing R] (c₁ c₂ : R)
+variable {R : Type*} [CommRing R] (c₁ c₂ : R)
 
 /-- `Q c₁ c₂` is a quadratic form over `R × R` such that `CliffordAlgebra (Q c₁ c₂)` is isomorphic
 as an `R`-algebra to `ℍ[R,c₁,c₂]`. -/
@@ -396,7 +396,7 @@ open scoped DualNumber
 
 open DualNumber TrivSqZeroExt
 
-variable {R M : Type _} [CommRing R] [AddCommGroup M] [Module R M]
+variable {R M : Type*} [CommRing R] [AddCommGroup M] [Module R M]
 
 theorem ι_mul_ι (r₁ r₂) : ι (0 : QuadraticForm R R) r₁ * ι (0 : QuadraticForm R R) r₂ = 0 := by
   rw [← mul_one r₁, ← mul_one r₂, ← smul_eq_mul R, ← smul_eq_mul R, LinearMap.map_smul,
chore: fix grammar mistakes (#6121)
Diff
@@ -54,7 +54,7 @@ and vice-versa:
 
 ## Dual numbers
 
-* `CliffordAlgebraDualNumber.equiv`: `R[ε]` is is equivalent as an `R`-algebra to a clifford
+* `CliffordAlgebraDualNumber.equiv`: `R[ε]` is equivalent as an `R`-algebra to a clifford
   algebra over `R` where `Q = 0`.
 
 -/
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2021 Eric Wieser. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.clifford_algebra.equivs
-! leanprover-community/mathlib commit cf7a7252c1989efe5800e0b3cdfeb4228ac6b40e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.DualNumber
 import Mathlib.Algebra.QuaternionBasis
@@ -15,6 +10,8 @@ import Mathlib.LinearAlgebra.CliffordAlgebra.Conjugation
 import Mathlib.LinearAlgebra.CliffordAlgebra.Star
 import Mathlib.LinearAlgebra.QuadraticForm.Prod
 
+#align_import linear_algebra.clifford_algebra.equivs from "leanprover-community/mathlib"@"cf7a7252c1989efe5800e0b3cdfeb4228ac6b40e"
+
 /-!
 # Other constructions isomorphic to Clifford Algebras
 
feat: port LinearAlgebra.CliffordAlgebra.Equivs (#5443)

Dependencies 12 + 769

770 files ported (98.5%)
335206 lines ported (98.4%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file