Documentation

CsdLean4.CV.CompositeArena

P2: the composite arena — two sectors compose by mode concatenation, and the algebra forcing transports #

Category: CV (continuous variables — composition of sectors at the arena level; eft-pillars-plan.md P2).

Glossary: https://glossary.constraintsurfacedynamics.com/no-signalling/ and https://glossary.constraintsurfacedynamics.com/bell-not-join/ Plain-language, CSD-role and formal statements of no-signalling and the Bell-is-not-a-join theorem, with this module as the Lean anchor. Kept symmetric by scripts/check-glossary.sh.

The algebra half of composition is landed: compositeAlgReconstruction (SigmaLayer/TensorReconstruction.lean) forces any composite carrying commuting, generating local matrix algebras to BE the tensor product. P2 asked for the arena-side analogue: what the composite of two ontic sectors is, and whether that forcing transports. Scoped first in specs/composite-arena-plan.md.

What the composite is: mode concatenation. The composite of a K₁-mode sector and a K₂-mode sector is the (K₁+K₂)-mode sector — an arena the corpus already has, not a new species. configSplit splits a joint configuration into its two mode blocks, and everything is read through it:

⚠️ Honest scope: homogeneous field sectors — both factors share the level count N and compose mode-disjointly, the field-native case the CV chain and P1's arenas are built from. Heterogeneous composites (N₁ ≠ N₂, non-field sectors) are not claimed here; they need the arena API generalised over its index type (rule-of-two note: generalise ArenaBridge when next touched). The fibre side of the composite is the product of record media, with per-sector strokes covered by P1's generic machinery through leftOp_supportedOn; and composite mixed-state theory (reduced states of entangled rays) is CV-26's coarse-graining territory, not this pillar's.

References #

specs/composite-arena-plan.md (scoping); specs/eft-pillars-plan.md (P2); specs/future-work.md; SigmaLayer/TensorReconstruction.lean (compositeAlgReconstruction, consumed); SigmaLayer/TensorGeneration.lean (single_eq_smul; the Fin-indexed generation this re-lands arena-natively); CV/ArenaBridge.lean (arenaDM, arenaObs, arenaKick, the P1 statics); CV/ModeLocality.lean (SupportedOn).

Splitting a joint configuration into its mode blocks #

def CSD.CV.configSplit {K₁ K₂ N : } :
FieldConfig (K₁ + K₂) N FieldConfig K₁ N × FieldConfig K₂ N

