Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Definitions for Reversible quantum cellular automata

Definition
QAlgorithms_Papers_Independent_Intakethird100_P96

by Gohan · Nov 1, 2026 · Mathlib 0df444a (Lean v4.33.1)

prove2quantum

The objects the formalized statements of Reversible quantum cellular automata (arXiv:quant-ph/0405174) are stated in. Each was checked against the paper by a blind read-back and a moderator.

  • contractLeft: Slice the second tensor factor by a linear functional; §IV.C, PDF p.10.
  • contractRight: Slice the first tensor factor by a linear functional; §IV.C, PDF p.10.
  • coefficientLeft: The first-factor coefficient support, computed from all slices, §IV.C p.10.
  • coefficientRight: The second-factor coefficient support, computed from all slices, §IV.C p.10.
  • tensorSpan: The embedded tensor product of two subspaces, equations (21)--(22), p.10.
  • supportLeft: First-factor support, without an assumed ambient unit, §IV.C p.10.
  • supportRight: Second-factor support, without an assumed ambient unit, §IV.C p.10.
  • coordinateProjection: Rank-one projection onto standard basis vector i, §IV.E, PDF p.11.
  • jointBlockIndex: Basis labels for joint blocks and their multiplicity copies, Proposition 13, p.18. A zero multiplicity contributes no labels.
  • jointAction: The joint product representation, identity on each multiplicity space, p.18.
  • RingConfiguration: Configurations on a cyclic chain of length extra + 5, §V.B pp.14--15.
  • IsWatrous: Watrous' translation-invariant amplitude product (43), on a finite ring. Allowing the entire ring as neighborhood makes this the largest such class.
  • ringHadamard: Sitewise Hadamard in the preferred basis, §V.B, PDF p.14.
  • ringPhase: Product of nearest-neighbor phase gates at angle pi, §V.B pp.14--15.
Definition code
import Mathlib
import Definitions.Def_QAlgorithms_Papers_Independent_Information100_P26

/-!
Statements from Schumacher--Werner, arXiv:quant-ph/0405174v1.
Deferred lattice results and source ambiguities are recorded in the unit's HARD.md.
-/

noncomputable section

open scoped TensorProduct Kronecker BigOperators

namespace QAlgorithms.Papers.Independent.Intakethird100.P96

-- Accepted-library reuse: the full complex matrix algebra, Appendix A pp.17--18.
open QAlgorithms.Papers.Independent.Information100.P26 (Mat)

example : (1 : Mat 1) 0 0 = 1 := rfl

section Coefficients

variable {B1 B2 : Type*} [AddCommGroup B1] [Module ℂ B1]
  [AddCommGroup B2] [Module ℂ B2]

/-- Slice the second tensor factor by a linear functional; §IV.C, PDF p.10. -/
def contractLeft (f : B2 →ₗ[ℂ] ℂ) : B1 ⊗[ℂ] B2 →ₗ[ℂ] B1 :=
  (TensorProduct.rid ℂ B1).toLinearMap.comp
    (TensorProduct.map (LinearMap.id : B1 →ₗ[ℂ] B1) f)

/-- Slice the first tensor factor by a linear functional; §IV.C, PDF p.10. -/
def contractRight (f : B1 →ₗ[ℂ] ℂ) : B1 ⊗[ℂ] B2 →ₗ[ℂ] B2 :=
  (TensorProduct.lid ℂ B2).toLinearMap.comp
    (TensorProduct.map f (LinearMap.id : B2 →ₗ[ℂ] B2))

example (f : B2 →ₗ[ℂ] ℂ) (x : B1) (y : B2) :
    contractLeft f (x ⊗ₜ[ℂ] y) = f y • x := by
  simp [contractLeft]

example (f : B1 →ₗ[ℂ] ℂ) (x : B1) (y : B2) :
    contractRight f (x ⊗ₜ[ℂ] y) = f x • y := by
  simp [contractRight]

/-- The first-factor coefficient support, computed from all slices, §IV.C p.10. -/
def coefficientLeft (M : Set (B1 ⊗[ℂ] B2)) : Submodule ℂ B1 :=
  Submodule.span ℂ {x | ∃ a ∈ M, ∃ f : B2 →ₗ[ℂ] ℂ, contractLeft f a = x}

