@@ -5,7 +5,7 @@ Authors: Davood Tehrani, David Gross
55-/
66module
77
8- public import Mathlib.LinearAlgebra.StdBasis
8+ public import Mathlib.Analysis.InnerProductSpace.PiL2
99public import QCLib.Mathlib.LinearAlgebra.PiOuterProduct
1010public import QCLib.LinearAlgebra.UnitaryGroup.Basic
1111
@@ -33,14 +33,18 @@ This file also collects `•` application
3333
3434 -/
3535
36- @[expose] public section
36+ public section
3737
38- noncomputable def BasisVector {ι : Type *} [Finite ι] (i : ι) : (ι → ℂ) :=
39- Pi.basisFun ℂ ι i
38+ open EuclideanSpace
39+
40+ variable {ι : Type *} [Fintype ι]
41+
42+ noncomputable def BasisVector (i : ι) : (ι → ℂ) :=
43+ basisFun ι ℂ i
4044
4145@[matrixExpand]
42- theorem basisVector_def (ι : Type *) [Finite ι] ( i : ι) :
43- BasisVector i = Pi. basisFun ℂ ι i := by rfl
46+ theorem basisVector_def (i : ι) :
47+ BasisVector i = basisFun ι ℂ i := by rfl
4448
4549-- TBD: scope
4650/-- The computational basis. -/
@@ -60,9 +64,7 @@ theorem Matrix.UnitaryGroup.ext_col {ι : Type*} [Fintype ι] [DecidableEq ι]
6064
6165theorem Matrix.UnitaryGroup.ext_smul_basis {ι : Type *} [Fintype ι] [DecidableEq ι]
6266 {U V : Matrix.unitaryGroup ι ℂ} : (∀ i : ι, ((U • δ[i]) : ι → ℂ) = V • δ[i]) → U = V := by
63- simp only [basisVector_def, Pi.basisFun_apply, Submonoid.smul_def, smul_eq_mulVec, mulVec_single,
64- MulOpposite.op_one, one_smul]
65- exact ext_col
67+ simpa [basisVector_def, Submonoid.smul_def] using ext_col
6668
6769@[simp]
6870theorem Matrix.UnitaryGroup.diagonal_smul_basisVector (ι : Type *) [Fintype ι] [DecidableEq ι]
@@ -75,7 +77,7 @@ theorem Matrix.diagonal_smul_basisVector
7577 {ι : Type *} [Fintype ι] [DecidableEq ι] (d : ι → ℂ) (v : ι) :
7678 Matrix.diagonal d • δ[v] = d v • δ[v] := by
7779 ext i
78- simp [basisVector_def, Pi. basisFun_apply, Pi.single_apply]
80+ simp [basisVector_def, basisFun_apply, Pi.single_apply]
7981
8082theorem Matrix.UnitaryGroup.apply_basis {ι : Type *} [Fintype ι]
8183 [DecidableEq ι] {U : Matrix.unitaryGroup ι ℂ} (v : ι) :
@@ -95,6 +97,6 @@ open scoped PiOuterProduct
9597
9698theorem basisVector_eq_prod {d} {n : ℕ} (k : Fin n → Fin d) : δ[k] = ⨂ i, δ[(k i)] := by
9799 ext
98- simp [basisVector_def, Pi.single_eq_prod]
100+ simp [basisVector_def, ← Pi.single_eq_prod, ← Pi.single_apply ]
99101
100102end Qubits
0 commit comments