The mode split: a (K₁+K₂)-mode configuration is a pair of a K₁-mode and a K₂-mode configuration. The composite arena is read through this equivalence.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def CSD.CV.leftModes (K₁ K₂ : ) :
    Finset (Fin (K₁ + K₂))

    The left mode block of the composite.

    Equations
    Instances For
      def CSD.CV.rightModes (K₁ K₂ : ) :
      Finset (Fin (K₁ + K₂))

      The right mode block of the composite.

      Equations
      Instances For
        theorem CSD.CV.mem_leftModes {K₁ K₂ : } {k : Fin (K₁ + K₂)} :
        k leftModes K₁ K₂ ∃ (i : Fin K₁), Fin.castAdd K₂ i = k
        theorem CSD.CV.mem_rightModes {K₁ K₂ : } {k : Fin (K₁ + K₂)} :
        k rightModes K₁ K₂ ∃ (j : Fin K₂), Fin.natAdd K₁ j = k
        theorem CSD.CV.natAdd_notMem_leftModes {K₁ K₂ : } (j : Fin K₂) :
        Fin.natAdd K₁ jleftModes K₁ K₂
        theorem CSD.CV.castAdd_notMem_rightModes {K₁ K₂ : } (i : Fin K₁) :
        Fin.castAdd K₂ irightModes K₁ K₂
        theorem CSD.CV.disjoint_leftModes_rightModes {K₁ K₂ : } :
        Disjoint (leftModes K₁ K₂) (rightModes K₁ K₂)

        The two mode blocks are disjoint: left values are < K₁, right values are ≥ K₁.

        The join: the Kronecker vector and the Segre map #

        noncomputable def CSD.CV.sectorJoin {K₁ K₂ N : } (u : EuclideanSpace (FieldConfig K₁ N)) (v : EuclideanSpace (FieldConfig K₂ N)) :

        The sector join: the Kronecker product of two field vectors, in field coordinates.

        Equations
        Instances For
          theorem CSD.CV.sectorJoin_apply {K₁ K₂ N : } (u : EuclideanSpace (FieldConfig K₁ N)) (v : EuclideanSpace (FieldConfig K₂ N)) (c : FieldConfig (K₁ + K₂) N) :
          (sectorJoin u v).ofLp c = u.ofLp (configSplit c).1 * v.ofLp (configSplit c).2
          theorem CSD.CV.euclid_congrFun {ι : Type u_1} [Fintype ι] {x y : EuclideanSpace ι} (h : x = y) (i : ι) :
          x.ofLp i = y.ofLp i

          Pointwise reading of an equality of Euclidean vectors (congrFun through the WithLp structure).

          theorem CSD.CV.sectorJoin_smul_smul {K₁ K₂ N : } (a b : ) (u : EuclideanSpace (FieldConfig K₁ N)) (v : EuclideanSpace (FieldConfig K₂ N)) :
          sectorJoin (a u) (b v) = (a * b) sectorJoin u v

          The join is bilinear on scalars: (a•u) ⊗ (b•v) = (ab) • (u ⊗ v).

          The join norm is multiplicative: ‖u ⊗ v‖ = ‖u‖·‖v‖.

          theorem CSD.CV.sectorJoin_ne_zero {K₁ K₂ N : } {u : EuclideanSpace (FieldConfig K₁ N)} {v : EuclideanSpace (FieldConfig K₂ N)} (hu : u 0) (hv : v 0) :

          The join of nonzero vectors is nonzero.

          noncomputable def CSD.CV.arenaJoin {K₁ K₂ N : } (p : FieldArena K₁ N) (q : FieldArena K₂ N) :
          FieldArena (K₁ + K₂) N

          The Segre map: the composite ray of a pair of sector rays.

          Equations
          Instances For
            theorem CSD.CV.arenaJoin_mk {K₁ K₂ N : } {u : EuclideanSpace (FieldConfig K₁ N)} (hu : u 0) {v : EuclideanSpace (FieldConfig K₂ N)} (hv : v 0) :

            The Segre map on representatives: the rep choices wash out.

            The local operator algebras #

            noncomputable def CSD.CV.compositeReindex {K₁ K₂ N : } :
            Matrix (FieldConfig K₁ N × FieldConfig K₂ N) (FieldConfig K₁ N × FieldConfig K₂ N) ≃ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

            The composite reindex: matrices over the pair of configuration spaces, read as matrices over the joint configuration space. An algebra equivalence.

            Equations
            Instances For
              theorem CSD.CV.compositeReindex_apply {K₁ K₂ N : } (M : Matrix (FieldConfig K₁ N × FieldConfig K₂ N) (FieldConfig K₁ N × FieldConfig K₂ N) ) (c d : FieldConfig (K₁ + K₂) N) :
              theorem CSD.CV.trace_compositeReindex {K₁ K₂ N : } (M : Matrix (FieldConfig K₁ N × FieldConfig K₂ N) (FieldConfig K₁ N × FieldConfig K₂ N) ) :

              Traces are preserved by the composite reindex.

              noncomputable def CSD.CV.leftOp {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) :
              Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

              A left-sector operator acting on the composite: A ⊗ₖ 1, reindexed.

              Equations
              Instances For
                noncomputable def CSD.CV.rightOp {K₁ K₂ N : } (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :
                Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                A right-sector operator acting on the composite: 1 ⊗ₖ B, reindexed.

                Equations
                Instances For
                  theorem CSD.CV.leftOp_mul_rightOp {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :
                  leftOp A * rightOp B = compositeReindex (Matrix.kroneckerMap (fun (x1 x2 : ) => x1 * x2) A B)

                  The local products assemble to the reindexed Kronecker product.

                  theorem CSD.CV.leftOp_comm_rightOp {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :

                  The two local algebras commute — locality of the composite.

                  noncomputable def CSD.CV.kronLeftHom {K₁ K₂ N : } :

                  A ↦ A ⊗ₖ 1 as an algebra hom into the pair-indexed algebra.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    noncomputable def CSD.CV.kronRightHom {K₁ K₂ N : } :

                    B ↦ 1 ⊗ₖ B as an algebra hom into the pair-indexed algebra.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      noncomputable def CSD.CV.leftHom {K₁ K₂ N : } :
                      Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) →ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                      The left embedding as an algebra hom.

                      Equations
                      Instances For
                        noncomputable def CSD.CV.rightHom {K₁ K₂ N : } :
                        Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) →ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                        The right embedding as an algebra hom.

                        Equations
                        Instances For
                          theorem CSD.CV.leftHom_apply {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) :
                          theorem CSD.CV.rightHom_apply {K₁ K₂ N : } (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :

                          The local algebras are mode-local: P1 machinery applies for free #

                          theorem CSD.CV.leftOp_supportedOn {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) :
                          SupportedOn (leftModes K₁ K₂) (leftOp A)

                          The left algebra is supported on the left mode block. With this, every P1 statement — exact statics, the Lieb-Robinson cone, record strokes — applies to composite-arena local observables with zero new proofs.

                          theorem CSD.CV.rightOp_supportedOn {K₁ K₂ N : } (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :

                          The right algebra is supported on the right mode block.

                          State transport: the density of a join is the Kronecker density #

                          Bridge to the canonical representative (arenaDM is definitionally dmVec ∘ rep, restated as a lemma for cross-module use).

                          theorem CSD.CV.arenaDM_join {K₁ K₂ N : } (p : FieldArena K₁ N) (q : FieldArena K₂ N) :
                          arenaDM (arenaJoin p q) = compositeReindex (Matrix.kroneckerMap (fun (x1 x2 : ) => x1 * x2) (arenaDM p) (arenaDM q))

                          The density of a join is the Kronecker product of the densities: ρ_{p⊗q} = ρ_p ⊗ₖ ρ_q, read on the composite index.

                          Observable transport: marginals are exact, products factor #

                          theorem CSD.CV.arenaObs_join_left {K₁ K₂ N : } (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (p : FieldArena K₁ N) (q : FieldArena K₂ N) :

                          The marginal reading is exact: a left-sector observable read on a join sees exactly the left component. No-signalling on product states, with no hypotheses on A.

                          theorem CSD.CV.arenaObs_join_right {K₁ K₂ N : } (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) (p : FieldArena K₁ N) (q : FieldArena K₂ N) :

                          ★ The symmetric right marginal.

                          theorem CSD.CV.trace_arenaDM_mul_real {K N : } (p : FieldArena K N) {A : Matrix (FieldConfig K N) (FieldConfig K N) } (hA : A.conjTranspose = A) :
                          (arenaDM p * A).trace.im = 0

                          The expectation of a Hermitian observable in any ray is real.

                          theorem CSD.CV.arenaObs_join_mul {K₁ K₂ N : } {A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) } (hA : A.conjTranspose = A) (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) (p : FieldArena K₁ N) (q : FieldArena K₂ N) :

                          Local tomography on the arena: the joint expectation of a product of local observables factors into the product of local expectations, on every join. (A Hermitian makes its expectation real, which is what lets the real parts factor.)

                          Dynamics transport: product unitaries restrict along the join #

                          noncomputable def CSD.CV.joinU {K₁ K₂ N : } (U : (Matrix.unitaryGroup (FieldConfig K₁ N) )) (V : (Matrix.unitaryGroup (FieldConfig K₂ N) )) :
                          (Matrix.unitaryGroup (FieldConfig (K₁ + K₂) N) )

                          The product unitary on the composite: U ⊗ₖ V, reindexed.

                          Equations
                          Instances For

                            Kicks on representatives: the rep choice washes out (general-K API, placed here as its first consumer; ArenaBridge inlines the same dance).

                            The product unitary acts on join vectors as the pair of local actions.

                            theorem CSD.CV.arenaKick_join {K₁ K₂ N : } (U : (Matrix.unitaryGroup (FieldConfig K₁ N) )) (V : (Matrix.unitaryGroup (FieldConfig K₂ N) )) (p : FieldArena K₁ N) (q : FieldArena K₂ N) :

                            Dynamics restrict along the join: the product unitary's kick on the composite arena is the pair of local kicks.

                            noncomputable def CSD.CV.rightU {K₁ K₂ N : } (V : (Matrix.unitaryGroup (FieldConfig K₂ N) )) :
                            (Matrix.unitaryGroup (FieldConfig (K₁ + K₂) N) )

                            A right-sector unitary, acting on the composite. Its matrix is the rightOp of the sector unitary's matrix.

                            Equations
                            Instances For
                              theorem CSD.CV.rightU_val {K₁ K₂ N : } (V : (Matrix.unitaryGroup (FieldConfig K₂ N) )) :
                              (rightU V) = rightOp V
                              theorem CSD.CV.composite_no_signalling {K₁ K₂ N : } [NeZero N] (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (V : (Matrix.unitaryGroup (FieldConfig K₂ N) )) (x : FieldArena (K₁ + K₂) N) :

                              ★★ No-signalling on the composite arena — exactly, and for ALL states. A kick built from a right-sector unitary leaves every left-sector arena observable invariant, on every point of the composite arena, entangled points included. This is an instance of P1's exact statics (arenaObs_kick_of_disjointSupport) through the mode-locality of the two subalgebras — not a consequence of the join, which is why it needs no product form on the state.

                              Entanglement: the composite arena is strictly larger than the pair #

                              noncomputable def CSD.CV.bellVec {K₁ K₂ N : } (x₀ x₁ : FieldConfig K₁ N) (y₀ y₁ : FieldConfig K₂ N) :

                              The Bell vector over a pair of patterns per sector: equal weight on the two aligned configuration pairs, zero elsewhere.

                              Equations
                              Instances For
                                theorem CSD.CV.bellVec_apply {K₁ K₂ N : } (x₀ x₁ : FieldConfig K₁ N) (y₀ y₁ : FieldConfig K₂ N) (c : FieldConfig (K₁ + K₂) N) :
                                (bellVec x₀ x₁ y₀ y₁).ofLp c = if configSplit c = (x₀, y₀) configSplit c = (x₁, y₁) then 1 else 0
                                theorem CSD.CV.bellVec_ne_zero {K₁ K₂ N : } (x₀ x₁ : FieldConfig K₁ N) (y₀ y₁ : FieldConfig K₂ N) :
                                bellVec x₀ x₁ y₀ y₁ 0
                                theorem CSD.CV.bell_not_join {K₁ K₂ N : } {x₀ x₁ : FieldConfig K₁ N} (hx : x₀ x₁) {y₀ y₁ : FieldConfig K₂ N} (hy : y₀ y₁) (p : FieldArena K₁ N) (q : FieldArena K₂ N) :
                                arenaJoin p q Projectivization.mk (bellVec x₀ x₁ y₀ y₁)

                                ★★ Entanglement is real at the arena level: the Bell ray over two distinct patterns per sector is NOT a join. The composite arena is strictly larger than the pair of component arenas — the arena-side signature of the tensor product against the Cartesian one.

                                theorem CSD.CV.exists_bell_witness {K₁ K₂ N : } [NeZero K₁] [NeZero K₂] (hN : 2 N) :
                                ∃ (x₀ : FieldConfig K₁ N) (x₁ : FieldConfig K₁ N) (y₀ : FieldConfig K₂ N) (y₁ : FieldConfig K₂ N), x₀ x₁ y₀ y₁

                                Two distinct patterns exist in each sector as soon as N ≥ 2 (constant configurations at two distinct levels), so bell_not_join is non-vacuous: entangled rays exist on every composite arena with at least two levels.

                                The transport: the algebra forcing lands on the composite arena #

                                theorem CSD.CV.single_kronecker_single {K₁ K₂ N : } (a₁ b₁ : FieldConfig K₁ N) (a₂ b₂ : FieldConfig K₂ N) :
                                Matrix.kroneckerMap (fun (x1 x2 : ) => x1 * x2) (Matrix.single a₁ b₁ 1) (Matrix.single a₂ b₂ 1) = Matrix.single (a₁, a₂) (b₁, b₂) 1

                                Kronecker of unit basis matrices is the joint unit basis matrix (the index-generic form of SigmaLayer.single_prod).

                                The composite reindex of a unit basis matrix.

                                ★★ The composite arena's local algebras generate — the second premise of the reconstruction, proved arena-natively: every joint operator is a linear combination of products leftOp E · rightOp E' of unit local observables. The composite algebra carries nothing beyond the local algebras and their products.

                                Field configuration spaces are nonempty once there is at least one level.

                                Configuration cardinalities are nonzero once there is at least one level.

                                Matrix algebras over configuration spaces are nontrivial.

                                noncomputable def CSD.CV.leftHomFin (K₁ K₂ N : ) :
                                Matrix (Fin (Fintype.card (FieldConfig K₁ N))) (Fin (Fintype.card (FieldConfig K₁ N))) →ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                                The left sector algebra through its Fin-index presentation (what the Fin-indexed reconstruction consumes).

                                Equations
                                Instances For
                                  noncomputable def CSD.CV.rightHomFin (K₁ K₂ N : ) :
                                  Matrix (Fin (Fintype.card (FieldConfig K₂ N))) (Fin (Fintype.card (FieldConfig K₂ N))) →ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                                  The right sector algebra through its Fin-index presentation.

                                  Equations
                                  Instances For
                                    theorem CSD.CV.leftHomFin_comm_rightHomFin (K₁ K₂ N : ) (A : Matrix (Fin (Fintype.card (FieldConfig K₁ N))) (Fin (Fintype.card (FieldConfig K₁ N))) ) (B : Matrix (Fin (Fintype.card (FieldConfig K₂ N))) (Fin (Fintype.card (FieldConfig K₂ N))) ) :
                                    Commute ((leftHomFin K₁ K₂ N) A) ((rightHomFin K₁ K₂ N) B)
                                    theorem CSD.CV.range_leftHomFin (K₁ K₂ N : ) :
                                    Set.range (leftHomFin K₁ K₂ N) = Set.range leftHom
                                    theorem CSD.CV.range_rightHomFin (K₁ K₂ N : ) :
                                    theorem CSD.CV.composite_generate_fin (K₁ K₂ N : ) :
                                    Algebra.adjoin (Set.range (leftHomFin K₁ K₂ N) Set.range (rightHomFin K₁ K₂ N)) =
                                    theorem CSD.CV.compositeAlgReconstruction_apply {m n : } [NeZero m] [NeZero n] {𝒜 : Type u_1} [Ring 𝒜] [Algebra 𝒜] [Nontrivial 𝒜] (ιA : Matrix (Fin m) (Fin m) →ₐ[] 𝒜) (ιB : Matrix (Fin n) (Fin n) →ₐ[] 𝒜) (hc : ∀ (A : Matrix (Fin m) (Fin m) ) (B : Matrix (Fin n) (Fin n) ), Commute (ιA A) (ιB B)) (hgen : Algebra.adjoin (Set.range ιA Set.range ιB) = ) (x : TensorProduct (Matrix (Fin m) (Fin m) ) (Matrix (Fin n) (Fin n) )) :

                                    The landed reconstruction, applied: it acts as reconMap (definitional; restated for cross-module rewriting).

                                    noncomputable def CSD.CV.compositeArenaForced (K₁ K₂ N : ) [NeZero N] :
                                    TensorProduct (Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) ≃ₐ[] Matrix (FieldConfig (K₁ + K₂) N) (FieldConfig (K₁ + K₂) N)

                                    ★★ The algebra forcing transports to the composite arena. The composite arena's operator algebra, together with its two mode-local subalgebras, satisfies the premises of compositeAlgReconstruction — the subalgebras commute (leftHomFin_comm_rightHomFin) and generate (composite_generate_fin) — so the landed forcing theorem applies and the composite algebra IS the tensor product of the sector algebras: Matrix C₁ ⊗[ℂ] Matrix C₂ ≃ₐ[ℂ] Matrix C₁₂. Not chosen: forced, by P2's own arena-side locality and generation.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      theorem CSD.CV.compositeArenaForced_tmul (K₁ K₂ N : ) [NeZero N] (A : Matrix (FieldConfig K₁ N) (FieldConfig K₁ N) ) (B : Matrix (FieldConfig K₂ N) (FieldConfig K₂ N) ) :

                                      The forced equivalence acts as the local product: A ⊗ₜ B ↦ leftOp A · rightOp B. The abstract forcing and the concrete mode-local embeddings agree on the nose.

                                      theorem CSD.CV.card_composite_config (K₁ K₂ N : ) :

                                      The composite arena sits at exactly the forced dimension: the joint configuration space has the product cardinality (the arena-side face of composite_dim_eq).