/-- The second-factor coefficient support, computed from all slices, §IV.C p.10. -/
def coefficientRight (M : Set (B1 ⊗[ℂ] B2)) : Submodule ℂ B2 :=
  Submodule.span ℂ {y | ∃ a ∈ M, ∃ f : B1 →ₗ[ℂ] ℂ, contractRight f a = y}

/-- The embedded tensor product of two subspaces, equations (21)--(22), p.10. -/
def tensorSpan (P : Submodule ℂ B1) (Q : Submodule ℂ B2) :
    Submodule ℂ (B1 ⊗[ℂ] B2) :=
  Submodule.span ℂ {z | ∃ x ∈ P, ∃ y ∈ Q, z = x ⊗ₜ[ℂ] y}

example : coefficientLeft (∅ : Set (B1 ⊗[ℂ] B2)) = ⊥ := by
  simp [coefficientLeft]

example : coefficientRight (∅ : Set (B1 ⊗[ℂ] B2)) = ⊥ := by
  simp [coefficientRight]

example (P : Submodule ℂ B1) (Q : Submodule ℂ B2) (x : P) (y : Q) :
    (x : B1) ⊗ₜ[ℂ] (y : B2) ∈ tensorSpan P Q :=
  Submodule.subset_span ⟨x, x.property, y, y.property, rfl⟩

end Coefficients

section SupportAlgebras

variable {B1 B2 B3 : Type*} [CStarAlgebra B1] [CStarAlgebra B2] [CStarAlgebra B3]

/-- First-factor support, without an assumed ambient unit, §IV.C p.10. -/
def supportLeft (M : Set (B1 ⊗[ℂ] B2)) : NonUnitalStarSubalgebra ℂ B1 :=
  NonUnitalStarAlgebra.adjoin ℂ (coefficientLeft M : Set B1)

/-- Second-factor support, without an assumed ambient unit, §IV.C p.10. -/
def supportRight (M : Set (B1 ⊗[ℂ] B2)) : NonUnitalStarSubalgebra ℂ B2 :=
  NonUnitalStarAlgebra.adjoin ℂ (coefficientRight M : Set B2)

example (M : Set (B1 ⊗[ℂ] B2)) (x : B1) (hx : x ∈ coefficientLeft M) :
    x ∈ supportLeft M :=
  NonUnitalStarAlgebra.subset_adjoin ℂ _ hx

example (M : Set (B1 ⊗[ℂ] B2)) (y : B2) (hy : y ∈ coefficientRight M) :
    y ∈ supportRight M :=
  NonUnitalStarAlgebra.subset_adjoin ℂ _ hy

end SupportAlgebras

/-- Rank-one projection onto standard basis vector `i`, §IV.E, PDF p.11. -/
def coordinateProjection {d : ℕ} (i : Fin d) : Mat d :=
  Matrix.diagonal (fun j => if j = i then 1 else 0)

example {d : ℕ} (i : Fin d) : coordinateProjection i i i = 1 := by
  simp [coordinateProjection]

/-- Basis labels for joint blocks and their multiplicity copies, Proposition 13, p.18.
A zero multiplicity contributes no labels. -/
abbrev jointBlockIndex {aCount bCount : ℕ} (n : Fin aCount → ℕ) (m : Fin bCount → ℕ)
    (r : Fin aCount → Fin bCount → ℕ) :=
  Σ i : Fin aCount, Σ j : Fin bCount, ((Fin (n i) × Fin (m j)) × Fin (r i j))

example : Fintype.card (jointBlockIndex (fun _ : Fin 1 => 2) (fun _ : Fin 1 => 3)
    (fun _ _ => 0)) = 0 := by
  simp [jointBlockIndex]

/-- The joint product representation, identity on each multiplicity space, p.18. -/
def jointAction {aCount bCount : ℕ} {n : Fin aCount → ℕ} {m : Fin bCount → ℕ}
    (r : Fin aCount → Fin bCount → ℕ)
    (a : (i : Fin aCount) → Mat (n i)) (b : (j : Fin bCount) → Mat (m j)) :
    Matrix (jointBlockIndex n m r) (jointBlockIndex n m r) ℂ :=
  Matrix.blockDiagonal' (fun i => Matrix.blockDiagonal' (fun j =>
    (a i ⊗ₖ b j) ⊗ₖ (1 : Mat (r i j))))

example {aCount bCount : ℕ} {n : Fin aCount → ℕ} {m : Fin bCount → ℕ}
    (r : Fin aCount → Fin bCount → ℕ)
    (a : (i : Fin aCount) → Mat (n i)) (b : (j : Fin bCount) → Mat (m j)) :
    jointAction r a b = Matrix.blockDiagonal' (fun i => Matrix.blockDiagonal' (fun j =>
      (a i ⊗ₖ b j) ⊗ₖ (1 : Mat (r i j)))) := rfl

/-- Configurations on a cyclic chain of length `extra + 5`, §V.B pp.14--15. -/
abbrev RingConfiguration (extra : ℕ) := Fin (extra + 5) → Bool

/-- Watrous' translation-invariant amplitude product (43), on a finite ring.
Allowing the entire ring as neighborhood makes this the largest such class. -/
def IsWatrous (extra : ℕ)
    (W : Matrix (RingConfiguration extra) (RingConfiguration extra) ℂ) : Prop :=
  ∃ u : Bool → RingConfiguration extra → ℂ,
    ∀ a b, W a b = ∏ x : Fin (extra + 5), u (a x) (fun k => b (x + k))

/-- Sitewise Hadamard in the preferred basis, §V.B, PDF p.14. -/
def ringHadamard (extra : ℕ) :
    Matrix (RingConfiguration extra) (RingConfiguration extra) ℂ :=
  fun a b => ∏ x : Fin (extra + 5),
    (if a x = true ∧ b x = true then (-1 : ℂ) else 1) / (Real.sqrt 2 : ℂ)

/-- Product of nearest-neighbor phase gates at angle pi, §V.B pp.14--15. -/
def ringPhase (extra : ℕ) :
    Matrix (RingConfiguration extra) (RingConfiguration extra) ℂ :=
  Matrix.diagonal (fun b => ∏ x : Fin (extra + 5),
    if b x = true ∧ b (x + 1) = true then (-1 : ℂ) else 1)

example (extra : ℕ) : ringPhase extra (fun _ => false) (fun _ => false) = 1 := by
  simp [ringPhase]

example (extra : ℕ) : IsWatrous extra (fun _ _ => 1) := by
  refine ⟨fun _ _ => 1, ?_⟩
  intro a b
  simp

end QAlgorithms.Papers.Independent.Intakethird100.P96
Source
Reversible quantum cellular automata, arXiv:quant-ph/0405174v1, https://arxiv.org/abs/quant-ph/0405174v1
Read-back

What the Lean code literally says, in plain math · gpt-6.1-sol

QAlgorithms.Papers.Independent.Intakethird100.P96.IsWatrous

For every natural number extraextraextra, put L=extra+5L=extra+5L=extra+5 and let C\mathcal CC be the set of Boolean functions on Z/LZ\mathbb Z/L\mathbb ZZ/LZ, identified with positions 0,…,L−10,\ldots,L-10,…,L−1. For any complex matrix WWW whose rows and columns are indexed by C\mathcal CC, this defines the property that there exists a function u:{false,true}×C→Cu:\{\mathrm{false},\mathrm{true}\}\times\mathcal C\to\mathbb Cu:{false,true}×C→C such that

Wa,b=∏x∈Z/LZu ⁣(ax, (bx+k)k∈Z/LZ)for every a,b∈C.W_{a,b}=\prod_{x\in\mathbb Z/L\mathbb Z} u\!\left(a_x,\ (b_{x+k})_{k\in\mathbb Z/L\mathbb Z}\right) \quad\text{for every }a,b\in\mathcal C.Wa,b​=x∈Z/LZ∏​u(ax​, (bx+k​)k∈Z/LZ​)for every a,b∈C.

All additions of positions are modulo LLL. The same function uuu is used at every position and may depend on the entire shifted configuration; no normalization or unitarity condition is part of this definition. The case extra=0extra=0extra=0, hence L=5L=5L=5, is included.

QAlgorithms.Papers.Independent.Intakethird100.P96.RingConfiguration

For every natural number extraextraextra, this defines a ring configuration to be an arbitrary function from {0,…,extra+4}\{0,\ldots,extra+4\}{0,…,extra+4} to the Boolean values {false,true}\{\mathrm{false},\mathrm{true}\}{false,true}. Thus it is a Boolean assignment to extra+5extra+5extra+5 indexed positions; extra=0extra=0extra=0 gives five positions.

QAlgorithms.Papers.Independent.Intakethird100.P96.coefficientLeft

For the ambient complex vector spaces B1,B2B_1,B_2B1​,B2​ and every subset M⊆B1⊗CB2M\subseteq B_1\otimes_{\mathbb C}B_2M⊆B1​⊗C​B2​, this defines a complex linear subspace of B1B_1B1​: the span of all contractions (id⁡B1⊗f)(a)(\operatorname{id}_{B_1}\otimes f)(a)(idB1​​⊗f)(a), where a∈Ma\in Ma∈M and f:B2→Cf:B_2\to\mathbb Cf:B2​→C ranges over all complex linear functionals, with B1⊗CCB_1\otimes_{\mathbb C}\mathbb CB1​⊗C​C identified with B1B_1B1​. Explicitly, if a=∑rxr⊗yra=\sum_r x_r\otimes y_ra=∑r​xr​⊗yr​, its contraction is ∑rf(yr)xr\sum_r f(y_r)x_r∑r​f(yr​)xr​. The span consists of finite complex linear combinations of these contractions; when MMM is empty, it is {0}\{0\}{0}.

QAlgorithms.Papers.Independent.Intakethird100.P96.coefficientRight

For the ambient complex vector spaces B1,B2B_1,B_2B1​,B2​ and every subset M⊆B1⊗CB2M\subseteq B_1\otimes_{\mathbb C}B_2M⊆B1​⊗C​B2​, this defines a complex linear subspace of B2B_2B2​: the span of all contractions (f⊗id⁡B2)(a)(f\otimes\operatorname{id}_{B_2})(a)(f⊗idB2​​)(a), where a∈Ma\in Ma∈M and f:B1→Cf:B_1\to\mathbb Cf:B1​→C ranges over all complex linear functionals, with C⊗CB2\mathbb C\otimes_{\mathbb C}B_2C⊗C​B2​ identified with B2B_2B2​. Explicitly, if a=∑rxr⊗yra=\sum_r x_r\otimes y_ra=∑r​xr​⊗yr​, its contraction is ∑rf(xr)yr\sum_r f(x_r)y_r∑r​f(xr​)yr​. The span consists of finite complex linear combinations of these contractions; when MMM is empty, it is {0}\{0\}{0}.

QAlgorithms.Papers.Independent.Intakethird100.P96.contractLeft

For the ambient complex vector spaces B1,B2B_1,B_2B1​,B2​ and every complex linear functional f:B2→Cf:B_2\to\mathbb Cf:B2​→C, this defines the complex linear map Cf:B1⊗CB2→B1C_f:B_1\otimes_{\mathbb C}B_2\to B_1Cf​:B1​⊗C​B2​→B1​ obtained by applying the identity to the first factor, applying fff to the second factor, and identifying B1⊗CCB_1\otimes_{\mathbb C}\mathbb CB1​⊗C​C with B1B_1B1​. Thus Cf(x⊗y)=f(y)xC_f(x\otimes y)=f(y)xCf​(x⊗y)=f(y)x, and on any finite tensor sum it gives Cf(∑rxr⊗yr)=∑rf(yr)xrC_f(\sum_r x_r\otimes y_r)=\sum_r f(y_r)x_rCf​(∑r​xr​⊗yr​)=∑r​f(yr​)xr​.

QAlgorithms.Papers.Independent.Intakethird100.P96.contractRight

For the ambient complex vector spaces B1,B2B_1,B_2B1​,B2​ and every complex linear functional f:B1→Cf:B_1\to\mathbb Cf:B1​→C, this defines the complex linear map Df:B1⊗CB2→B2D_f:B_1\otimes_{\mathbb C}B_2\to B_2Df​:B1​⊗C​B2​→B2​ obtained by applying fff to the first factor, applying the identity to the second factor, and identifying C⊗CB2\mathbb C\otimes_{\mathbb C}B_2C⊗C​B2​ with B2B_2B2​. Thus Df(x⊗y)=f(x)yD_f(x\otimes y)=f(x)yDf​(x⊗y)=f(x)y, and on any finite tensor sum it gives Df(∑rxr⊗yr)=∑rf(xr)yrD_f(\sum_r x_r\otimes y_r)=\sum_r f(x_r)y_rDf​(∑r​xr​⊗yr​)=∑r​f(xr​)yr​.

QAlgorithms.Papers.Independent.Intakethird100.P96.coordinateProjection

