Quantum theory and operations specific to qubits.
- Standard named (single-qubit) gates: Z, X, Y, H, S, T
- Controlled versions of gates
- Completeness of the PPT test: a state is separable iff it is PPT.
- Fidelity for qubits:
F(ρ,σ) = 2√(ρ.det * σ.det). - The singlet/triplet split.
@[simp]
theorem
Matrix.kron_unitary
{α : Type u_2}
{β : Type u_3}
[DecidableEq α]
[Fintype α]
[DecidableEq β]
[Fintype β]
(a : ↥𝐔[α])
(b : ↥𝐔[β])
:
def
Matrix.unitary_kron
{α : Type u_2}
{β : Type u_3}
[DecidableEq α]
[Fintype α]
[DecidableEq β]
[Fintype β]
(a : ↥𝐔[α])
(b : ↥𝐔[β])
:
Equations
- Matrix.unitary_kron a b = ⟨Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) ↑a ↑b, ⋯⟩
Instances For
Equations
- Matrix.«term_⊗ᵤ_» = Lean.ParserDescr.trailingNode `Matrix.«term_⊗ᵤ_» 1022 60 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊗ᵤ ") (Lean.ParserDescr.cat `term 60))
Instances For
@[simp]
theorem
Matrix.unitary_kron_one_one
{α : Type u_2}
{β : Type u_3}
[DecidableEq α]
[Fintype α]
[DecidableEq β]
[Fintype β]
:
Proves goals equating small matrices by expanding out products and simpliying standard Real arithmetic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a unitary U on some Hilbert space k, we have the controllized version that acts on Fin 2 ⊗ k
where U is conditionally applied if the first qubit is 1.
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
@[simp]
theorem
Qubit.controllize_apply_zero_zero
{k : Type u_1}
[Fintype k]
[DecidableEq k]
(g : ↥𝐔[k])
(j₁ j₂ : k)
:
@[simp]
theorem
Qubit.controllize_apply_zero_one
{k : Type u_1}
[Fintype k]
[DecidableEq k]
(g : ↥𝐔[k])
(j₁ j₂ : k)
:
@[simp]
theorem
Qubit.controllize_apply_one_zero
{k : Type u_1}
[Fintype k]
[DecidableEq k]
(g : ↥𝐔[k])
(j₁ j₂ : k)
:
@[simp]
theorem
Qubit.controllize_apply_one_one
{k : Type u_1}
[Fintype k]
[DecidableEq k]
(g : ↥𝐔[k])
(j₁ j₂ : k)
:
@[simp]
@[simp]
@[simp]
@[simp]
theorem
Qubit.X_controllize_X
{k : Type u_1}
[Fintype k]
[DecidableEq k]
(g : ↥𝐔[k])
:
Matrix.unitary_kron X 1 * controllize g * Matrix.unitary_kron X 1 = Matrix.unitary_kron 1 g * controllize g⁻¹