Skip to content

Commit d3a6c96

Browse files
LionSRtexra-ai
andauthored
refactor(Channel): share positive semidefinite closedness
Co-authored-by: Sirui Lu <texra-ai@outlook.com>
1 parent 82ea436 commit d3a6c96

2 files changed

Lines changed: 18 additions & 36 deletions

File tree

TNLean/Channel/Basic.lean

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ Chapter 6 of Wolf's lecture notes.
2828
* `IsCPMap.isPositiveMap`: completely positive maps are positive
2929
* `IsChannel`: completely positive + trace-preserving (CPTP)
3030
* `IsPositiveMap.map_isHermitian`: positive maps preserve Hermiticity
31+
* `matrix_isClosed_posSemidef`: the positive semidefinite cone is closed
3132
* `densityMatrices_isCompact`: the set of density matrices is compact
3233
* `densityMatrices_isConvex`: the set of density matrices is convex
3334
* `IsChannel.map_densityMatrices`: channels map density matrices to density matrices
@@ -142,8 +143,8 @@ def densityMatrices (D : ℕ) : Set (Matrix (Fin D) (Fin D) ℂ) :=
142143
ρ ∈ densityMatrices D ↔ ρ.PosSemidef ∧ trace ρ = 1 := Iff.rfl
143144

144145
/-- The quadratic form `X ↦ star v ⬝ᵥ X.mulVec v` is continuous. -/
145-
private lemma continuous_quadraticForm (v : Fin D → ℂ) :
146-
Continuous (fun X : Matrix (Fin D) (Fin D) ℂ => star v ⬝ᵥ X.mulVec v) :=
146+
private lemma continuous_quadraticForm {m : Type*} [Fintype m] (v : m → ℂ) :
147+
Continuous (fun X : Matrix m m ℂ => star v ⬝ᵥ X.mulVec v) :=
147148
Continuous.dotProduct continuous_const (Continuous.matrix_mulVec continuous_id continuous_const)
148149

149150
/-! ### Auxiliary lemmas for boundedness -/
@@ -235,23 +236,32 @@ theorem posSemidef_trace_bounded_isBounded (c : ℝ) :
235236
pow_le_pow_left₀ (norm_nonneg _) (hentry i j) 2
236237
_ = (↑D * c) ^ 2 := by simp [sum_const]; ring
237238

238-
/-- The PSD cone is closed.
239+
/-- The PSD cone is closed for matrices over any finite index type.
239240
240241
Proof: `PosSemidef X ↔ X.IsHermitian ∧ ∀ v, 0 ≤ star v ⬝ᵥ X.mulVec v`.
241242
- `{X | X.IsHermitian}` is closed (continuous `conjTranspose`).
242243
- Each `{X | 0 ≤ star v ⬝ᵥ X.mulVec v}` is closed (preimage of closed
243244
nonneg cone under continuous quadratic form). -/
244-
theorem isClosed_posSemidef :
245-
IsClosed {X : Matrix (Fin D) (Fin D) ℂ | X.PosSemidef} := by
246-
have : {X : Matrix (Fin D) (Fin D) ℂ | X.PosSemidef}
247-
= {X | X.IsHermitian} ∩ ⋂ (v : Fin D → ℂ), {X | 0 ≤ star v ⬝ᵥ X.mulVec v} := by
248-
ext X; simp only [Set.mem_setOf_eq, Set.mem_inter_iff, Set.mem_iInter,
245+
theorem matrix_isClosed_posSemidef {m : Type*} [Finite m] :
246+
IsClosed {X : Matrix m m ℂ | X.PosSemidef} := by
247+
classical
248+
letI := Fintype.ofFinite m
249+
have : {X : Matrix m m ℂ | X.PosSemidef}
250+
= {X | X.IsHermitian} ∩
251+
⋂ (v : m → ℂ), {X | 0 ≤ star v ⬝ᵥ X.mulVec v} := by
252+
ext X
253+
simp only [Set.mem_setOf_eq, Set.mem_inter_iff, Set.mem_iInter,
249254
Matrix.posSemidef_iff_dotProduct_mulVec]
250255
rw [this]
251256
exact (isClosed_eq continuous_star continuous_id).inter
252257
(isClosed_iInter fun v =>
253258
(isClosed_le continuous_const continuous_id).preimage (continuous_quadraticForm v))
254259

260+
/-- The PSD cone is closed on `Fin D`-indexed matrices. -/
261+
theorem isClosed_posSemidef :
262+
IsClosed {X : Matrix (Fin D) (Fin D) ℂ | X.PosSemidef} :=
263+
matrix_isClosed_posSemidef
264+
255265
/-- The set of density matrices is compact (Heine-Borel).
256266
257267
Closed: intersection of the closed PSD cone and the closed set `{trace = 1}`.

TNLean/Channel/Semigroup/CPClosure.lean

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -177,34 +177,6 @@ theorem Finset.isCPMap_sum
177177

178178
end GenericCPClosure
179179

180-
section PosSemidefiniteClosure
181-
182-
variable {m : Type*}
183-
184-
/-- The quadratic form `X ↦ star v ⬝ᵥ X.mulVec v` is continuous. -/
185-
private lemma continuous_quadraticForm_generic [Fintype m] (v : m → ℂ) :
186-
Continuous (fun X : Matrix m m ℂ => star v ⬝ᵥ X.mulVec v) :=
187-
Continuous.dotProduct continuous_const
188-
(Continuous.matrix_mulVec continuous_id continuous_const)
189-
190-
/-- The PSD cone is closed for matrices over any finite index type. -/
191-
theorem matrix_isClosed_posSemidef [Finite m] :
192-
IsClosed {X : Matrix m m ℂ | X.PosSemidef} := by
193-
classical
194-
letI := Fintype.ofFinite m
195-
have : {X : Matrix m m ℂ | X.PosSemidef}
196-
= {X | X.IsHermitian} ∩
197-
⋂ (v : m → ℂ), {X | 0 ≤ star v ⬝ᵥ X.mulVec v} := by
198-
ext X
199-
simp only [Set.mem_setOf_eq, Set.mem_inter_iff, Set.mem_iInter,
200-
Matrix.posSemidef_iff_dotProduct_mulVec]
201-
rw [this]
202-
exact (isClosed_eq continuous_star continuous_id).inter
203-
(isClosed_iInter fun v =>
204-
(isClosed_le continuous_const continuous_id).preimage (continuous_quadraticForm_generic v))
205-
206-
end PosSemidefiniteClosure
207-
208180
namespace ChoiJamiolkowski
209181

210182
variable {D : ℕ}

0 commit comments

Comments
 (0)