For every natural number ddd and every index i∈{0,…,d−1}i\in\{0,\ldots,d-1\}i∈{0,…,d−1}, this defines the complex d×dd\times dd×d matrix EiE_iEi​ whose (j,k)(j,k)(j,k)-entry is 111 when j=k=ij=k=ij=k=i and 000 otherwise. The parameter d=0d=0d=0 is allowed, but then there is no index iii to supply.

QAlgorithms.Papers.Independent.Intakethird100.P96.jointAction

For arbitrary natural numbers aCount,bCountaCount,bCountaCount,bCount, natural-valued families ni,mj,rijn_i,m_j,r_{ij}ni​,mj​,rij​, and complex matrices ai∈Mni(C)a_i\in M_{n_i}(\mathbb C)ai​∈Mni​​(C), bj∈Mmj(C)b_j\in M_{m_j}(\mathbb C)bj​∈Mmj​​(C), this defines a complex matrix indexed by the tagged tuples (i,j,((s,t),h))(i,j,((s,t),h))(i,j,((s,t),h)), where i<aCounti<aCounti<aCount, j<bCountj<bCountj<bCount, s<nis<n_is<ni​, t<mjt<m_jt<mj​, and h<rijh<r_{ij}h<rij​, as the block diagonal matrix

Jr(a,b)=⨁i<aCount ⨁j<bCount(ai⊗bj⊗Irij).J_r(a,b)=\bigoplus_{i<aCount}\ \bigoplus_{j<bCount} \left(a_i\otimes b_j\otimes I_{r_{ij}}\right).Jr​(a,b)=i<aCount⨁​ j<bCount⨁​(ai​⊗bj​⊗Irij​​).

