Skip to content

feat(QuantumInfo): Bargmann invariant and geometric phase#1121

Open
wock9000 wants to merge 3 commits into
leanprover-community:masterfrom
Xylem-Group:geometric-phase
Open

feat(QuantumInfo): Bargmann invariant and geometric phase#1121
wock9000 wants to merge 3 commits into
leanprover-community:masterfrom
Xylem-Group:geometric-phase

Conversation

@wock9000
Copy link
Copy Markdown

Summary

Adds QuantumInfo/Finite/GeometricPhase/BargmannInvariant.lean (88 lines, zero sorry) with the 3-vertex Bargmann invariant and Pancharatnam-Berry geometric phase for Ket d.

Definitions

  • bargmannInvariant3: cyclic product ⟨ψ₁|ψ₂⟩·⟨ψ₂|ψ₃⟩·⟨ψ₃|ψ₁⟩
  • bargmannPhase3: geometric phase arg(Δ₃)

Results

  • bargmannInvariant3_degenerate: identical states → Δ₃ = 1
  • bargmannPhase3_degenerate: identical states → phase = 0
  • dot_swap_conj: ⟨ψ₂|ψ₁⟩ = conj(⟨ψ₁|ψ₂⟩)
  • bargmannInvariant3_reverse: reversing conjugates Δ₃
  • bargmannPhase3_reverse: reversing negates the phase (mod 2π)

Builds on Braket.lean and its Ket/dot infrastructure. All proofs use only standard axioms.

This is the first PR of a planned series covering Pancharatnam's theorem (solid angle), polygon fan triangulation, convergence analysis, and N-level generalization. Discussed in #Physlib on Zulip.

Notes

  • Placement at QuantumInfo/Finite/GeometricPhase/ per discussion with @jstoobysmith — happy to relocate if the file system reorganization proceeds first
  • Follows review guidelines: under 100 lines, single concept, lemma not theorem

🤖 Generated with Claude Code + Aristotle

wock9000 and others added 2 commits May 22, 2026 17:19
Add `QuantumInfo/Finite/GeometricPhase/BargmannInvariant.lean` with:
- `bargmannInvariant3`: 3-vertex Bargmann invariant ⟨ψ₁|ψ₂⟩·⟨ψ₂|ψ₃⟩·⟨ψ₃|ψ₁⟩
- `bargmannPhase3`: geometric phase arg(Δ₃)
- `bargmannInvariant3_degenerate`: identical states → Δ₃ = 1 (proved)
- `bargmannPhase3_degenerate`: identical states → phase = 0 (proved)
- `dot_swap_conj`: ⟨ψ₂|ψ₁⟩ = conj(⟨ψ₁|ψ₂⟩) (sorry — Physlib dot API)
- `bargmannInvariant3_reverse`: reversal conjugates (sorry — depends on above)
- `bargmannPhase3_reverse`: reversal negates phase (proved given above)

86 lines. 2 sorry in conjugacy proofs (navigating Physlib's dot/Bra API).

Refs: Bargmann 1964, Pancharatnam 1956.
BargmannInvariant.lean (88 lines, zero sorry):
- bargmannInvariant3: 3-vertex Bargmann invariant
- bargmannPhase3: geometric phase arg(Δ₃)
- bargmannInvariant3_degenerate: identical states → 1
- bargmannPhase3_degenerate: identical states → 0
- dot_swap_conj: ⟨ψ₂|ψ₁⟩ = conj(⟨ψ₁|ψ₂⟩) (via simp + ac_rfl)
- bargmannInvariant3_reverse: reversal conjugates (via conv + map_mul)
- bargmannPhase3_reverse: reversal negates phase (mod 2π)

Builds against Physlib v4.29.1 with only standard axioms.

Co-Authored-By: Aristotle (harmonic.fun) <noreply@harmonic.fun>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/-
Copyright (c) 2026 Xylem Group. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Claude (Anthropic), Aristotle (Harmonic)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we put real people as the authors. The authors are really "who should I contact if I want to know more about this file".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

Comment on lines +29 to +32
* V. Bargmann, "Note on Wigner's theorem on symmetry operations",
J. Math. Phys. 5, 862 (1964)
* S. Pancharatnam, "Generalized theory of interference, and its
applications", Proc. Indian Acad. Sci. A 44, 247 (1956)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If these are AI generated, can we make sure that they are correct.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified both against the originals:

  • Bargmann 1964: "Note on Wigner's theorem on symmetry operations", J. Math. Phys. 5, 862–868. This is where the cyclic product of inner products (Bargmann invariant) is introduced
  • Pancharatnam 1956: "Generalized theory of interference, and its applications", Proc. Indian Acad. Sci. A 44, 247–262. The original geometric phase paper, predating Berry by 28 years

/-- The 3-vertex Bargmann invariant: `⟨ψ₁|ψ₂⟩ · ⟨ψ₂|ψ₃⟩ · ⟨ψ₃|ψ₁⟩`.
This is a gauge-invariant complex number whose argument is the
geometric phase of the geodesic triangle. -/
def bargmannInvariant3 (ψ₁ ψ₂ ψ₃ : Ket d) : ℂ :=
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe it is best to write 3 out explicitly in the names.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

renamed to bargmannInvariantThree, bargmannPhaseThree, etc. throughout

/-! ## Conjugacy -/

/-- Swapping the arguments conjugates the overlap: `⟨ψ₂|ψ₁⟩ = conj(⟨ψ₁|ψ₂⟩)`. -/
lemma dot_swap_conj (ψ₁ ψ₂ : Ket d) :
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hopefully this already exists, if it doesn't it should go in the Braket file.

Copy link
Copy Markdown
Author

@wock9000 wock9000 May 23, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

verified — it doesn't exist in Braket.lean currently. Added a TODO comment noting it should be moved there. Happy to make that a separate PR to Braket.lean if that's preferable

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you be able to move it in this pr

- Authors: Anand Nambakam (contactable human)
- Renamed bargmannInvariant3 → bargmannInvariantThree throughout
- Verified references: Bargmann 1964 (J. Math. Phys. 5, 862–868),
  Pancharatnam 1956 (Proc. Indian Acad. Sci. A 44, 247–262)
- Added TODO on dot_swap_conj noting it should move to Braket.lean
@wock9000
Copy link
Copy Markdown
Author

Thanks for the review! All four points addressed in the latest push:

  1. Authors: Updated to Anand Nambakam (real, contactable).

  2. References: Verified both against the originals:

    • Bargmann 1964: "Note on Wigner's theorem on symmetry operations", J. Math. Phys. 5, 862–868. This is where the cyclic product of inner products (Bargmann invariant) is introduced.
    • Pancharatnam 1956: "Generalized theory of interference, and its applications", Proc. Indian Acad. Sci. A 44, 247–262. The original geometric phase paper, predating Berry by 28 years.
  3. Naming: Renamed to bargmannInvariantThree, bargmannPhaseThree, etc. throughout.

  4. dot_swap_conj: Checked — it doesn't exist in Braket.lean currently. Added a TODO comment noting it should be moved there. Happy to make that a separate PR to Braket.lean if you'd prefer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants