Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions QuantumInfo/Finite/GeometricPhase/BargmannInvariant.lean
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ geodesic triangle in projective Hilbert space.
* `bargmannPhaseThree_degenerate`: identical states give phase `= 0`
* `bargmannInvariantThree_reverse`: reversing conjugates `Δ₃`
* `bargmannPhaseThree_reverse`: reversing negates the phase (mod 2π)
* `bargmannInvariantThree_cyclic`: cyclic permutation preserves `Δ₃`
* `bargmannPhaseThree_cyclic`: cyclic permutation preserves the phase

## References
* [V. Bargmann, *Note on Wigner's theorem on symmetry operations*,
Expand All @@ -50,20 +52,23 @@ def bargmannPhaseThree (ψ₁ ψ₂ ψ₃ : Ket d) : ℝ :=

/-! ## Degenerate triangles -/

omit [DecidableEq d] in
/-- The Bargmann invariant of three identical states is 1. -/
@[simp]
lemma bargmannInvariantThree_degenerate (ψ : Ket d) :
bargmannInvariantThree ψ ψ ψ = 1 := by
unfold bargmannInvariantThree
simp [Braket.dot_self_eq_one]

omit [DecidableEq d] in
/-- The geometric phase of three identical states is 0. -/
lemma bargmannPhaseThree_degenerate (ψ : Ket d) :
bargmannPhaseThree ψ ψ ψ = 0 := by
unfold bargmannPhaseThree; simp [Complex.arg_one]

/-! ## Conjugacy -/

omit [DecidableEq d] in
/-- Reversing the cyclic order conjugates the invariant. -/
lemma bargmannInvariantThree_reverse (ψ₁ ψ₂ ψ₃ : Ket d) :
bargmannInvariantThree ψ₃ ψ₂ ψ₁ = starRingEnd ℂ (bargmannInvariantThree ψ₁ ψ₂ ψ₃) := by
Expand All @@ -73,10 +78,25 @@ lemma bargmannInvariantThree_reverse (ψ₁ ψ₂ ψ₃ : Ket d) :
← map_mul, ← map_mul]
congr 1; ring

omit [DecidableEq d] in
/-- Reversing the cyclic order negates the geometric phase (mod 2π). -/
lemma bargmannPhaseThree_reverse (ψ₁ ψ₂ ψ₃ : Ket d)
(h : bargmannInvariantThree ψ₁ ψ₂ ψ₃ ≠ 0) :
lemma bargmannPhaseThree_reverse (ψ₁ ψ₂ ψ₃ : Ket d) :
(bargmannPhaseThree ψ₃ ψ₂ ψ₁ : Real.Angle) =
-(bargmannPhaseThree ψ₁ ψ₂ ψ₃ : Real.Angle) := by
unfold bargmannPhaseThree; rw [bargmannInvariantThree_reverse]
exact Complex.arg_conj_coe_angle (bargmannInvariantThree ψ₁ ψ₂ ψ₃)

/-! ## Cyclic symmetry -/

omit [DecidableEq d] in
/-- Cyclic permutation of the three states preserves the Bargmann invariant. -/
lemma bargmannInvariantThree_cyclic (ψ₁ ψ₂ ψ₃ : Ket d) :
bargmannInvariantThree ψ₂ ψ₃ ψ₁ = bargmannInvariantThree ψ₁ ψ₂ ψ₃ := by
unfold bargmannInvariantThree; ring

omit [DecidableEq d] in
/-- Cyclic permutation preserves the geometric phase. -/
lemma bargmannPhaseThree_cyclic (ψ₁ ψ₂ ψ₃ : Ket d) :
bargmannPhaseThree ψ₂ ψ₃ ψ₁ = bargmannPhaseThree ψ₁ ψ₂ ψ₃ := by
unfold bargmannPhaseThree; rw [bargmannInvariantThree_cyclic]

Loading