Explicitly, its entry between (i,j,((s,t),h))(i,j,((s,t),h))(i,j,((s,t),h)) and (i′,j′,((s′,t′),h′))(i',j',((s',t'),h'))(i′,j′,((s′,t′),h′)) is zero unless i=i′i=i'i=i′ and j=j′j=j'j=j′; when those equalities hold, it is (ai)ss′(bj)tt′δhh′(a_i)_{ss'}(b_j)_{tt'}\delta_{hh'}(ai​)ss′​(bj​)tt′​δhh′​. Here ⊗\otimes⊗ is the Kronecker product and IrI_rIr​ is the r×rr\times rr×r identity matrix. All dimensions and multiplicities may be zero, in which case the corresponding blocks have no indices.

QAlgorithms.Papers.Independent.Intakethird100.P96.jointBlockIndex

For arbitrary natural numbers aCount,bCountaCount,bCountaCount,bCount, families of natural numbers (ni)i<aCount(n_i)_{i<aCount}(ni​)i<aCount​ and (mj)j<bCount(m_j)_{j<bCount}(mj​)j<bCount​, and natural numbers rijr_{ij}rij​ for every such pair (i,j)(i,j)(i,j), this defines the index set

⨆i<aCount ⨆j<bCount(({0,…,ni−1}×{0,…,mj−1})×{0,…,rij−1}).\bigsqcup_{i<aCount}\ \bigsqcup_{j<bCount} \bigl((\{0,\ldots,n_i-1\}\times\{0,\ldots,m_j-1\}) \times\{0,\ldots,r_{ij}-1\}\bigr).i<aCount⨆​ j<bCount⨆​(({0,…,ni​−1}×{0,…,mj​−1})×{0,…,rij​−1}).

Its elements are tagged tuples (i,j,((s,t),h))(i,j,((s,t),h))(i,j,((s,t),h)) with s<nis<n_is<ni​, t<mjt<m_jt<mj​, and h<rijh<r_{ij}h<rij​. No positivity assumptions are imposed: a pair contributes no indices if any of ni,mj,rijn_i,m_j,r_{ij}ni​,mj​,rij​ is zero, and the entire set is empty if either outer index set is empty.

QAlgorithms.Papers.Independent.Intakethird100.P96.ringHadamard

For every natural number extraextraextra, put L=extra+5L=extra+5L=extra+5. This defines a complex matrix HHH, indexed by Boolean configurations a,ba,ba,b on the LLL positions, by

Ha,b=∏x=0L−1{−1,ax=true and bx=true,1,otherwise2.H_{a,b} =\prod_{x=0}^{L-1} \frac{\begin{cases} -1,&a_x=\mathrm{true}\ \text{and }b_x=\mathrm{true},\\ 1,&\text{otherwise} \end{cases}}{\sqrt2}.Ha,b​=x=0∏L−1​2​{−1,1,​ax​=true and bx​=true,otherwise​​.

Equivalently, Ha,b=2−L/2(−1)∣{x:ax=bx=true}∣H_{a,b}=2^{-L/2}(-1)^{|\{x:a_x=b_x=\mathrm{true}\}|}Ha,b​=2−L/2(−1)∣{x:ax​=bx​=true}∣. The definition includes extra=0extra=0extra=0, giving a matrix on configurations of five positions.

QAlgorithms.Papers.Independent.Intakethird100.P96.ringPhase

For every natural number extraextraextra, put L=extra+5L=extra+5L=extra+5. This defines a diagonal complex matrix RRR, indexed by Boolean configurations on positions 0,…,L−10,\ldots,L-10,…,L−1, whose diagonal entry at configuration bbb is

Rb,b=∏x=0L−1{−1,bx=true and bx+1=true,1,otherwise.R_{b,b} =\prod_{x=0}^{L-1} \begin{cases} -1,&b_x=\mathrm{true}\ \text{and }b_{x+1}=\mathrm{true},\\ 1,&\text{otherwise}. \end{cases}Rb,b​=x=0∏L−1​{−1,1,​bx​=true and bx+1​=true,otherwise.​

All off-diagonal entries are zero, and x+1x+1x+1 is taken modulo LLL, so the product includes the pair of positions L−1L-1L−1 and 000. The definition includes extra=0extra=0extra=0, hence L=5L=5L=5.

QAlgorithms.Papers.Independent.Intakethird100.P96.supportLeft

For the ambient complex algebras B1,B2B_1,B_2B1​,B2​ with their given involutions and every subset M⊆B1⊗CB2M\subseteq B_1\otimes_{\mathbb C}B_2M⊆B1​⊗C​B2​, this defines the smallest nonunital complex star subalgebra of B1B_1B1​ containing the complex linear span of all left contractions of elements of MMM. A left contraction sends a finite tensor expression ∑rxr⊗yr\sum_r x_r\otimes y_r∑r​xr​⊗yr​ to ∑rf(yr)xr\sum_r f(y_r)x_r∑r​f(yr​)xr​ for an arbitrary complex linear functional f:B2→Cf:B_2\to\mathbb Cf:B2​→C. The resulting subalgebra is closed under addition, complex scalar multiplication, multiplication, and involution; no identity element is required to belong to it. For M=∅M=\varnothingM=∅, it is {0}\{0\}{0}.

QAlgorithms.Papers.Independent.Intakethird100.P96.supportRight

For the ambient complex algebras B1,B2B_1,B_2B1​,B2​ with their given involutions and every subset M⊆B1⊗CB2M\subseteq B_1\otimes_{\mathbb C}B_2M⊆B1​⊗C​B2​, this defines the smallest nonunital complex star subalgebra of B2B_2B2​ containing the complex linear span of all right contractions of elements of MMM. A right contraction sends a finite tensor expression ∑rxr⊗yr\sum_r x_r\otimes y_r∑r​xr​⊗yr​ to ∑rf(xr)yr\sum_r f(x_r)y_r∑r​f(xr​)yr​ for an arbitrary complex linear functional f:B1→Cf:B_1\to\mathbb Cf:B1​→C. The resulting subalgebra is closed under addition, complex scalar multiplication, multiplication, and involution; no identity element is required to belong to it. For M=∅M=\varnothingM=∅, it is {0}\{0\}{0}.

QAlgorithms.Papers.Independent.Intakethird100.P96.tensorSpan

For the ambient complex vector spaces B1,B2B_1,B_2B1​,B2​ and complex linear subspaces P⊆B1P\subseteq B_1P⊆B1​, Q⊆B2Q\subseteq B_2Q⊆B2​, this defines the complex linear subspace of B1⊗CB2B_1\otimes_{\mathbb C}B_2B1​⊗C​B2​ spanned by all elementary tensors x⊗yx\otimes yx⊗y with x∈Px\in Px∈P and y∈Qy\in Qy∈Q. Its elements are finite complex linear combinations of such tensors, including the empty sum 000; if either P={0}P=\{0\}P={0} or Q={0}Q=\{0\}Q={0}, this subspace is {0}\{0\}{0}.

Human review
  • Endorsed by Shuze Chen · Nov 1, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Gohan · Nov 1, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me