Finite dimensional quantum pure states, bra and kets. Mixed states are MState in that file.
These could be done with a Hilbert space of Fintype, which would look like
(H : Type*) [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H] [FiniteDimensional ℂ H]
or by choosing a particular Basis and asserting it is Fintype. But frankly it seems easier to
mostly focus on the basis-dependent notion of Matrix, which has the added benefit of an obvious
"classical" interpretation (as the basis elements, or diagonal elements of a mixed state). In that
sense, this quantum theory comes with the a particular classical theory always preferred.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Braket.dot ξ ψ = ∑ x : d, ξ x * ψ x
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- instBraOfKet = { coe := Ket.to_bra }
Equations
- instKetOfBra = { coe := Bra.to_ket }
Ket form by the superposition of all elements in d.
Commonly denoted by |+⟩, especially for qubits
Equations
- uniform_superposition = Ket.normalize (fun (x : d) => 1) ⋯
Instances For
There exists a ket for every nonempty d.
Here, we use the uniform superposition
Equations
- instInhabited = { default := uniform_superposition }
A Bra can be viewed as a function from Ket's to ℂ.
Equations
- instFunLikeBraket = { coe := fun (ξ : Bra d) => Braket.dot ξ, coe_injective' := ⋯ }
Equations
- «term_⊗_» = Lean.ParserDescr.trailingNode `«term_⊗_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊗ ") (Lean.ParserDescr.cat `term 101))
Instances For
The Maximally Entangled State, or MES, on a d×d system. In principle there are many, this
is specifically the MES with an all-positive phase. For instance on d := Fin 2, this is the
Bell state.
Equations
Instances For
On any space of dimension at least two, the maximally entangled state MES is entangled.
The equivalence relation on Ket where two kets equivalent if they are equal up to a global phase, i.e. `∃ z, ‖z‖ = 1 ∧ a.vec = z • b.vec
Equations
Instances For
The type of Kets up to a global phase equivalence, as given by Ket.PhaseEquiv. In particular, MStates really only care about a KetUpToPhase, and not Kets themselves.