Skip to content

Commit e1a9d8f

Browse files
committed
new StdBasis
1 parent c5cf0b2 commit e1a9d8f

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

QCLib/LinearAlgebra/StdBasis.lean

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Authors: Davood Tehrani, David Gross
55
-/
66
module
77

8-
public import Mathlib.LinearAlgebra.StdBasis
8+
public import Mathlib.Analysis.InnerProductSpace.PiL2
99
public import QCLib.Mathlib.LinearAlgebra.PiOuterProduct
1010
public 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

6165
theorem 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]
6870
theorem 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

8082
theorem Matrix.UnitaryGroup.apply_basis {ι : Type*} [Fintype ι]
8183
[DecidableEq ι] {U : Matrix.unitaryGroup ι ℂ} (v : ι) :
@@ -95,6 +97,6 @@ open scoped PiOuterProduct
9597

9698
theorem 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

100102
end Qubits

0 commit comments

Comments
 (0)