diff --git a/.github/workflows/lean_action_ci.yml b/.github/workflows/lean_action_ci.yml index 37b6cbe..ff71757 100644 --- a/.github/workflows/lean_action_ci.yml +++ b/.github/workflows/lean_action_ci.yml @@ -36,3 +36,6 @@ jobs: | sort -u > lean_decls.txt echo "Checking $(wc -l < lean_decls.txt) declarations named in the blueprint." ~/.elan/bin/lake exe checkdecls lean_decls.txt + + - name: Check documentation is in the present tense + run: python3 scripts/check_temporal_wording.py diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..335285a --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,126 @@ +# Changelog + +All notable changes to this project — the Lean formalization, the blueprint and the project web +page — are recorded in this file. The documentation itself describes the project as it is; this +file is where its history lives. + +## Unreleased + +The first release, 1.0, is in preparation. + +## Pre-1.0 development notes + +The project started in June 2026. The notes below summarise the changes made before the first +release that a reader of earlier drafts of the blueprint or of the web page may want to know +about. Blueprint labels (e.g. `def:local-commutativity`) and Lean names identify the current +declarations. + +### The Haag–Kastler axioms (Minkowski and curved spacetime) + +- **Axiom 2 (Isotony) supplies its embeddings as data.** Isotony was at first stated with strict + inclusion ⊂ and only asserted the existence of embeddings; the embeddings used downstream were + witnesses chosen existentially inside Axiom 3, with no composition law. Axiom 2 now fixes a + family of unital \*-monomorphisms `i_{B₁B₂}` for `B₁ ⊆ B₂`, with identity and composition laws, + in both the Minkowski and the curved setting (`def:isotony`, `def:isotony-in-curved-spacetime`). +- **Axiom 3 (Local Commutativity) consumes the Axiom 2 family.** It previously introduced its own + isotony family and injectivity. In curved spacetime this removed the coherence hypotheses that + three-fold inclusion results (von Neumann isotony, the von Neumann net, net equivalence) used to + carry; `commIsotony` is now the Axiom 2 family, so `commIsotony_comp` holds for every net. +- **Minkowski Axiom 3 is stated in a common containing diamond.** It was previously stated as + commutation of the images `ι_B` in some quasilocal algebra. It now requires completely spacelike + local algebras to commute in every local algebra `𝔘(B)` containing both, exactly as the curved + axiom does; the former statement is the equivalent `lmm:local-commutativity-iff-quasilocal` + (`localCommutativity_iff_exists_commute_ι`). Chapter 5's discussion of where commutation takes + place was revised accordingly. +- **Axiom 4 was split.** It previously carried `QuasilocalCompleteness`, a mathematical existence + claim (`Nonempty (QuasilocalAlgebra U i)`), which `HaagKastlerNet` bundled as a field. The + existence claim became the theorem `thrm:quasilocal-algebra-exists` (`exists_quasilocalAlgebra`), + proved from the net alone; Axiom 4 is now the bridge principle `ObservableCorrespondence`, and the + net carries no quasilocal-completeness field. +- **Axiom 5 (Lorentz covariance) and curved isometric covariance** restate their coherence + condition for the Axiom 2 family. The abstract curved `LorentzianSpacetime` interface gained the + field `isBasisSet_smul`, so basis-set preservation is no longer a hypothesis of the curved + geometric-covariance results. +- **Positive energy uses an unbounded generator.** `IsPositiveEnergy` was first stated with a + bounded positive generator, `V(t) = exp(itP)`, and carried a `**Restriction:**` note waiting on + Stone's theorem. With Stone's theorem formalized it is stated through the infinitesimal + generator, which must be a positive (unbounded) operator; the bounded case is the lemma + `isPositiveEnergy_exp`. The project records no remaining restrictions. +- The blueprint label `thrm:vacuum-no-stone` was renamed `thrm:vacuum-invariance-consequences`. +- General covariance (`def:general-covariance-in-curved-spacetime`) was added as a property of the + assignment of nets to spacetimes, not as a sixth axiom. + +### The quasilocal algebra + +- **Construction route.** The quasilocal algebra is constructed from the net as the directed colimit + of the local algebras followed by completion. The alternative of realising it as a closed + \*-subalgebra of an ambient C\*-algebra (`StarSubalgebra.cstarAlgebra`) was considered and + rejected, because it assumes the ambient algebra. The dense-extension results + (`dense_adjoin_iUnion_range_ι`, `exists_starAlgHom_extend_of_dense`) remained valid as consumers. +- **`QuasilocalAlgebra` is parametrised by the Axiom 2 isotony datum.** It formerly carried its own + `inclusion` family, duplicating Axiom 2's; `trivialQuasilocalAlgebra` was re-indexed accordingly. +- **Universe fixes.** The existence theorem was at one point not provable as stated, because the + embeddings `ι` were indexed over all subsets (now Alexandrov-basis sets only) and the carrier was + pinned to `Type 0` (now `Type u`, the net's universe; a free `Type*` did not elaborate). A third + universe pin was removed by making `HaagKastlerNet` universe-polymorphic. +- **Supporting results promoted.** The facts behind the quasilocal-algebra definition (directedness + of the diamonds, the colimit as a normed \*-algebra, its completion as a C\*-algebra) were promoted + from the informal discussion of Chapter 6 to blueprint declarations, and + `lmm:quasilocal-colimit-union-of-insertions` was split out of the existence proof. +- **Retractions.** The quasilocal-completion node once also claimed uniqueness of the complete + C\*-norm, citing `StarAlgEquiv.norm_map`, which does not support it; the clause was dropped. An + earlier draft claimed that any two C\*-norms on a \*-algebra coincide, which is false (ℂ[F₂] + carries distinct full and reduced norms). The `StarModule ℂ` field was missing from an earlier + statement of `lmm:completion-of-cstar-normed-star-algebra`. + +### Operator theory + +- **Stone's theorem** (§10.4, `thrm:hall-10.15`, Lean `Physicslib4.Spectral.Stone.stone`) was added, + together with the §10.3 nodes it uses: a self-adjoint operator has no proper symmetric extension + (`lmm:self-adjoint-maximally-symmetric`), the spectral measure of a self-adjoint operator + (`def:spectral-measure`), its functional calculus (`def:hall-10.5`) and its agreement with the + bounded calculus (`lmm:functional-calculus-bounded`). The chapter-10 sections after §10.3 were + renumbered by one. +- Positivity of unbounded operators (`def:positive-unbounded-operator`) was added for the + positive-energy condition. +- **The von Neumann density theorem** (`thrm:quasilocal-strongly-dense`) was proved locally, with + the supporting results of §10.6.2 (reducing subspaces, finite amplification, the strong + neighbourhood basis), following Murphy, Lemma 4.1.4. +- `def:identity-and-indicator` was split into `def:identity-operator` and + `def:indicator-function`; the old label is kept as a compound reference. Hall's Theorem A.52 was + promoted to the citable `thrm:hall-a.52`. +- The strip-Liouville principle in `KMS.lean` was first an explicit hypothesis; it is proved for + `β > 0` (`stripLiouville_of_pos`), which makes KMS invariance unconditional. + +### Spacetime geometry + +- **The Levi-Civita connection and geodesics** (§10.5): a pseudo-Riemannian layer was added + (`def:pseudo-riemannian-metric`, existence and uniqueness of the Levi-Civita connection), and + geodesics are defined through it, chart-free and affinely parametrised. Spacetimes were required to + be modelled without boundary. +- **Smoothness fields in bundle-section form.** The metric smoothness field of `Spacetime` and the + smoothness field of `TimeOrientation` were moved from a chart-local `ContDiffWithinAt` form to + Mathlib's bundle-section (`ContMDiff` section) idiom. The blueprint label + `lmm:pullback-metric-smooth-in-charts` keeps its earlier name because other nodes cite it. +- The Mathlib route to smoothness of `x ↦ dψ_x` for pullback metrics was settled via + `ContMDiffAt.mfderiv_const` and `clm_precomp`/`clm_comp`; an earlier note wrongly claimed that + `ContMDiff.clm_comp` was Mathlib's only precomposition lemma. +- The `mfderiv`/`symm` round-trip cancellation was split out as `lmm:mfderiv-symm-cancel-left` and + `-right`, and `lmm:cross-metric-isometry-symm` was added to make the reverse inclusions of the + chronological-future/past image lemmas explicit. +- Endpoints of curves were defined for arbitrary paths, `PathEquiv` was relaxed, and smoothness of + the inverse musical isomorphism (`lmm:musical-inverse-smooth`), the last unformalised node of + Chapter 10, was proved. + +### Toolchain + +- The project moved from Lean/Mathlib `v4.31.0-rc1` to `v4.34.1`. Documentation remarks about what + Mathlib does or does not provide were written against the earlier version and have been restated + for the current one. + +### Documentation and web page + +- The landing page was split into a guide, an axioms page and one page per Chapter 10 section, + with collapsible item lists; MathJax moved from the retired `cdn.mathjax.org` to jsDelivr. +- Item links on the section pages use absolute URLs, so they resolve on the deployed site. +- Long Lean names in the blueprint PDF wrap instead of overflowing the margin. diff --git a/Physicslib4/AQFT/HaagKastler/CovariantState.lean b/Physicslib4/AQFT/HaagKastler/CovariantState.lean index 1979135..78ecdcc 100644 --- a/Physicslib4/AQFT/HaagKastler/CovariantState.lean +++ b/Physicslib4/AQFT/HaagKastler/CovariantState.lean @@ -9,7 +9,7 @@ import Physicslib4.GNS.Basic /-! # Covariant families of local states -This file begins the scaffolding for *covariant states* on a Haag-Kastler +This file defines *covariant families of local states* on a Haag-Kastler net over Minkowski spacetime. The Lorentz action on the net is implemented fiberwise by the covariance equivalences `α_L : 𝔘(B) ≃⋆ₐ[ℂ] 𝔘(L·B)` (`HaagKastlerNet.covEquiv`, from Axiom 5). A *covariant family of local diff --git a/Physicslib4/AQFT/HaagKastler/LocalAlgebras.lean b/Physicslib4/AQFT/HaagKastler/LocalAlgebras.lean index 3b44805..8cc2193 100644 --- a/Physicslib4/AQFT/HaagKastler/LocalAlgebras.lean +++ b/Physicslib4/AQFT/HaagKastler/LocalAlgebras.lean @@ -89,8 +89,8 @@ structure LocalNet where attribute [instance] LocalNet.instCStarAlgebra /-! -**Unitality.** In `Mathlib v4.31.0-rc1`, `CStarAlgebra` is *defined* as -the class of *unital* (complex) C\*-algebras: it extends `NormedRing` +**Unitality.** Mathlib's `CStarAlgebra` is the class of *unital* (complex) +C\*-algebras: it extends `NormedRing` (which extends `Ring`, so we get `(1 : algebra B)` for free) plus `StarRing`, `CStarRing`, `NormedAlgebra ℂ _`, etc. The non-unital version is the separately-named `NonUnitalCStarAlgebra` class. diff --git a/Physicslib4/AQFT/HaagKastler/LocalCommutativity.lean b/Physicslib4/AQFT/HaagKastler/LocalCommutativity.lean index 78aad59..2cc787d 100644 --- a/Physicslib4/AQFT/HaagKastler/LocalCommutativity.lean +++ b/Physicslib4/AQFT/HaagKastler/LocalCommutativity.lean @@ -40,7 +40,7 @@ spacetime a containing basis set always exists (`alexandrovBasis_directed`). every quasilocal algebra of the net, in particular in the canonical one. * `Physicslib4.AQFT.HaagKastler.localCommutativity_iff_exists_commute_ι` (`lmm:local-commutativity-iff-quasilocal`): Axiom 3 is equivalent to - commutation in some quasilocal algebra, the form used by earlier versions. + commutation in some quasilocal algebra. -/ namespace Physicslib4 @@ -106,8 +106,7 @@ theorem LocalCommutativity.commute_ι {U : LocalNet} {i : Isotony U} /-- **Axiom 3 in the quasilocal algebra.** A net satisfies Axiom 3 if and only if there is a quasilocal algebra in which the images of any two completely-spacelike local algebras commute. -This was the form of Axiom 3 in earlier versions of the blueprint; by -`LocalCommutativity.commute_ι` the commutation then holds in every quasilocal algebra. +By `LocalCommutativity.commute_ι` the commutation then holds in every quasilocal algebra. Blueprint reference: `lmm:local-commutativity-iff-quasilocal`. -/ theorem localCommutativity_iff_exists_commute_ι (U : LocalNet) (i : Isotony U) : diff --git a/Physicslib4/AQFT/HaagKastler/Net.lean b/Physicslib4/AQFT/HaagKastler/Net.lean index b1e4a6a..a1ae40d 100644 --- a/Physicslib4/AQFT/HaagKastler/Net.lean +++ b/Physicslib4/AQFT/HaagKastler/Net.lean @@ -27,9 +27,8 @@ blueprint). ## Notes -* The structure deliberately does **not** bundle Axiom 4. What its - consumers needed from that axiom was the *existence* of a quasilocal - algebra, and that is now a theorem, `exists_quasilocalAlgebra` +* The structure does **not** bundle Axiom 4. The existence of a quasilocal + algebra is a theorem, `exists_quasilocalAlgebra` (`thrm:quasilocal-algebra-exists`), which builds the algebra from the net alone; `HaagKastlerNet.quasilocal` is defined from it. Axiom 4 proper (`def:quasilocal-completeness`) is a *bridge principle* @@ -37,9 +36,8 @@ blueprint). consumers, and is encoded separately in `Physicslib4/AQFT/HaagKastler/ObservableBridge.lean`. -* The structure intentionally does not bundle Axiom 6 (Primitivity) - or further axioms; those will be added as separate structure - fields in subsequent files when they are formalised. +* The structure does not bundle Axiom 6 (Primitivity), which the + sharpened axioms do not adopt. -/ namespace Physicslib4 @@ -54,9 +52,8 @@ universe u /-- A *Haag-Kastler net* on (the Alexandrov-basis sets of) Minkowski spacetime: the data of Axiom 1 (`def:local-algebras`) together with -proofs of Axioms 2-5 (`def:isotony`, -`def:local-commutativity`, `def:quasilocal-completeness`, -`def:lorentz-covariance`). +proofs of Axioms 2, 3 and 5 (`def:isotony`, +`def:local-commutativity`, `def:lorentz-covariance`). Blueprint reference: `def:haag-kastler-net`. -/ @@ -66,9 +63,8 @@ structure HaagKastlerNet where Written `LocalNet.{u}` rather than `LocalNet` so that this structure is universe polymorphic. Left implicit, the universe of `LocalNet` would be pinned here, and every net in the development would be forced to have its local - algebras in one fixed universe -- the same size restriction that - `QuasilocalAlgebra.carrier` was just freed from, reimposed at the bundling - level. -/ + algebras in one fixed universe, and the universe polymorphism of + `QuasilocalAlgebra.carrier` would be lost at the bundling level. -/ U : LocalNet.{u} /-- *Isotony*: inclusions of Alexandrov-basis sets induce unital `*`-monomorphisms of the corresponding local algebras @@ -124,8 +120,8 @@ theorem isotony_trans This is *constructed*, not assumed. The witness is `exists_quasilocalAlgebra` (`thrm:quasilocal-algebra-exists`), which builds `𝔘` from the net alone as the completion of the directed colimit of the local algebras. The net therefore -carries no quasilocal-completeness field: what consumers of the former Axiom 4 -actually needed was this existence theorem, not a physical bridge principle. -/ +carries no quasilocal-completeness field: the existence of `𝔘` is a theorem, +and Axiom 4 is a physical bridge principle (`ObservableBridge.lean`). -/ noncomputable def quasilocal : QuasilocalAlgebra N.U N.isotony := Classical.choice (exists_quasilocalAlgebra N.U N.isotony) @@ -314,7 +310,7 @@ lemma isAlexandrovBasisSet_trivialBasisSet : /-- The trivial net's Axiom 2 data: every local algebra is `ℂ` and every inclusion is implemented by the identity, which is trivially functorial. -This must precede `trivialQuasilocalAlgebra`, which is now indexed by it. -/ +This must precede `trivialQuasilocalAlgebra`, which is indexed by it. -/ def trivialLocalNetIsotony : Isotony trivialLocalNet where map := fun _ _ _ _ _ => StarAlgHom.id ℂ ℂ injective := by @@ -329,9 +325,8 @@ def trivialLocalNetIsotony : Isotony trivialLocalNet where rfl /-- The trivial quasilocal algebra for the trivial net: ambient C*-algebra `ℂ`, -with every local embedding the identity `ℂ →⋆ₐ[ℂ] ℂ`. It no longer supplies its own -`inclusion` family; the cocone condition `ι_inclusion` is stated against the Axiom 2 -family `trivialLocalNetIsotony`. -/ +with every local embedding the identity `ℂ →⋆ₐ[ℂ] ℂ`. The cocone condition +`ι_inclusion` is stated against the Axiom 2 family `trivialLocalNetIsotony`. -/ noncomputable def trivialQuasilocalAlgebra : QuasilocalAlgebra trivialLocalNet trivialLocalNetIsotony where carrier := ℂ diff --git a/Physicslib4/AQFT/HaagKastler/ObservableBridge.lean b/Physicslib4/AQFT/HaagKastler/ObservableBridge.lean index 6dd68d2..8a11fe6 100644 --- a/Physicslib4/AQFT/HaagKastler/ObservableBridge.lean +++ b/Physicslib4/AQFT/HaagKastler/ObservableBridge.lean @@ -32,11 +32,10 @@ quasilocal observables. ## Two consequences worth stating plainly * **This structure has no mathematical consumers, and that is correct.** A theorem - that appears to need Axiom 4 in fact needs the mathematics that was historically - conflated with it, namely the existence of the quasilocal algebra - (`thrm:quasilocal-algebra-exists`, formalized as `exists_quasilocalAlgebra`), not - the physical correspondence. Accordingly `HaagKastlerNet` does *not* bundle this - structure as a field. + that appears to need Axiom 4 in fact needs a mathematical fact, the existence of + the quasilocal algebra (`thrm:quasilocal-algebra-exists`, formalized as + `exists_quasilocalAlgebra`), not the physical correspondence. Accordingly + `HaagKastlerNet` does *not* bundle this structure as a field. * **The correspondence is deliberately not surjective.** Axiom 4 asserts a one-way inclusion, and which way it runs is what the name "Completeness" records: the diff --git a/Physicslib4/AQFT/HaagKastler/QuasilocalAlgebra.lean b/Physicslib4/AQFT/HaagKastler/QuasilocalAlgebra.lean index 4717b9d..7f66570 100644 --- a/Physicslib4/AQFT/HaagKastler/QuasilocalAlgebra.lean +++ b/Physicslib4/AQFT/HaagKastler/QuasilocalAlgebra.lean @@ -13,11 +13,9 @@ import Mathlib.Analysis.CStarAlgebra.Hom This file formalises the blueprint declaration `def:quasilocal-algebra` (section 10.6 of the AQFT-in-Lean blueprint): -> Consider the set-theoretic union of all `𝔘(𝐁)`. As previously -> proven, this set-theoretic union is a normed *-algebra. Also, as -> previously proven, taking its completion one obtains a C*-algebra -> denoted as `𝔘`. This C*-algebra `𝔘` is called the *quasilocal -> algebra*. +> Consider the union of all `𝔘(𝐁)`, taken along the isotony family of +> Axiom 2. This union is a normed *-algebra; taking its completion one +> obtains a C*-algebra denoted `𝔘`, called the *quasilocal algebra*. ## Main definitions @@ -29,9 +27,9 @@ This file formalises the blueprint declaration ## Modelling notes -* Mathlib (as of `v4.31.0-rc1`) has no canonical C*-algebraic - direct-limit / amalgamated-completion construction for a family of - C*-algebras: `Mathlib.Algebra.Colimit.DirectLimit` is purely +* Mathlib has no C*-algebraic direct-limit or amalgamated-completion + construction for a family of C*-algebras: + `Mathlib.Algebra.Colimit.DirectLimit` is purely algebraic (it puts no norm or topology on the colimit) and there is no C*-completion anywhere in `Mathlib.Analysis.CStarAlgebra`. This `structure` therefore packages the *characterising data* of a @@ -147,10 +145,9 @@ structure QuasilocalAlgebra (U : LocalNet.{u}) (i : Isotony U) where embeds into the quasilocal algebra `𝔘` independently of the basis set used to view it, which is exactly what makes `ι` well defined on the colimit. - This structure formerly carried its own `inclusion` family here, duplicating - Axiom 2's. It is now parametrised by the Axiom 2 datum `i` and consumes - `i.map` instead, so there is a single isotony family in the development and - the cocone condition relates `ι` to *that* family. -/ + The structure is parametrised by the Axiom 2 datum `i` and uses `i.map`, so + there is a single isotony family in the development and the cocone condition + relates `ι` to *that* family. -/ ι_inclusion : ∀ ⦃B₁ B₂ : Set StandardMinkowskiSpacetime.Carrier⦄ (hB₁ : IsAlexandrovBasisSet B₁) (hB₂ : IsAlexandrovBasisSet B₂) (h : B₁ ⊆ B₂) (a : U.algebra B₁), diff --git a/Physicslib4/AQFT/HaagKastler/QuasilocalIntertwiner.lean b/Physicslib4/AQFT/HaagKastler/QuasilocalIntertwiner.lean index 8944899..8f35356 100644 --- a/Physicslib4/AQFT/HaagKastler/QuasilocalIntertwiner.lean +++ b/Physicslib4/AQFT/HaagKastler/QuasilocalIntertwiner.lean @@ -14,11 +14,12 @@ import Physicslib4.GNS.ExtremeState import Physicslib4.GNS.Covariance /-! -# Towards the intertwiner on the generated subalgebra +# The quasilocal lift of the covariance action -This file begins assembling the densely-defined intertwiner used to lift the -fiberwise covariance action to the quasilocal algebra (`QuasilocalLift`). Two -ingredients are established here: +This file defines the densely-defined intertwiner `ι_B a ↦ ι_{L·B}(α_L a)` on the +dense local `*`-subalgebra, extends it to the quasilocal algebra (`quasilocalLift`, +`HaagKastlerNet.action`), and studies invariant states and their covariant GNS +representations. Along the way: * `IsAlexandrovBasisSet.directed`: the Haag-Kastler-level restatement of `Spacetime.alexandrovBasis_directed` (any two basis sets lie in a common @@ -26,11 +27,10 @@ ingredients are established here: * `dense_adjoin_iUnion_range_ι`: the `*`-subalgebra of `𝔘` generated by the union of the local images `ι_B(𝔘(B))` is dense - so it is a valid domain for the dense-extension lemma `exists_starAlgHom_extend_of_dense`. - -The remaining step - defining the intertwiner `ι_B a ↦ ι_{L·B}(α_L a)` on this -generated subalgebra and checking it is a well-defined `*`-homomorphism - will -use `StarAlgebra.adjoin_induction` together with the isotony-coherence field -`QuasilocalAlgebra.ι_inclusion` and basis directedness. +* The intertwiner on this generated subalgebra, defined using + `StarAlgebra.adjoin_induction` together with the isotony-coherence field + `QuasilocalAlgebra.ι_inclusion` and basis directedness, extends to the whole + quasilocal algebra by density. -/ namespace Physicslib4 @@ -654,9 +654,8 @@ fixing the cyclic vector `Ω`, with the operator covariance `IsInvariantState.exists_gns_unitary` (a covariant GNS triple with invariant cyclic `Ω`) with purity ⟹ irreducibility (`isPure_iff_isIrreducible`). -This is a necessary precursor to, but not yet, a *vacuum* representation: a genuine -vacuum would additionally require the spectrum condition (positivity of the energy- -momentum spectrum), which is not available here. -/ +A *vacuum* representation additionally requires the spectrum condition +(positivity of the energy-momentum spectrum); see `HaagKastlerNet.IsVacuumState`. -/ theorem IsInvariantState.exists_gns_irreducible_covariant (N : HaagKastlerNet.{u}) {ω : Physicslib4.GNS.State N.quasilocal.carrier} (hω : N.IsInvariantState ω) (hpure : Physicslib4.GNS.IsPure ω) : diff --git a/Physicslib4/AQFT/HaagKastler/QuasilocalObservable.lean b/Physicslib4/AQFT/HaagKastler/QuasilocalObservable.lean index 86c8591..05f8dae 100644 --- a/Physicslib4/AQFT/HaagKastler/QuasilocalObservable.lean +++ b/Physicslib4/AQFT/HaagKastler/QuasilocalObservable.lean @@ -27,14 +27,10 @@ quasilocal observables of a representation. ## Note on the file name, and on Axiom 4 -This file no longer defines a `QuasilocalCompleteness` predicate, and -despite its name it does not formalise Axiom 4. The predicate that -used to live here was `Nonempty (QuasilocalAlgebra U i)` — a -*mathematical existence claim* about the net wearing Axiom 4's name. -That claim is now a theorem, `exists_quasilocalAlgebra` -(`thrm:quasilocal-algebra-exists`), proved by building the quasilocal -algebra from the net alone, so a hypothesis asserting it would be -vacuous and is gone. +Despite its name, this file does not formalise Axiom 4. The existence of a +quasilocal algebra is a theorem, `exists_quasilocalAlgebra` +(`thrm:quasilocal-algebra-exists`), proved by building the algebra from the +net alone, so no hypothesis asserting it is needed. Axiom 4 proper (`def:quasilocal-completeness`) is a *bridge principle* relating physical observables to the formalism. It is encoded in diff --git a/Physicslib4/AQFT/HaagKastler/VacuumState.lean b/Physicslib4/AQFT/HaagKastler/VacuumState.lean index 338341b..b08955e 100644 --- a/Physicslib4/AQFT/HaagKastler/VacuumState.lean +++ b/Physicslib4/AQFT/HaagKastler/VacuumState.lean @@ -176,7 +176,7 @@ theorem HaagKastlerNet.IsVacuumState.exists_gns_irreducible_covariant `IsFutureTimelikeTranslation`, so the spectrum condition is imposed on exactly the one-parameter translation subgroups `t ↦ (id, t • n)` with `n` future-pointing timelike. This discharges the abstract `ftl` parameter with its intended value, so a -concrete vacuum state no longer depends on a free predicate. -/ +concrete vacuum state depends on no free predicate. -/ def HaagKastlerNet.IsVacuumStateConcrete (N : HaagKastlerNet) (ω : Physicslib4.GNS.State N.quasilocal.carrier) : Prop := N.IsVacuumState IsFutureTimelikeTranslation ω diff --git a/Physicslib4/AQFT/HaagKastlerCurved/GeometricCovariance.lean b/Physicslib4/AQFT/HaagKastlerCurved/GeometricCovariance.lean index 007e80c..d71144b 100644 --- a/Physicslib4/AQFT/HaagKastlerCurved/GeometricCovariance.lean +++ b/Physicslib4/AQFT/HaagKastlerCurved/GeometricCovariance.lean @@ -19,10 +19,9 @@ unitary `U(g)` of the stabilizer GNS representation conjugates the local von Neumann algebra of a subregion `B₁ ⊆ B` onto that of `g · B₁`: `U(g) · R(B₁) · U(g)⁻¹ = R(g · B₁)`. -Compared with Minkowski, the abstract `LorentzianSpacetime` interface does not -provide basis-set preservation (`M.IsBasisSet (g · B₁)`), so it enters as the -explicit hypothesis `(M.isBasisSet_smul _ hB₁)`, exactly as elsewhere in the curved development -(e.g. `localVonNeumann_mono`). The coherence between the stabilizer action and the +Basis-set preservation `M.IsBasisSet (g · B₁)` is supplied by the interface field +`M.isBasisSet_smul`, as elsewhere in the curved development (e.g. +`localVonNeumann_mono`). The coherence between the stabilizer action and the isotony embeddings is not a hypothesis: it is `stabAutHom_commIsotony`, derived from Axiom 5 (3), which is stated for the Axiom 2 isotony family. diff --git a/Physicslib4/AQFT/HaagKastlerCurved/LocalVonNeumann.lean b/Physicslib4/AQFT/HaagKastlerCurved/LocalVonNeumann.lean index 7d91fb7..83c5eea 100644 --- a/Physicslib4/AQFT/HaagKastlerCurved/LocalVonNeumann.lean +++ b/Physicslib4/AQFT/HaagKastlerCurved/LocalVonNeumann.lean @@ -76,11 +76,8 @@ theorem localVonNeumann_subset_centralizer basis subregions `B₁ ⊆ B₂ ⊆ B`, the local von Neumann algebras are nested: `R(B₁) ⊆ R(B₂)`. -No coherence hypothesis is needed. The step this rests on is that the embedding -`𝔘(B₁) → 𝔘(B)` factors through `𝔘(B₂)`, and that is now the composition law of -Axiom 2, available as `commIsotony_comp`. Formerly the embeddings in play were the -witnesses chosen inside Axiom 3, which carried no composition law, so this -factorisation had to be assumed as a separate hypothesis `hcoh` at every site. -/ +No coherence hypothesis is needed: the embedding `𝔘(B₁) → 𝔘(B)` factors through +`𝔘(B₂)` by the composition law of Axiom 2, `commIsotony_comp`. -/ theorem localVonNeumann_mono {B : Set M.Carrier} (hB : M.IsBasisSet B) (π : N.algebra B →⋆ₐ[ℂ] (H →L[ℂ] H)) diff --git a/Physicslib4/AQFT/HaagKastlerCurved/Net.lean b/Physicslib4/AQFT/HaagKastlerCurved/Net.lean index e948737..728da5b 100644 --- a/Physicslib4/AQFT/HaagKastlerCurved/Net.lean +++ b/Physicslib4/AQFT/HaagKastlerCurved/Net.lean @@ -156,10 +156,8 @@ theorem covEquiv_mul (φ φ' : M.Isom) (B : Set M.Carrier) (a : N.algebra B) : /-- The *isotony embeddings* of the net: the chosen family supplied by Axiom 2 (`isotony`). -Previously this was chosen (`Classical.choose`) from the Axiom 3 existence witness, which -is why it carried no composition law and every consumer factoring a three-fold -inclusion had to assume coherence separately. It is now literally the Axiom 2 -family, so `commIsotony_self` and `commIsotony_comp` below hold for every net. -/ +This is the Axiom 2 family itself, so `commIsotony_self` and `commIsotony_comp` +below hold for every net. -/ noncomputable def commIsotony ⦃B₁ B₂ : Set M.Carrier⦄ (h₁ : M.IsBasisSet B₁) (h₂ : M.IsBasisSet B₂) (h : B₁ ⊆ B₂) : StarAlgHom ℂ (N.U.algebra B₁) (N.U.algebra B₂) := @@ -179,9 +177,8 @@ theorem commIsotony_self ⦃B : Set M.Carrier⦄ (h : M.IsBasisSet B) : /-- **Composition law** for the isotony embeddings, from Axiom 2: the embedding along `B₁ ⊆ B₃` factors through any intermediate `B₂`. -This is the coherence that was previously carried as an ad hoc hypothesis at -every site factoring a three-fold inclusion `B₁ ⊆ B₂ ⊆ B`; it now holds for -every net, including the trivial one. -/ +This coherence holds for every net, including the trivial one, so no site +factoring a three-fold inclusion `B₁ ⊆ B₂ ⊆ B` needs it as a hypothesis. -/ theorem commIsotony_comp ⦃B₁ B₂ B₃ : Set M.Carrier⦄ (h₁ : M.IsBasisSet B₁) (h₂ : M.IsBasisSet B₂) (h₃ : M.IsBasisSet B₃) (h₁₂ : B₁ ⊆ B₂) (h₂₃ : B₂ ⊆ B₃) : diff --git a/Physicslib4/AQFT/HaagKastlerCurved/Spacetime.lean b/Physicslib4/AQFT/HaagKastlerCurved/Spacetime.lean index 878ee14..ad0f638 100644 --- a/Physicslib4/AQFT/HaagKastlerCurved/Spacetime.lean +++ b/Physicslib4/AQFT/HaagKastlerCurved/Spacetime.lean @@ -36,11 +36,14 @@ five axioms actually use: Axiom 3 (Local Commutativity); * a group `Isom` of *isometries connected to the identity* together with its action on `Carrier`, used by Axiom 5 (Isometric - Covariance). + Covariance); +* `isBasisSet_smul`, witnessing that those isometries carry basis sets + to basis sets. -A concrete `LorentzianSpacetime` produced from the eventual -differential-geometric construction will instantiate this interface; -the axioms and any consequences proved here transfer verbatim. +The geometric bundle `Physicslib4.Spacetime.LorentzianSpacetime` +instantiates this interface via `toAbstractIdentityComponent` +(`Concrete.lean`); the axioms and any consequences proved here +transfer verbatim. ## Modelling notes @@ -85,8 +88,7 @@ axioms quantify over: The full geometric content (smooth 4-manifold, Lorentzian metric, nowhere-vanishing time-orientation field, Hausdorff Alexandrov -topology) is deferred; a concrete construction instantiates this -interface. +topology) lives in the geometric bundle described below. This is the *axiom-facing interface* form of the geometric bundle `Physicslib4.Spacetime.LorentzianSpacetime`: every such geometric diff --git a/Physicslib4/AQFT/KMS.lean b/Physicslib4/AQFT/KMS.lean index 1567507..1d51d8c 100644 --- a/Physicslib4/AQFT/KMS.lean +++ b/Physicslib4/AQFT/KMS.lean @@ -35,8 +35,8 @@ statement about correlation functions and so needs no unbounded-operator theory This is the analytic form of the KMS condition (Bratteli-Robinson): at inverse temperature `β > 0`, `ω` is KMS iff for all `a, b` there is `F` continuous on the strip `{0 ≤ Im z ≤ β}`, holomorphic in the interior, with `F(t) = ω(a α_t b)` -and `F(t + iβ) = ω(α_t b · a)`. KMS states are automatically `α`-invariant; that -and other consequences are left for later development. +and `F(t + iβ) = ω(α_t b · a)`. KMS states are automatically `α`-invariant +(`IsKMSState.invariant`, unconditionally for `β > 0` by `IsKMSState.invariant_of_pos`). -/ namespace Physicslib4 @@ -80,8 +80,9 @@ Mathematically this is a standard consequence of the Schwarz reflection principle (the equal boundary values let `F` extend to an `iβ`-periodic entire function, bounded, hence constant by Liouville). Mathlib provides Liouville (`Differentiable.apply_eq_apply_of_bounded`) and Phragmén-Lindelöf for strips, -but not the holomorphic gluing across a line that the periodic extension needs, -so this principle is isolated here as an explicit hypothesis rather than proved. +but not the holomorphic gluing across a line that the periodic extension needs. +That gluing is proved in `Physicslib4.Analysis.HorizontalLineRemovable`, and +`stripLiouville_of_pos` proves this principle for `β > 0`. -/ def StripLiouville (β : ℝ) : Prop := ∀ F : ℂ → ℂ, ContinuousOn F (kmsStrip β) → DifferentiableOn ℂ F (kmsStripInterior β) → @@ -219,8 +220,8 @@ theorem IsKMSState.invariant {α : ℝ → (A ≃⋆ₐ[ℂ] A)} {β : ℝ} {ω _ = (ω a : ℂ) := by rw [hα.1 a] /-- **A KMS state at positive inverse temperature is `α`-invariant**, with no -external analytic hypothesis: the strip-Liouville principle is now a theorem -(`stripLiouville_of_pos`) for `β > 0`. -/ +external analytic hypothesis: the strip-Liouville principle holds for `β > 0` +(`stripLiouville_of_pos`). -/ theorem IsKMSState.invariant_of_pos {α : ℝ → (A ≃⋆ₐ[ℂ] A)} {β : ℝ} {ω : State A} (h : IsKMSState α β ω) (hα : IsOneParameterAut α) (hβ : 0 < β) (a : A) (t : ℝ) : (ω (α t a) : ℂ) = (ω a : ℂ) := diff --git a/Physicslib4/Analysis/HorizontalLineRemovable.lean b/Physicslib4/Analysis/HorizontalLineRemovable.lean index f507d91..8d3cf27 100644 --- a/Physicslib4/Analysis/HorizontalLineRemovable.lean +++ b/Physicslib4/Analysis/HorizontalLineRemovable.lean @@ -7,14 +7,14 @@ import Mathlib.Analysis.Complex.CauchyIntegral import Mathlib.Analysis.Complex.HasPrimitives /-! -# Towards horizontal-line removability (Morera-based) +# Horizontal-line removability (Morera-based) This file proves the **horizontal-line removable singularity** theorem: a function continuous on an open set `U` and holomorphic on `U` minus a horizontal line is holomorphic on all of `U` (`differentiableOn_of_continuousOn_off_horizontal_line`). That theorem is the -missing prerequisite for the strip Schwarz reflection used in the KMS -invariance proof (`StripLiouville`). +prerequisite for the strip Schwarz reflection used in the KMS invariance proof +(`StripLiouville`). ## Foundation (rectangle contour integrals) diff --git a/Physicslib4/Analysis/StripPeriodicExtension.lean b/Physicslib4/Analysis/StripPeriodicExtension.lean index 741cb3f..31161ff 100644 --- a/Physicslib4/Analysis/StripPeriodicExtension.lean +++ b/Physicslib4/Analysis/StripPeriodicExtension.lean @@ -52,10 +52,6 @@ theorem sub_intMul_re (k : ℤ) (β : ℝ) (w : ℂ) : simp [Complex.sub_re, Complex.mul_re, Complex.intCast_re, Complex.intCast_im, Complex.ofReal_re, Complex.ofReal_im, Complex.I_re, Complex.I_im] --- The half-plane topology helpers (`isOpen_setOf_im_lt`, `closure_setOf_im_lt`, --- `closure_setOf_not_im_lt`, `frontier_setOf_im_lt`) now live in --- `Physicslib4.Analysis.HorizontalLineRemovable` alongside the general gluing lemma. - variable {β : ℝ} /-- The vertical fold shift `z ↦ z - ⌊Im z / β⌋ · iβ`. -/ diff --git a/Physicslib4/GNS/Amplification.lean b/Physicslib4/GNS/Amplification.lean index 26a8cc4..204159c 100644 --- a/Physicslib4/GNS/Amplification.lean +++ b/Physicslib4/GNS/Amplification.lean @@ -24,8 +24,8 @@ is **not** proved here. It requires a `*`-isomorphism of the generated von Neuma algebras `π(A)'' ≃⋆ₐ (ι·π)(A)''`. The natural map is `T ↦ lpDiag (fun _ ↦ T)` (the diagonal), which is an injective `*`-homomorphism carrying `π a ↦ (ι·π) a`; but *surjectivity* onto `(ι·π)(A)''` is exactly the amplification commutant theorem -`(π ⊗ 1)' = π' ⊗ B(K)` (equivalently `(π ⊗ 1)'' = π'' ⊗ ℂ1`), a genuine von Neumann -algebra result that Mathlib does not currently provide. It is recorded as deferred. +`(π ⊗ 1)' = π' ⊗ B(K)` (equivalently `(π ⊗ 1)'' = π'' ⊗ ℂ1`), a von Neumann algebra +result that Mathlib does not provide. -/ namespace Physicslib4 diff --git a/Physicslib4/GNS/Basic.lean b/Physicslib4/GNS/Basic.lean index d224c03..e572507 100644 --- a/Physicslib4/GNS/Basic.lean +++ b/Physicslib4/GNS/Basic.lean @@ -29,8 +29,8 @@ the AQFT-in-Lean blueprint, section 10.1. ## Notes -Mathlib does not yet provide a packaged `State` type for C*-algebras, so we -introduce one here. The positivity condition is stated using the canonical +Mathlib has no packaged `State` type for C*-algebras, so one is introduced +here. The positivity condition is stated using the canonical partial order on `ℂ` from Mathlib: `0 ≤ z` iff `z.re ≥ 0` and `z.im = 0`. The blueprint statement of `def:cyclic-vector` only requires `A` to be an diff --git a/Physicslib4/GNS/Construction.lean b/Physicslib4/GNS/Construction.lean index f028b66..83999e5 100644 --- a/Physicslib4/GNS/Construction.lean +++ b/Physicslib4/GNS/Construction.lean @@ -34,13 +34,11 @@ spaces being compared live in different types). ## Notes -The Hilbert space `H` is existentially quantified in `Type` (rather than -`Type*`) to avoid the usual universe-polymorphism issues that arise when -existentially quantifying over a type variable. In practice the GNS Hilbert -space is constructed as a completion of a quotient of `A`, so this is not -a real restriction provided one is willing to work universe-polymorphically -in `A`'s universe; the precise universe placement is left to the eventual -proof. +The Hilbert space `H` is existentially quantified in `A`'s universe `u` +(`gns_construction.{u}`), rather than in a separate `Type*`, to avoid the +usual universe-polymorphism issues that arise when existentially quantifying +over a type variable: the GNS Hilbert space is constructed as a completion of +a quotient of `A`, so it lives there. -/ namespace Physicslib4 diff --git a/Physicslib4/GNS/PureStateExists.lean b/Physicslib4/GNS/PureStateExists.lean index a918a21..4133c3d 100644 --- a/Physicslib4/GNS/PureStateExists.lean +++ b/Physicslib4/GNS/PureStateExists.lean @@ -27,12 +27,10 @@ Krein-Milman. ## Note on pure-state existence Concluding the *existence of a pure state* by Krein-Milman needs -`LocallyConvexSpace ℝ (WeakDual ℂ A)`, which in turn requires the scalar-tower instance -`IsScalarTower ℝ ℂ (A →L[ℂ] ℂ)`; the latter does not resolve in the current Mathlib due to -a real/complex module diamond on the dual space. The extreme-point-to-state transfer also -needs weak-* coercion-algebra lemmas (`(t • φ + (1-t) • ψ) a = t • φ a + (1-t) • ψ a`) -which Mathlib does not provide for `WeakDual`. Both are recorded as follow-ups; the -compactness result below is the reusable substance. +`LocallyConvexSpace ℝ (WeakDual ℂ A)`, which Mathlib does not synthesize. The +extreme-point-to-state transfer also needs weak-* coercion-algebra lemmas +(`(t • φ + (1-t) • ψ) a = t • φ a + (1-t) • ψ a`) which Mathlib does not provide +for `WeakDual`. The compactness result below is the reusable substance. -/ namespace Physicslib4 diff --git a/Physicslib4/GNS/RadonNikodym.lean b/Physicslib4/GNS/RadonNikodym.lean index 6029816..9a53acb 100644 --- a/Physicslib4/GNS/RadonNikodym.lean +++ b/Physicslib4/GNS/RadonNikodym.lean @@ -9,7 +9,7 @@ import Mathlib.Analysis.InnerProductSpace.Dual import Mathlib.Analysis.Normed.Operator.Extend /-! -# Towards the GNS Radon-Nikodym correspondence +# Boundedness of the GNS Radon-Nikodym form For a state `ω` with cyclic GNS representation `(H, π, Ω)` and a positive linear functional `ψ` dominated by `ω` (`0 ≤ ψ(a* a) ≤ ω(a* a)`), the classical diff --git a/Physicslib4/GNS/Superselection.lean b/Physicslib4/GNS/Superselection.lean index e0535ed..27f8c4b 100644 --- a/Physicslib4/GNS/Superselection.lean +++ b/Physicslib4/GNS/Superselection.lean @@ -122,7 +122,7 @@ theorem UnitaryEquiv.not_areDisjoint [Nontrivial H₁] (h : UnitaryEquiv π₁ private lemma exists_smul_adjoint_comp_of_isIrreducible (h1 : IsIrreducible π₁) {S T : H₁ →L[ℂ] H₂} (hS : Intertwines π₁ π₂ S) (hT : Intertwines π₁ π₂ T) : ∃ z : ℂ, ∀ x : H₁, (ContinuousLinearMap.adjoint S) (T x) = z • x := by - -- (extracted by Fuse golfer) + obtain ⟨z, hz⟩ := h1 ((ContinuousLinearMap.adjoint S).comp T) (fun a => ContinuousLinearMap.ext fun x => ((hS.adjoint.comp hT) a x).symm) exact ⟨z, fun x => by simpa using DFunLike.congr_fun hz x⟩ diff --git a/Physicslib4/GNS/UnitaryRepresentation.lean b/Physicslib4/GNS/UnitaryRepresentation.lean index 8fec234..219b698 100644 --- a/Physicslib4/GNS/UnitaryRepresentation.lean +++ b/Physicslib4/GNS/UnitaryRepresentation.lean @@ -168,9 +168,10 @@ of `exists_gns_unitary_of_invariant`: the action enters as a group homomorphism `γ : G →* (A ≃⋆ₐ[ℂ] A)`, and the implementing unitaries are returned as a bundled group homomorphism `U : G →* (H ≃ₗᵢ[ℂ] H)` — a genuine unitary representation. -The group laws `U (g' * g) = U g' * U g` and `U 1 = 1` are now carried by `U` -itself (`map_mul`/`map_one`), so they no longer appear as separate hypotheses on -`γ` or clauses on `U`. What remains are the geometric clauses: the reproducing +The group laws `U (g' * g) = U g' * U g` and `U 1 = 1` are carried by `U` itself +(`map_mul`/`map_one`), so, unlike in `exists_gns_unitary_of_invariant`, they are +not separate hypotheses on `γ` or clauses on `U`. What remains are the geometric +clauses: the reproducing formula, the implementation `U g (π a Ω) = π (γ g a) Ω`, vacuum invariance `U g Ω = Ω`, operator covariance, and cyclicity. Both group structures use the composition convention `f * g = g.trans f` (`StarAlgEquiv.aut`, diff --git a/Physicslib4/Spacetime/Basic.lean b/Physicslib4/Spacetime/Basic.lean index a09df6e..1025460 100644 --- a/Physicslib4/Spacetime/Basic.lean +++ b/Physicslib4/Spacetime/Basic.lean @@ -32,10 +32,9 @@ blueprint, section 10.5. ## Modelling notes -Mathlib (at `v4.31.0-rc1`) does not provide a packaged "Lorentzian manifold" -or "pseudo-Riemannian metric" type. The closest thing — `PseudoRiemannianMetric` -— lives in the downstream `PhysLean` library, which is not a dependency of -this project. We therefore unbundle the definition into Mathlib primitives: +Mathlib provides Riemannian metrics (`Bundle.ContMDiffRiemannianMetric`) but no +Lorentzian or pseudo-Riemannian metric type, so the definition is unbundled +into Mathlib primitives: * the underlying manifold is presented as a `Type*` `M` equipped with a `TopologicalSpace`, `T2Space` (Hausdorff), `ConnectedSpace`, `ChartedSpace` @@ -45,6 +44,10 @@ this project. We therefore unbundle the definition into Mathlib primitives: `TₓM →L[ℝ] TₓM →L[ℝ] ℝ`, packaged together with symmetry, non-degeneracy, smoothness, and the Lorentzian condition at every point. +`Physicslib4.Geometry.PseudoRiemannianMetric` is derived from a `Spacetime` by +`Spacetime.toPseudoRiemannianMetric`, giving access to the general +pseudo-Riemannian API (the musical isomorphisms, the Levi-Civita connection). + The smoothness of `g` is stated in Mathlib's bundle-section idiom (`ContMDiff` of `g` as a section of the bundle of bilinear forms on the tangent bundle; see the `contMDiff` field), not chart by chart. The @@ -167,9 +170,9 @@ structure Spacetime where The payoff is that this is the form Mathlib's bundle API speaks natively: in particular `ContMDiff.clm_bundle_apply₂` then gives smoothness of `x ↦ g x (V x) (W x)` for smooth vector fields `V, W`, which is what causal - and geodesic arguments need. The previous chart-local `ContDiffWithinAt` - formulation had no route to it, since Mathlib provides no lemma bridging the - two forms in either direction. -/ + and geodesic arguments need. A chart-local `ContDiffWithinAt` formulation + would have no route to it, since Mathlib provides no lemma bridging the two + forms in either direction. -/ contMDiff : ContMDiff model (model.prod 𝓘(ℝ, SpacetimeModel →L[ℝ] SpacetimeModel →L[ℝ] ℝ)) ∞ (fun x ↦ Bundle.TotalSpace.mk' diff --git a/Physicslib4/Spacetime/CausalStructure.lean b/Physicslib4/Spacetime/CausalStructure.lean index f363b9a..14ee55f 100644 --- a/Physicslib4/Spacetime/CausalStructure.lean +++ b/Physicslib4/Spacetime/CausalStructure.lean @@ -26,8 +26,8 @@ following section 10.5 of the AQFT-in-Lean blueprint. ## Modelling notes -Mathlib does not currently package "smooth vector field" as a single named type. -We use the obvious unbundled form: a function `t : ∀ x, TangentSpace M.model x` +Mathlib has no single named type for smooth vector fields. We use the obvious +unbundled form: a function `t : ∀ x, TangentSpace M.model x` together with two pointwise predicates (non-vanishing and timelike) and an unbundled smoothness statement carried as a `Prop` field. Smoothness of a section of the tangent bundle is captured exactly as in `Spacetime.contMDiff`: @@ -169,8 +169,8 @@ structure TimeOrientation where This is the form Mathlib's bundle API speaks natively: it is literally the left-hand side of `Bundle.contMDiffAt_section`, and it is the shape required by `ContMDiff.mpullback_vectorField` (whose `hV` hypothesis is a bundle-section - statement) and consumed by `ContMDiff.clm_bundle_apply₂`. The previous - chart-local double-`mfderiv` formulation required a hand-built bridge in both + statement) and consumed by `ContMDiff.clm_bundle_apply₂`. A chart-local + double-`mfderiv` formulation would need a hand-built bridge in both directions, since Mathlib relates `tangentCoordChange` to neither. -/ smooth : ContMDiff M.model M.model.tangent ∞ (fun x ↦ Bundle.TotalSpace.mk' SpacetimeModel diff --git a/Physicslib4/Spacetime/IsometryCausality.lean b/Physicslib4/Spacetime/IsometryCausality.lean index 8198c89..160cdc8 100644 --- a/Physicslib4/Spacetime/IsometryCausality.lean +++ b/Physicslib4/Spacetime/IsometryCausality.lean @@ -16,17 +16,27 @@ import Mathlib.Geometry.Manifold.MFDeriv.FDeriv /-! # Isometries and the causal structure of curves -This file begins the basis-set-preservation chain for Axiom 5 -(`def:isometric-covariance-in-curved-spacetime`): an isometry should carry -trips to trips, hence chronological precedence forward, hence chronological -futures forward. +This file proves basis-set preservation for Axiom 5 +(`def:isometric-covariance-in-curved-spacetime`): a future-orientation- +preserving isometry `g` carries trips to trips, hence chronological +precedence, chronological futures and pasts, and Alexandrov diamonds, to +their images. -The first step is the **pushforward of a smooth path** `g ∘ μ` under an -isometry `g`, together with the chain-rule description of its tangent vector. +The construction starts from the **pushforward of a smooth path** `g ∘ μ` +under an isometry `g`, together with the chain-rule description of its +tangent vector, and builds up through geodesics, chronological futures and +pasts, and Alexandrov diamonds to `alexandrovBasis_image` and `isBasisSet_smul`. -## Main definitions +## Main definitions / results * `Physicslib4.Spacetime.Isometry.pushforwardPath`. +* `Physicslib4.Spacetime.Isometry.orientedIdentityComponent`: the subgroup of + isometries that preserve a time orientation and lie in the identity + component. +* `Physicslib4.Spacetime.Isometry.alexandrovBasis_image`: an isometry carries + Alexandrov diamonds to Alexandrov diamonds. +* `Physicslib4.Spacetime.LorentzianSpacetime.isBasisSet_smul`: basis-set + preservation under the action of `orientedIdentityComponent`. -/ open scoped Pointwise ContDiff @@ -121,9 +131,9 @@ A general isometry preserves the metric and hence the timelike/null/spacelike classification, but it need not preserve the chosen time orientation `t`. We isolate the property that it preserves *future-pointing-ness* and show that, under this hypothesis, the pushforward carries trips to trips and therefore -chronological precedence forward. The remaining step toward Axiom 5 is to show -that identity-component isometries satisfy this property (a connectedness -argument), which is recorded as future work. -/ +chronological precedence forward. Whether every identity-component isometry +has this property is not decided here; `orientedIdentityComponent` includes +it as a condition. -/ /-- An isometry `g` *preserves the future orientation* `t` if its differential sends future-pointing tangent vectors to future-pointing tangent vectors. -/ @@ -190,9 +200,9 @@ noncomputable def futureOrientationPreserving (M : Spacetime) (t : M.TimeOrienta /-- The **oriented identity component**: the identity-component isometries that also preserve the future orientation. This folds orientation-preservation into -the identity-component group of Axiom 5, sidestepping the (unprovable with the -current C⁰ topology) statement that every identity-component isometry preserves -orientation. -/ +the identity-component group of Axiom 5, sidestepping the statement that every +identity-component isometry preserves orientation, which the C⁰ topology used +here does not give. -/ noncomputable def orientedIdentityComponent (M : Spacetime) (t : M.TimeOrientation) : Subgroup (Isometry M) := Isometry.identityComponent M ⊓ futureOrientationPreserving M t @@ -451,7 +461,7 @@ theorem alexandrovBasis_image_of_mem (g : Isometry M) (t : M.TimeOrientation) /-- **Basis-set preservation for the oriented identity component.** Every isometry in the oriented identity component carries Alexandrov-basis sets to Alexandrov-basis sets - the geometric input behind Axiom 5's action -`𝔘(𝐁) → 𝔘(φ(𝐁))`, now unconditional. -/ +`𝔘(𝐁) → 𝔘(φ(𝐁))`, with no further hypothesis. -/ theorem alexandrovBasis_image_of_mem_orientedIdentityComponent (g : Isometry M) (t : M.TimeOrientation) (hg : g ∈ orientedIdentityComponent M t) {B : Set M.Carrier} (hB : B ∈ alexandrovBasis M t) : diff --git a/Physicslib4/Spacetime/LorentzCone.lean b/Physicslib4/Spacetime/LorentzCone.lean index ecc68c0..f71d310 100644 --- a/Physicslib4/Spacetime/LorentzCone.lean +++ b/Physicslib4/Spacetime/LorentzCone.lean @@ -31,11 +31,10 @@ specialisations. ## Modelling note The alignment hypothesis `g v w ≤ 0` encodes "`v` and `w` lie in the same time -cone". For two future-pointing timelike vectors this sign holds, but proving it -from the future-pointing condition alone requires the positive-definiteness of -the spacelike complement (a signature/inertia argument), which is not available -from the pointwise `LorentzianAt` data; we therefore take the sign as an -explicit hypothesis. +cone". For two timelike vectors future-pointing with respect to a common +timelike vector `t` this sign holds (`bilin_neg_of_inner_t_neg`, in +`LorentzOrthogonal.lean`); the lemmas here take the sign as an explicit +hypothesis so that they need no time orientation. -/ namespace Physicslib4 diff --git a/Physicslib4/Spacetime/Minkowski.lean b/Physicslib4/Spacetime/Minkowski.lean index 197d28b..f18fac8 100644 --- a/Physicslib4/Spacetime/Minkowski.lean +++ b/Physicslib4/Spacetime/Minkowski.lean @@ -274,7 +274,7 @@ theorem isOrthochronous_refl : /-- Cauchy–Schwarz for the three-dimensional spatial parts, proved from the Lagrange identity. -/ -private lemma cauchySchwarz_sq_three (a₁ a₂ a₃ b₁ b₂ b₃ : ℝ) : -- (extracted by Fuse golfer) +private lemma cauchySchwarz_sq_three (a₁ a₂ a₃ b₁ b₂ b₃ : ℝ) : (a₁ * b₁ + a₂ * b₂ + a₃ * b₃) ^ 2 ≤ (a₁ ^ 2 + a₂ ^ 2 + a₃ ^ 2) * (b₁ ^ 2 + b₂ ^ 2 + b₃ ^ 2) := by have hL : (a₁ ^ 2 + a₂ ^ 2 + a₃ ^ 2) * (b₁ ^ 2 + b₂ ^ 2 + b₃ ^ 2) @@ -287,7 +287,7 @@ private lemma cauchySchwarz_sq_three (a₁ a₂ a₃ b₁ b₂ b₃ : ℝ) : -- /-- Reverse Cauchy–Schwarz in coordinates: if `(a, p, q, r)` and `(b, p', q', r')` are unit timelike vectors of `ℝ^{1,3}` whose Minkowski product is negative, then their time components `a` and `b` have the same sign. -/ -private lemma pos_of_reverse_cauchySchwarz -- (extracted by Fuse golfer) +private lemma pos_of_reverse_cauchySchwarz {a b p q r p' q' r' : ℝ} (hv : -a * a + p * p + q * q + r * r = -1) (hw : -b * b + p' * p' + q' * q' + r' * r' = -1) @@ -878,7 +878,7 @@ theorem standardMinkowskiLineSegmentPath_isGeodesic (p q : SpacetimeModel) (hpq exact standardMinkowskiLineSegmentPath_mfderivWithin p q t ht /-! -### Forward direction: scaffolding for `chronologicalFuture ⊆ minkowskiForwardCone` +### Forward direction: `chronologicalFuture ⊆ minkowskiForwardCone` The forward subset of `chronologicalFuture_standardMinkowski` says: if there is a chronological trip from `p` to `q` on standard Minkowski spacetime, then @@ -1302,13 +1302,13 @@ theorem standardMinkowski_trip_displacement_eq_intervalIntegral continuous linear endomorphism zeroing the time coordinate and fixing the three spatial ones. -/ private noncomputable def spatialProj : - SpacetimeModel →L[ℝ] SpacetimeModel := -- (extracted by Fuse golfer) + SpacetimeModel →L[ℝ] SpacetimeModel := ContinuousLinearMap.id ℝ SpacetimeModel - (EuclideanSpace.proj (0 : Fin 4)).smulRight (EuclideanSpace.single (0 : Fin 4) (1 : ℝ)) private theorem spatialProj_apply (v : SpacetimeModel) (i : Fin 4) : - spatialProj v i = if i = 0 then 0 else v i := by -- (extracted by Fuse golfer) + spatialProj v i = if i = 0 then 0 else v i := by have hpt : spatialProj v i = v i - v 0 * (EuclideanSpace.single (0 : Fin 4) (1 : ℝ)) i := rfl rw [hpt, PiLp.single_apply] @@ -1319,14 +1319,13 @@ private theorem spatialProj_apply (v : SpacetimeModel) (i : Fin 4) : /-- The squared norm of the spatial part of `v` is `(v 1)² + (v 2)² + (v 3)²`. -/ private theorem norm_spatialProj_sq (v : SpacetimeModel) : ‖spatialProj v‖ ^ 2 = (v 1) ^ 2 + (v 2) ^ 2 + (v 3) ^ 2 := by - -- (extracted by Fuse golfer) rw [EuclideanSpace.real_norm_sq_eq] simp [Fin.sum_univ_four, spatialProj_apply] /-- **The open forward cone at the origin is the "spatial norm < time" region.** `v ∈ minkowskiForwardCone 0` exactly when `‖spatial part of v‖ < v 0`. -/ private theorem mem_minkowskiForwardCone_zero_iff_norm_spatialProj_lt - (v : SpacetimeModel) : -- (extracted by Fuse golfer) + (v : SpacetimeModel) : v ∈ minkowskiForwardCone (0 : SpacetimeModel) ↔ ‖spatialProj v‖ < v 0 := by have hz : ∀ i : Fin 4, (0 : SpacetimeModel) i = (0 : ℝ) := fun _ => rfl constructor @@ -1425,7 +1424,7 @@ theorem segmentPrecedes_mem_minkowskiForwardCone {p q : SpacetimeModel} /-- The open forward light cone of `ℝ^{1,3}` is closed under addition, in coordinates: the sum of two future-pointing timelike vectors is again future-pointing and timelike. -/ -private lemma minkowskiCone_add -- (extracted by Fuse golfer) +private lemma minkowskiCone_add {a₀ a₁ a₂ a₃ b₀ b₁ b₂ b₃ : ℝ} (ha : 0 < a₀) (hb : 0 < b₀) (ha' : -a₀ ^ 2 + a₁ ^ 2 + a₂ ^ 2 + a₃ ^ 2 < 0) (hb' : -b₀ ^ 2 + b₁ ^ 2 + b₂ ^ 2 + b₃ ^ 2 < 0) : diff --git a/Physicslib4/Spacetime/MinkowskiDirected.lean b/Physicslib4/Spacetime/MinkowskiDirected.lean index 4ab26da..98dc8af 100644 --- a/Physicslib4/Spacetime/MinkowskiDirected.lean +++ b/Physicslib4/Spacetime/MinkowskiDirected.lean @@ -78,18 +78,17 @@ private theorem single_time_apply (c : ℝ) : /-- Nonnegativity of a three-term sum of squares (the spatial part of a displacement). -/ private theorem sq3_nonneg (a b c : ℝ) : 0 ≤ a ^ 2 + b ^ 2 + c ^ 2 := by - positivity -- (extracted by Fuse golfer) + positivity /-- If `u + v < R ^ 2` with `0 ≤ v` and `0 < R ≤ D`, then `u < D ^ 2`. -/ private theorem lt_sq_of_add_lt_sq {u v R D : ℝ} (hv : 0 ≤ v) (h : u + v < R ^ 2) - (hR : 0 < R) (hD : R ≤ D) : u < D ^ 2 := by -- (extracted by Fuse golfer) + (hR : 0 < R) (hD : R ≤ D) : u < D ^ 2 := by linarith only [hv, h, mul_self_le_mul_self hR.le hD] /-- Two nonnegative "spatial radii" are both dominated by the squared time separation from a single sufficiently early time. -/ private theorem exists_time_shift_lt {a₁ a₂ s₁ s₂ : ℝ} (h₁ : 0 ≤ s₁) (h₂ : 0 ≤ s₂) : ∃ t : ℝ, t < a₁ ∧ t < a₂ ∧ s₁ < (a₁ - t) ^ 2 ∧ s₂ < (a₂ - t) ^ 2 := by - -- (extracted by Fuse golfer) obtain ⟨R, hR, hRsq⟩ : ∃ R : ℝ, 0 < R ∧ s₁ + s₂ < R ^ 2 := ⟨Real.sqrt (s₁ + s₂) + 1, by linarith only [Real.sqrt_nonneg (s₁ + s₂)], by linarith only [Real.sq_sqrt (by linarith only [h₁, h₂] : (0 : ℝ) ≤ s₁ + s₂), @@ -103,7 +102,6 @@ private theorem exists_time_shift_lt {a₁ a₂ s₁ s₂ : ℝ} (h₁ : 0 ≤ s /-- Time-reversed form of `exists_time_shift_lt`: a single sufficiently late time. -/ private theorem exists_time_shift_gt {a₁ a₂ s₁ s₂ : ℝ} (h₁ : 0 ≤ s₁) (h₂ : 0 ≤ s₂) : ∃ t : ℝ, a₁ < t ∧ a₂ < t ∧ s₁ < (t - a₁) ^ 2 ∧ s₂ < (t - a₂) ^ 2 := by - -- (extracted by Fuse golfer) obtain ⟨t, ht₁, ht₂, hc₁, hc₂⟩ := exists_time_shift_lt (a₁ := -a₁) (a₂ := -a₂) h₁ h₂ refine ⟨-t, by linarith only [ht₁], by linarith only [ht₂], ?_, ?_⟩ · rw [show -t - a₁ = -a₁ - t from by ring]; exact hc₁ @@ -175,7 +173,6 @@ private theorem sub_single_time_apply (x : SpacetimeModel) (c : ℝ) : (x - EuclideanSpace.single (0 : Fin 4) c) 1 = x 1 ∧ (x - EuclideanSpace.single (0 : Fin 4) c) 2 = x 2 ∧ (x - EuclideanSpace.single (0 : Fin 4) c) 3 = x 3 := by - -- (extracted by Fuse golfer) obtain ⟨e0, e1, e2, e3⟩ := single_time_apply c exact ⟨by rw [PiLp.sub_apply, e0], by rw [PiLp.sub_apply, e1, sub_zero], by rw [PiLp.sub_apply, e2, sub_zero], by rw [PiLp.sub_apply, e3, sub_zero]⟩ @@ -186,7 +183,6 @@ private theorem add_single_time_apply (x : SpacetimeModel) (c : ℝ) : (x + EuclideanSpace.single (0 : Fin 4) c) 1 = x 1 ∧ (x + EuclideanSpace.single (0 : Fin 4) c) 2 = x 2 ∧ (x + EuclideanSpace.single (0 : Fin 4) c) 3 = x 3 := by - -- (extracted by Fuse golfer) obtain ⟨e0, e1, e2, e3⟩ := single_time_apply c exact ⟨by rw [PiLp.add_apply, e0], by rw [PiLp.add_apply, e1, add_zero], by rw [PiLp.add_apply, e2, add_zero], by rw [PiLp.add_apply, e3, add_zero]⟩ @@ -195,7 +191,6 @@ private theorem add_single_time_apply (x : SpacetimeModel) (c : ℝ) : and the strict inequality `S < T ^ 2` survives replacing `T` by `T - ε`. -/ private theorem lt_and_lt_sub_sq_of_le_div {T S ε : ℝ} (hT : 0 < T) (hS : 0 ≤ S) (hε : 0 < ε) (hle : ε ≤ (T ^ 2 - S) / (2 * T)) : ε < T ∧ S < (T - ε) ^ 2 := by - -- (extracted by Fuse golfer) have h2T : (0 : ℝ) < 2 * T := by linarith only [hT] have hmul : 2 * T * ε ≤ T ^ 2 - S := calc 2 * T * ε ≤ 2 * T * ((T ^ 2 - S) / (2 * T)) := @@ -208,7 +203,6 @@ private theorem lt_and_lt_sub_sq_of_le_div {T S ε : ℝ} (hT : 0 < T) (hS : 0 private theorem exists_eps_shrink {T₁ T₂ S₁ S₂ : ℝ} (hT₁ : 0 < T₁) (hT₂ : 0 < T₂) (hS₁ : 0 ≤ S₁) (hS₂ : 0 ≤ S₂) (h₁ : S₁ < T₁ ^ 2) (h₂ : S₂ < T₂ ^ 2) : ∃ ε : ℝ, 0 < ε ∧ ε < T₁ ∧ ε < T₂ ∧ S₁ < (T₁ - ε) ^ 2 ∧ S₂ < (T₂ - ε) ^ 2 := by - -- (extracted by Fuse golfer) have hpos : 0 < min ((T₁ ^ 2 - S₁) / (2 * T₁)) ((T₂ ^ 2 - S₂) / (2 * T₂)) := lt_min (div_pos (by linarith only [h₁]) (by linarith only [hT₁])) (div_pos (by linarith only [h₂]) (by linarith only [hT₂])) diff --git a/Physicslib4/Spacetime/Pullback.lean b/Physicslib4/Spacetime/Pullback.lean index 4f73699..0e56aa5 100644 --- a/Physicslib4/Spacetime/Pullback.lean +++ b/Physicslib4/Spacetime/Pullback.lean @@ -160,9 +160,8 @@ set_option maxHeartbeats 1000000 in (`lmm:pullback-metric-smooth-in-charts`). The `contMDiff` field of `def:spacetime` for `ψ^*g`, at the same regularity -index `∞` as `Spacetime.contMDiff` itself. The label name is historical: the -statement is entirely in the bundle-section idiom and nothing chart-local -remains. +index `∞` as `Spacetime.contMDiff` itself. Despite the label name, the +statement is entirely in the bundle-section idiom and involves no charts. -/ theorem pullbackVal_contMDiff (M : Spacetime) (ψ : Diffeo M M) : ContMDiff M.model diff --git a/README.md b/README.md index 51b69e7..e4736b4 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ This project works towards a formal resolution of **Hilbert's 6th problem** — Hilbert's 6th problem calls for a rigorous mathematical treatment of the axioms underlying physical theories, analogous to what Euclidean geometry received from Hilbert's own *Grundlagen der Geometrie*. Modern physics has produced candidate axiom systems — operator-algebraic frameworks for quantum mechanics and quantum field theory chief among them — but these have never been subjected to the kind of machine-checked formal scrutiny that Lean makes possible. This project aims to change that. -## Current Focus: AQFT in Minkowski and Lorentzian Spacetime +## AQFT in Minkowski and Lorentzian Spacetime -The current work formalises **Algebraic Quantum Field Theory (AQFT)**, specifically a sharpened version of the [Haag–Kastler axioms (1964)](https://doi.org/10.1063/1.1704187), in both Minkowski and curved (Lorentzian) spacetime. This covers: +physicslib4 formalises **Algebraic Quantum Field Theory (AQFT)**, specifically a sharpened version of the [Haag–Kastler axioms (1964)](https://doi.org/10.1063/1.1704187), in both Minkowski and curved (Lorentzian) spacetime. This covers: - The GNS construction and its role in representing states on C\*-algebras. - Causal structure: Minkowski and Lorentzian spacetimes, timelike/spacelike/null vectors, chronological and causal futures and pasts, the Alexandrov topology. @@ -47,7 +47,7 @@ Contributions in any of these directions are welcome. ## Getting Started -Requires [Lean 4](https://leanprover-community.github.io/get_started.html) and [Mathlib4](https://github.com/leanprover-community/mathlib4). +Requires [Lean 4](https://leanprover-community.github.io/get_started.html) and [Mathlib4](https://github.com/leanprover-community/mathlib4), both at v4.34.1, as pinned by `lean-toolchain` and `lakefile.toml`. ```bash git clone https://github.com/physicslib/physicslib4.git @@ -58,9 +58,9 @@ lake build # build the project ## Contributing -Contributions are welcome. The blueprint is the canonical guide to what has been stated, what has been proved, and what remains open. +Contributions are welcome. The blueprint is the canonical guide to what is stated and what is proved. -1. Consult the [blueprint](https://physicslib.github.io/physicslib4/blueprint/) and [dependency graph](https://physicslib.github.io/physicslib4/blueprint/dep_graph_document.html) to find items not yet linked to Lean proofs. +1. Consult the [blueprint](https://physicslib.github.io/physicslib4/blueprint/) and [dependency graph](https://physicslib.github.io/physicslib4/blueprint/dep_graph_document.html) to see how each item is linked to its Lean declarations. 2. Create a new branch and open a pull request against `main`. 3. PRs must pass all status checks, be approved by a reviewer, and have no conflicts with the base branch before merging. @@ -70,4 +70,4 @@ We are grateful to Rudolf Haag and Daniel Kastler for their foundational work, a --- -Maintained by [Kelly J Davis](https://github.com/kellyjdavis). Started June 2026. +Maintained by [Kelly J Davis](https://github.com/kellyjdavis). diff --git a/blueprint/src/sections/sec10/general-covariance-in-curved-spacetime.tex b/blueprint/src/sections/sec10/general-covariance-in-curved-spacetime.tex index 2fa6652..e8676c0 100644 --- a/blueprint/src/sections/sec10/general-covariance-in-curved-spacetime.tex +++ b/blueprint/src/sections/sec10/general-covariance-in-curved-spacetime.tex @@ -35,7 +35,7 @@ \section{General Covariance: Nets on Pullback-Related Metrics}\label{sctn:genera \textbf{$\Theta$ must be data, and the $\iota_i$ come for free.} The family $\Theta$ has to be data rather than a bare existence statement, since the commuting square refers to the chosen maps. The vertical arrows must likewise be \emph{chosen} embeddings and not mere existence witnesses --- but no extra hypothesis is needed to obtain them: Axiom 2 (\ref{def:isotony-in-curved-spacetime}) supplies the isotony family as chosen data, together with its injectivity, for every inclusion of basis sets, and \textbf{we adopt that convention} rather than have the equivalence carry a supplied family of embeddings in the style of Axiom 5 (\ref{def:isometric-covariance-in-curved-spacetime}). - Note also that naturality needs \emph{no} composition or compatibility hypothesis: it is one square attached to a single inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2$ and never composes two embeddings. That observation still stands, but its justification has changed. It previously mattered because the embeddings were witnesses chosen inside Axiom 3, which carried no composition law, so coherence had to be assumed wherever a three-fold inclusion was factored --- as in \ref{thrm:von-neumann-isotony-in-curved-spacetime}. Axiom 2 now carries the identity and composition laws itself, so that coherence holds for every net and nothing has to be assumed anywhere; the point here is simply that this square would not have needed it in any case. + Note also that naturality needs \emph{no} composition or compatibility hypothesis: it is one square attached to a single inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2$ and never composes two embeddings. Axiom 2 carries the identity and composition laws itself, so coherence holds for every net; this square does not need them in any case. \end{definition} \begin{definition}[General Covariance] diff --git a/blueprint/src/sections/sec10/gns-construction-details.tex b/blueprint/src/sections/sec10/gns-construction-details.tex index 4a1062c..2ca3d55 100644 --- a/blueprint/src/sections/sec10/gns-construction-details.tex +++ b/blueprint/src/sections/sec10/gns-construction-details.tex @@ -503,4 +503,4 @@ \subsection{Summary} \end{align} The triple $(\mathcal{H}_\omega, \pi_\omega, \Omega)$ is called the \textit{GNS triple} associated to $(\mathfrak{U}, \omega)$, or the \textit{cyclic representation} of $(\mathfrak{U}, \omega)$. If $\omega$ is faithful then so is $\pi_\omega$, and the GNS triple is unique up to unitary equivalence. -\noindent The reason we provided such detail is that we will have need not only of the theorem, but also of the details of the theorem's proof in subsequent blog posts. +\noindent The proof is given in full because later parts of this blueprint use not only the theorem but also its construction: for example, the unitary implementation of an invariant state (\ref{thrm:invariant-state-gns-unitary}) extends the densely defined isometry $\pi_\omega(a)\Omega \mapsto \pi_\omega(\beta_L a)\Omega$ to all of $\mathcal{H}_\omega$, just as the uniqueness argument above extends $U$ from the dense set $\pi_\omega(\mathfrak{U})\Omega$. diff --git a/blueprint/src/sections/sec10/haag-kastler-axioms-in-curved-spacetime.tex b/blueprint/src/sections/sec10/haag-kastler-axioms-in-curved-spacetime.tex index c663f72..a5a10fc 100644 --- a/blueprint/src/sections/sec10/haag-kastler-axioms-in-curved-spacetime.tex +++ b/blueprint/src/sections/sec10/haag-kastler-axioms-in-curved-spacetime.tex @@ -40,9 +40,9 @@ \section{Haag Kastler Axioms in Curved Spacetime}\label{sctn:haag-kastler-axioms \item[(b)] \emph{identity}: $i_{\mathbf{B}\mathbf{B}} = \mathrm{id}_{\mathfrak{U}(\mathbf{B})}$ for every basis set $\mathbf{B}$; \item[(c)] \emph{composition}: $i_{\mathbf{B}_2\mathbf{B}_3} \circ i_{\mathbf{B}_1\mathbf{B}_2} = i_{\mathbf{B}_1\mathbf{B}_3}$ whenever $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}_3$, \end{itemize} - so that $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ is a functor on the inclusion order of basis sets. The hypothesis is the non-strict inclusion, matching the formalisation, which quantifies over \texttt{B\ensuremath{_1} \ensuremath{\subseteq} B\ensuremath{_2}}; the earlier $\subset$ was a divergence from the Lean, and the reflexive case is what makes (b) expressible at all. + so that $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ is a functor on the inclusion order of basis sets. The hypothesis is the non-strict inclusion, matching the formalisation, which quantifies over \texttt{B\ensuremath{_1} \ensuremath{\subseteq} B\ensuremath{_2}}; the reflexive case is what makes (b) expressible. - The curved case is where this matters most. There is no quasilocal algebra here, so every statement about nested regions is phrased inside a common containing algebra $\mathfrak{U}(\mathbf{B})$ and has to factor a three-fold inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$. Before this amendment the isotony embeddings actually used downstream were the witnesses chosen inside Axiom 3, which carried no composition law, so that factorisation had to be assumed separately at each site. With (c) part of Axiom 2, and Axiom 3 consuming this family rather than choosing its own (\ref{def:local-commutativity-in-curved-spacetime}), the factorisation holds for every net and those hypotheses are gone. + \emph{Design note.} The curved case has no quasilocal algebra, so every statement about nested regions is phrased inside a common containing algebra $\mathfrak{U}(\mathbf{B})$ and factors a three-fold inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$. Law (c) makes that factorisation hold for every net, and Axiom 3 uses this family rather than choosing its own (\ref{def:local-commutativity-in-curved-spacetime}), so no result assumes the factorisation separately. \end{definition} The next axiom can be stated as follows: @@ -63,7 +63,7 @@ \section{Haag Kastler Axioms in Curved Spacetime}\label{sctn:haag-kastler-axioms If no such $\mathbf{B}$ exists, then it simply doesn't make sense to consider if $\mathfrak{U}(\mathbf{B_1})$ and $\mathfrak{U}(\mathbf{B_2})$ commute as they are not in the same algebra. - This axiom now asserts \emph{only} the commutation condition. It previously introduced its own family of isotony embeddings existentially, together with their injectivity, and it was those chosen witnesses --- not the Axiom 2 maps --- that every downstream result actually used. Since they carried no composition law, each consumer that had to factor a three-fold inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$ was forced to assume coherence separately. The family and its injectivity now belong to Axiom 2 (\ref{def:isotony-in-curved-spacetime}), which supplies the identity and composition laws as well, and this axiom simply consumes it; the separate coherence hypotheses are consequently removed throughout this chapter. + This axiom asserts \emph{only} the commutation condition. The isotony family, its injectivity, and its identity and composition laws belong to Axiom 2 (\ref{def:isotony-in-curved-spacetime}); this axiom uses that family, so results that factor a three-fold inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$ need no separate coherence hypothesis. \end{definition} The next axiom has need of the following definition @@ -195,12 +195,12 @@ \subsection{Local von Neumann Algebras in Curved Spacetime} \lean{Physicslib4.AQFT.HaagKastlerCurved.HaagKastlerNet.localVonNeumann_mono} \leanfile{Physicslib4/AQFT/HaagKastlerCurved/LocalVonNeumann.lean} \leanok - For nested basis subregions $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$, the local von Neumann algebras are nested: $R(\mathbf{B}_1) \subseteq R(\mathbf{B}_2)$. No coherence hypothesis is needed. + For nested basis subregions $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$, the local von Neumann algebras are nested: $R(\mathbf{B}_1) \subseteq R(\mathbf{B}_2)$. \end{theorem} \begin{proof} \leanok \uses{def:local-von-neumann-in-curved-spacetime, def:isotony-in-curved-spacetime} - The local observables of $\mathbf{B}_1$ embed into those of $\mathbf{B}_2$ and the double commutant is monotone. The step that needs care is that the embedding $\mathfrak{U}(\mathbf{B}_1) \to \mathfrak{U}(\mathbf{B})$ factors through $\mathfrak{U}(\mathbf{B}_2)$, i.e.\ $i_{\mathbf{B}_1\mathbf{B}} = i_{\mathbf{B}_2\mathbf{B}} \circ i_{\mathbf{B}_1\mathbf{B}_2}$; that is now exactly the composition law (c) of Axiom 2 (\ref{def:isotony-in-curved-spacetime}). Formerly the isotony embeddings in play were the witnesses chosen inside Axiom 3, which had no composition law, so this factorisation had to be assumed as a separate hypothesis. + The local observables of $\mathbf{B}_1$ embed into those of $\mathbf{B}_2$ and the double commutant is monotone. The step that needs care is that the embedding $\mathfrak{U}(\mathbf{B}_1) \to \mathfrak{U}(\mathbf{B})$ factors through $\mathfrak{U}(\mathbf{B}_2)$, i.e.\ $i_{\mathbf{B}_1\mathbf{B}} = i_{\mathbf{B}_2\mathbf{B}} \circ i_{\mathbf{B}_1\mathbf{B}_2}$; that is exactly the composition law (c) of Axiom 2 (\ref{def:isotony-in-curved-spacetime}). \end{proof} \begin{theorem}[Bundled von Neumann Microcausality and Isotony (Curved Spacetime)] @@ -225,7 +225,7 @@ \subsection{Local von Neumann Algebras in Curved Spacetime} Order-preservation carries no side condition. The factorisation this rests on --- that the $\mathbf{B}_1 \hookrightarrow \mathbf{B}$ embedding factors through $\mathbf{B}_2$ for all nested $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$ --- is the composition law (c) of Axiom 2 (\ref{def:isotony-in-curved-spacetime}), so it holds for every net, including the trivial one. - This was previously supplied as an explicit \emph{coherence} hypothesis, on the grounds that it is a property of the net's chosen embeddings rather than of the spacetime and so cannot be discharged geometrically. That reasoning was correct, and it is precisely the argument for putting the law into the axiom rather than carrying it at each site: an axiom is where a requirement on chosen data belongs. With Axiom 2 owning the family and Axiom 3 consuming it (\ref{def:local-commutativity-in-curved-spacetime}), the hypothesis is redundant here and at every other site in this chapter. + \emph{Design note.} The factorisation is a property of the net's chosen embeddings, not of the spacetime, so it cannot be discharged geometrically. An axiom is where a requirement on chosen data belongs, which is why the law is part of Axiom 2, with Axiom 3 using the same family (\ref{def:local-commutativity-in-curved-spacetime}), rather than a hypothesis at each site. \end{definition} \begin{theorem}[Statistical Independence (Schlieder Property)] @@ -361,7 +361,7 @@ \subsection{Relative Commutants of Nested Local Algebras in Curved Spacetime} \begin{proof} \leanok \uses{def:relative-commutant-in-curved-spacetime, thrm:von-neumann-isotony-in-curved-spacetime} - Curved isotony (\ref{thrm:von-neumann-isotony-in-curved-spacetime}) gives $R(\mathbf{B}_1) \le R(\mathbf{B}_2)$, and antitonicity of the commutant yields $R(\mathbf{B}_2)' \subseteq R(\mathbf{B}_1)'$. The factorisation of the three-fold inclusion that curved isotony needs is supplied by the composition law of Axiom 2 (\ref{def:isotony-in-curved-spacetime}), so nothing further is assumed here. + Curved isotony (\ref{thrm:von-neumann-isotony-in-curved-spacetime}) gives $R(\mathbf{B}_1) \le R(\mathbf{B}_2)$, and antitonicity of the commutant yields $R(\mathbf{B}_2)' \subseteq R(\mathbf{B}_1)'$. The factorisation of the three-fold inclusion that curved isotony needs is the composition law of Axiom 2 (\ref{def:isotony-in-curved-spacetime}). \end{proof} \begin{definition}[Irreducible Inclusion (Curved Spacetime)] diff --git a/blueprint/src/sections/sec10/haag-kastler-axioms.tex b/blueprint/src/sections/sec10/haag-kastler-axioms.tex index f4f6faa..e8b09bc 100644 --- a/blueprint/src/sections/sec10/haag-kastler-axioms.tex +++ b/blueprint/src/sections/sec10/haag-kastler-axioms.tex @@ -40,9 +40,9 @@ \section{Haag Kastler Axioms}\label{sctn:haag-kastler-axioms} Two points about the shape of this axiom. First, the family must be \emph{chosen data} and not an existence statement: (b) and (c) are equations between the maps themselves, so there is nothing to state unless the maps are fixed. An axiom of the form ``for each inclusion there exists some monomorphism'' cannot express functoriality at all. - Second, the hypothesis is the \emph{non-strict} inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2$, matching the formalisation, which quantifies over \texttt{B\ensuremath{_1} \ensuremath{\subseteq} B\ensuremath{_2}}. Earlier versions of this statement wrote $\subset$; that was a divergence from the Lean, and the non-strict form is the correct one. It also matters mathematically: the reflexive case $\mathbf{B}_1 = \mathbf{B}_2$ is what makes (b) expressible, and the strict reading would leave the diagonal of the inclusion order outside the axiom altogether. + Second, the hypothesis is the \emph{non-strict} inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2$, matching the formalisation, which quantifies over \texttt{B\ensuremath{_1} \ensuremath{\subseteq} B\ensuremath{_2}}. This also matters mathematically: the reflexive case $\mathbf{B}_1 = \mathbf{B}_2$ is what makes (b) expressible, and the strict reading would leave the diagonal of the inclusion order outside the axiom altogether. - Conditions (b) and (c) are required rather than derived because they are properties of the net's \emph{chosen} embeddings, not of the spacetime: no geometric fact about Alexandrov diamonds constrains which monomorphism a net picks for a given inclusion, so coherence cannot be discharged after the fact and must be part of the axiom. Their payoff is that the assignment becomes a genuine directed system, which is what gives \ref{def:quasilocal-algebra} its algebra structure, and that consumers no longer have to carry coherence as a side hypothesis. + Conditions (b) and (c) are required rather than derived because they are properties of the net's \emph{chosen} embeddings, not of the spacetime: no geometric fact about Alexandrov diamonds constrains which monomorphism a net picks for a given inclusion, so coherence cannot be discharged after the fact and must be part of the axiom. Their payoff is that the assignment becomes a genuine directed system, which is what gives \ref{def:quasilocal-algebra} its algebra structure, and that no result about nested regions carries coherence as a side hypothesis. \end{definition} \subsection{The Quasilocal Colimit} @@ -209,7 +209,7 @@ \subsection{The Quasilocal Colimit} Two remarks on the shape of this hypothesis list. First, no isometry hypothesis is imposed on $\star_A$: $\|a^{*}\| = \|a\|$ follows from the C*-inequality, because \texttt{CStarRing.to\_normedStarGroup} produces the \texttt{NormedStarGroup A} instance from it. Second, \texttt{StarModule \ensuremath{\mathbb{C}} A} and \texttt{NormedAlgebra \ensuremath{\mathbb{C}} A} are listed explicitly because they are genuinely used downstream and are not consequences of the others: the \texttt{StarModule \ensuremath{\mathbb{C}} \ensuremath{\widehat{A}}} obligation of \ref{lmm:star-extends-to-completion} reduces, on the dense range of $\eta$, to \texttt{star\_smul} in $A$, which is exactly the \texttt{StarModule \ensuremath{\mathbb{C}} A} field, and \ref{lmm:completion-normed-algebra} needs an \texttt{Algebra \ensuremath{\mathbb{C}} A} to complete. Both are supplied for the colimit by \ref{lmm:quasilocal-union-normed-star-algebra}, so instantiating at the quasilocal case in \ref{lmm:quasilocal-completion-cstar} costs nothing extra. - \emph{Why this development exists at all.} There is no C*-completion construction anywhere in Mathlib: no enveloping C*-algebra, no universal C*-algebra of a $*$-algebra, no full or reduced group C*-algebra. This was confirmed by a sweep of all 44 files of \texttt{Analysis/CStarAlgebra/}. The single C*-norm construction present there is \texttt{Unitization}, and it is not a usable template, because it builds its norm from the left regular representation --- a fundamentally different technique from completing a given C*-norm. So the results of this subsection have to be proved rather than cited. The compensation, established by the same audit and recorded node by node below, is that each of them is short: the recurring move is \texttt{UniformSpace.Completion.induction\_on} together with \texttt{isClosed\_eq} or \texttt{isClosed\_le}, pushing the claim through \texttt{norm\_coe}, \texttt{coe\_mul}, \texttt{coe\_add} and \texttt{coe\_smul} to the corresponding law on $A$. + \emph{Why this development exists at all.} There is no C*-completion construction anywhere in Mathlib: no enveloping C*-algebra, no universal C*-algebra of a $*$-algebra, no full or reduced group C*-algebra. The single C*-norm construction present there is \texttt{Unitization}, and it is not a usable template, because it builds its norm from the left regular representation --- a fundamentally different technique from completing a given C*-norm. So the results of this subsection have to be proved rather than cited. Each of them is short: the recurring move is \texttt{UniformSpace.Completion.induction\_on} together with \texttt{isClosed\_eq} or \texttt{isClosed\_le}, pushing the claim through \texttt{norm\_coe}, \texttt{coe\_mul}, \texttt{coe\_add} and \texttt{coe\_smul} to the corresponding law on $A$. \end{definition} \begin{definition}[The Involution on a Completion] @@ -223,11 +223,11 @@ \subsection{The Quasilocal Colimit} \end{align} This is legitimate because $\star_A$ is an isometry --- which is not assumed but obtained from the C*-inequality on $A$ via \texttt{CStarRing.to\_normedStarGroup} --- hence uniformly continuous by \texttt{Isometry.uniformContinuous}, and \texttt{UniformSpace.Completion.map} lifts any uniformly continuous map to the completions. It is uniformly continuous, satisfies $\eta(a)^{*} = \eta(a^{*})$ by \texttt{UniformSpace.Completion.map\_coe}, and is the unique continuous map with that property by \texttt{UniformSpace.Completion.map\_unique}. - \emph{Why this is by hand, and only here.} For the \emph{completion} the involution really does have to be written down, and Mathlib supplies nothing to start from. An audit against the local Mathlib clone found \emph{zero} occurrences of \texttt{Star}, \texttt{InvolutiveStar} or \texttt{StarRing} on \texttt{UniformSpace.Completion}: the files checked were \texttt{Topology/Algebra/UniformRing.lean}, \texttt{Topology/UniformSpace/Completion.lean}, \texttt{Topology/Algebra/GroupCompletion.lean}, \texttt{Analysis/Normed/Group/Completion.lean} and all of \texttt{Algebra/Star/}. The ring and norm structure, by contrast, is free: the instance is \texttt{UniformSpace.Completion.instNormedRing}, an auto-generated but perfectly citable name for the anonymous \texttt{instance [SeminormedRing A] : NormedRing (Completion A)} of \texttt{Analysis/Normed/Module/Completion.lean:75}. Note its hypothesis: \texttt{SeminormedRing}, with \emph{no} commutativity. That is worth holding next to the trap recorded in \ref{lmm:completion-normed-algebra}, where the analogous \texttt{NormedAlgebra} instance in the same file \emph{is} commutativity-gated and therefore does not fire. So the involution and its axioms are the whole of what this node and \ref{lmm:star-extends-to-completion} have to build. This is in contrast to the colimit, where Mathlib's \texttt{DirectLimit} does supply \texttt{Star} and \texttt{StarRing} instances --- recorded at the start of this subsection --- and nothing has to be built at all. + \emph{Why this is by hand, and only here.} For the \emph{completion} the involution really does have to be written down, and Mathlib supplies nothing to start from. Mathlib provides no \texttt{Star}, \texttt{InvolutiveStar} or \texttt{StarRing} instance on \texttt{UniformSpace.Completion}. The ring and norm structure, by contrast, is free: the instance is \texttt{UniformSpace.Completion.instNormedRing}, an auto-generated but perfectly citable name for the anonymous \texttt{instance [SeminormedRing A] : NormedRing (Completion A)} in \texttt{Analysis/Normed/Module/Completion.lean}. Note its hypothesis: \texttt{SeminormedRing}, with \emph{no} commutativity. That is worth holding next to the trap recorded in \ref{lmm:completion-normed-algebra}, where the analogous \texttt{NormedAlgebra} instance in the same file \emph{is} commutativity-gated and therefore does not fire. So the involution and its axioms are the whole of what this node and \ref{lmm:star-extends-to-completion} have to build. This is in contrast to the colimit, where Mathlib's \texttt{DirectLimit} does supply \texttt{Star} and \texttt{StarRing} instances --- recorded at the start of this subsection --- and nothing has to be built at all. \emph{The right tool, and the wrong one.} The tool to use is \texttt{UniformSpace.Completion.map}, characterised on the canonical image by \texttt{UniformSpace.Completion.map\_coe} as above. What must \emph{not} be used is \texttt{UniformSpace.Completion.mapRingHom}, even though it looks like the natural fit: it transports a \emph{ring homomorphism} to the completions, and $\star$ is anti-multiplicative, not multiplicative, so it is not a ring homomorphism $A \to A$ and does not typecheck as input. If a bundled-morphism formulation is wanted anyway, the opposite-algebra dodge is available --- read $\star$ as a ring homomorphism $A \to A^{\mathrm{op}}$ --- and it is supported, since \texttt{MulOpposite} carries a \texttt{CStarAlgebra} instance (\texttt{MulOpposite.instCStarAlgebra}). That is an optional convenience, not a requirement: the unbundled \texttt{map} route above suffices. - \emph{Why the continuity side goals are free, recorded once for the whole block.} \texttt{UniformSpace.Completion.uniformContinuous\_map}, \texttt{UniformContinuous (Completion.map f)}, is \emph{unconditional} --- it needs no hypothesis on $f$ whatsoever, not even uniform continuity --- and it is tagged \texttt{@[fun\_prop]}, as is its corollary \texttt{UniformSpace.Completion.continuous\_map} (both in \texttt{Topology/UniformSpace/Completion.lean}, lines 480--486). Consequently every continuity side goal raised by an \texttt{isClosed\_eq} or \texttt{isClosed\_le} in this subsection --- and each of \ref{lmm:star-extends-to-completion} and \ref{lmm:completion-cstar-identity} raises at least one --- is discharged by \texttt{fun\_prop} in a single line. This is the fact that makes the four-lines-per-obligation estimate quoted throughout this block real rather than optimistic; Mathlib's own \texttt{norm\_mul\_le} field for the completion is written in exactly that style and is four lines long. + \emph{Why the continuity side goals are free, recorded once for the whole block.} \texttt{UniformSpace.Completion.uniformContinuous\_map}, \texttt{UniformContinuous (Completion.map f)}, is \emph{unconditional} --- it needs no hypothesis on $f$ whatsoever, not even uniform continuity --- and it is tagged \texttt{@[fun\_prop]}, as is its corollary \texttt{UniformSpace.Completion.continuous\_map} (both in \texttt{Topology/UniformSpace/Completion.lean}). Consequently every continuity side goal raised by an \texttt{isClosed\_eq} or \texttt{isClosed\_le} in this subsection --- and each of \ref{lmm:star-extends-to-completion} and \ref{lmm:completion-cstar-identity} raises at least one --- is discharged by \texttt{fun\_prop} in a single line. This is why each obligation in this block is about four lines; Mathlib's own \texttt{norm\_mul\_le} field for the completion is written in exactly that style and is four lines long. \end{definition} \begin{lemma}[The Involution Extends to the Completion] @@ -268,7 +268,7 @@ \subsection{The Quasilocal Colimit} \begin{proof} \leanok \uses{def:completion-standing-hypotheses, def:completion-star, lmm:star-extends-to-completion} - Every law needed is already available unbundled; the content of this node is that the \emph{bundling} has to be done by hand, and it is worth a node precisely so that the fact is not mistaken for a citation. Mathlib supplies the coercion only as a \emph{ring} homomorphism, \texttt{UniformSpace.Completion.coeRingHom}; there is no \texttt{coeStarAlgHom}, and no algebra-homomorphism counterpart either, anywhere in the completion files audited in \ref{def:completion-standing-hypotheses}. So \texttt{map\_one}, \texttt{map\_mul}, \texttt{map\_add} come from \texttt{coeRingHom}, and the two remaining fields are supplied individually. The first is the \texttt{AlgHom} field, and its name matters: \texttt{StarAlgHom \ensuremath{\mathbb{C}}} extends \texttt{AlgHom}, whose scalar field is \texttt{commutes'} --- agreement of the map with the two \texttt{algebraMap}s --- and \emph{not} \texttt{map\_smul}. It discharges essentially by \texttt{rfl} from the definition of \texttt{UniformSpace.Completion.algebra}, whose \texttt{smul\_def'} field already characterises the scalar action through $\eta \circ \texttt{algebraMap}$; the unbundled coercion law $c \cdot \eta(a) = \eta(c \cdot a)$, \texttt{UniformSpace.Completion.coe\_smul}, is what backs it if the \texttt{rfl} does not fire. The second is \texttt{map\_star}, which is the characterisation $\eta(a)^{*} = \eta(a^{*})$ of \ref{def:completion-star}, which \ref{lmm:star-extends-to-completion} records as part of making $\eta$ a $*$-homomorphism. Assembling those five fields into a \texttt{StarAlgHom} is a single anonymous-constructor term. + Every law needed is already available unbundled; the content of this node is that the \emph{bundling} has to be done by hand, and it is worth a node precisely so that the fact is not mistaken for a citation. Mathlib supplies the coercion only as a \emph{ring} homomorphism, \texttt{UniformSpace.Completion.coeRingHom}; there is no \texttt{coeStarAlgHom}, and no algebra-homomorphism counterpart either, anywhere in Mathlib's completion files. So \texttt{map\_one}, \texttt{map\_mul}, \texttt{map\_add} come from \texttt{coeRingHom}, and the two remaining fields are supplied individually. The first is the \texttt{AlgHom} field, and its name matters: \texttt{StarAlgHom \ensuremath{\mathbb{C}}} extends \texttt{AlgHom}, whose scalar field is \texttt{commutes'} --- agreement of the map with the two \texttt{algebraMap}s --- and \emph{not} \texttt{map\_smul}. It discharges by \texttt{rfl} from the definition of \texttt{UniformSpace.Completion.algebra}, whose \texttt{smul\_def'} field already characterises the scalar action through $\eta \circ \texttt{algebraMap}$. The second is \texttt{map\_star}, which is the characterisation $\eta(a)^{*} = \eta(a^{*})$ of \ref{def:completion-star}, which \ref{lmm:star-extends-to-completion} records as part of making $\eta$ a $*$-homomorphism. Assembling those five fields into a \texttt{StarAlgHom} is a single anonymous-constructor term. This node is stated for a general $A$ rather than only for the colimit because that is the generality at which it is true and at which the rest of this block is written; its consumer is \ref{lmm:quasilocal-embedding}, which needs a \emph{bundled} morphism and would otherwise have to inline this assembly. \end{proof} @@ -289,11 +289,11 @@ \subsection{The Quasilocal Colimit} \begin{proof} \leanok \uses{lmm:star-extends-to-completion} - Routine, not hard, and worth saying why. \texttt{CStarRing} is a \texttt{Prop}-valued class with exactly one field, \texttt{norm\_mul\_self\_le : \ensuremath{\forall\, x,\ \|x\| * \|x\| \le \|x^{\star} * x\|}} (\texttt{Analysis/CStarAlgebra/Basic.lean:89}). That field is a \emph{non-strict inequality} between two continuous real-valued functions of the single variable $x$, so it transports to the completion in about four lines: the locus where it holds is closed by \texttt{isClosed\_le}, and \texttt{UniformSpace.Completion.induction\_on} reduces the goal to the canonical image. + Routine, not hard, and worth saying why. \texttt{CStarRing} is a \texttt{Prop}-valued class with exactly one field, \texttt{norm\_mul\_self\_le : \ensuremath{\forall\, x,\ \|x\| * \|x\| \le \|x^{\star} * x\|}} (\texttt{Analysis/CStarAlgebra/Basic.lean}). That field is a \emph{non-strict inequality} between two continuous real-valued functions of the single variable $x$, so it transports to the completion in about four lines: the locus where it holds is closed by \texttt{isClosed\_le}, and \texttt{UniformSpace.Completion.induction\_on} reduces the goal to the canonical image. On the canonical image it is the C*-inequality of $A$: $\eta$ is a ring and $*$-homomorphism (\ref{lmm:star-extends-to-completion}) and is norm preserving by \texttt{UniformSpace.Completion.norm\_coe}, so $\|\eta(a)^{*}\eta(a)\| = \|\eta(a^{*}a)\| = \|a^{*}a\| \ge \|a\|\,\|a\| = \|\eta(a)\|\,\|\eta(a)\|$. Continuity of the two sides is the same package as elsewhere: the involution is continuous by \ref{lmm:star-extends-to-completion}, and multiplication and the norm are continuous on a normed ring. - Two consequences worth recording. First, isometry of the involution on $\widehat{A}$ is \emph{not} a separate obligation anywhere in this block: it follows from this inequality through \texttt{CStarRing.to\_normedStarGroup} (\texttt{Basic.lean:114}). Second, \texttt{CStarRing} does not itself require completeness --- its hypotheses are only \texttt{NonUnitalNormedRing} and \texttt{StarRing} --- which is why the same inequality is available on the colimit before completing, as \ref{lmm:quasilocal-colimit-cstar-identity} asserts. + Two consequences worth recording. First, isometry of the involution on $\widehat{A}$ is \emph{not} a separate obligation anywhere in this block: it follows from this inequality through \texttt{CStarRing.to\_normedStarGroup}. Second, \texttt{CStarRing} does not itself require completeness --- its hypotheses are only \texttt{NonUnitalNormedRing} and \texttt{StarRing} --- which is why the same inequality is available on the colimit before completing, as \ref{lmm:quasilocal-colimit-cstar-identity} asserts. \end{proof} \begin{lemma}[The Completion is a Normed $\mathbb{C}$-Algebra] @@ -306,13 +306,13 @@ \subsection{The Quasilocal Colimit} \begin{proof} \leanok \uses{def:completion-standing-hypotheses} - This node exists to work around one specific trap, and the trap is the whole of its content. Mathlib \emph{does} have a \texttt{NormedAlgebra} instance on a completion (\texttt{Analysis/Normed/Module/Completion.lean:87}), but it is gated on \texttt{SeminormedCommRing A} --- \emph{commutative} --- so it does \emph{not} fire here: $A$ is noncommutative in every case of interest. Without noticing this one would expect the instance for free and discover at formalization time that typeclass inference simply fails to find it. + This node exists to work around one specific trap, and the trap is the whole of its content. Mathlib \emph{does} have a \texttt{NormedAlgebra} instance on a completion (\texttt{Analysis/Normed/Module/Completion.lean}), but it is gated on \texttt{SeminormedCommRing A} --- \emph{commutative} --- so it does \emph{not} fire here: $A$ is noncommutative in every case of interest. So typeclass inference does not find a \texttt{NormedAlgebra} instance on $\widehat{A}$, and one is supplied here. - Supplying it by hand is short. \texttt{NormedAlgebra} has exactly one field beyond \texttt{Algebra}, namely \texttt{norm\_smul\_le}, $\|c \cdot x\| \le |c|\,\|x\|$; and that field is already available from the \texttt{NormedSpace} instance on the completion of a normed space (line 36 of the same file), which carries no commutativity hypothesis. So the instance is \texttt{UniformSpace.Completion.algebra} together with \texttt{norm\_smul\_le} borrowed from that \texttt{NormedSpace} instance --- a \texttt{where} with a single field. + Supplying it by hand is short. \texttt{NormedAlgebra} has exactly one field beyond \texttt{Algebra}, namely \texttt{norm\_smul\_le}, $\|c \cdot x\| \le |c|\,\|x\|$; and that field is already available from the \texttt{NormedSpace} instance on the completion of a normed space (in the same file), which carries no commutativity hypothesis. So the instance is \texttt{UniformSpace.Completion.algebra} together with \texttt{norm\_smul\_le} borrowed from that \texttt{NormedSpace} instance --- a \texttt{where} with a single field. - This is also where scalar-action compatibility would live, if it is needed at all, and the evidence is that it is not. There are two a priori different \texttt{SMul \ensuremath{\mathbb{C}} \ensuremath{\widehat{A}}} structures in play: the one underlying \texttt{UniformSpace.Completion.algebra}, characterised by its \texttt{smul\_def'} field as $c \cdot x = \eta(\texttt{algebraMap } c)\, x$, and the one underlying the \texttt{NormedSpace} instance, which extends the scalar action on $A$. Mathlib's own commutative \texttt{NormedAlgebra} instance has the body \texttt{norm\_smul\_le := norm\_smul\_le} and nothing else: it borrows the \texttt{NormedSpace} field directly, with \emph{no} agreement argument, and --- decisively --- \emph{never uses the commutativity hypothesis in that body}. So the identical body compiles in the noncommutative setting, and this node is three lines. Nothing below is needed; it is recorded only against the remote possibility that the two actions fail to be definitionally equal, in which case the fix is the usual \texttt{induction\_on} plus \texttt{isClosed\_eq} step: on the canonical image each action sends $\eta(a)$ to $\eta(c \cdot a)$, the first by \texttt{UniformSpace.Completion.coe\_mul} with \texttt{Algebra.smul\_def} in $A$, the second by \texttt{UniformSpace.Completion.coe\_smul}. + \emph{Design note: scalar-action compatibility.} There are two a priori different \texttt{SMul \ensuremath{\mathbb{C}} \ensuremath{\widehat{A}}} structures in play: the one underlying \texttt{UniformSpace.Completion.algebra}, characterised by its \texttt{smul\_def'} field as $c \cdot x = \eta(\texttt{algebraMap } c)\, x$, and the one underlying the \texttt{NormedSpace} instance, which extends the scalar action on $A$. Mathlib's own commutative \texttt{NormedAlgebra} instance has the body \texttt{norm\_smul\_le := norm\_smul\_le} and nothing else: it borrows the \texttt{NormedSpace} field directly, with \emph{no} agreement argument, and \emph{does not use the commutativity hypothesis in that body}. So the same body works in the noncommutative setting, and this node is three lines. - For the record, so that none of it is re-proved: what \emph{is} free on the completion, without commutativity, is \texttt{UniformSpace.Completion.ring} and \texttt{UniformSpace.Completion.algebra} --- both named declarations, in \texttt{Topology/Algebra/UniformRing.lean} --- together with \texttt{UniformSpace.Completion.instNormedRing}, the \texttt{NormedSpace} and \texttt{NormedAddCommGroup} instances of \texttt{Analysis/Normed/Module/Completion.lean}, and the norm-preservation lemma \texttt{UniformSpace.Completion.norm\_coe}. Those three instances are declared anonymously in the source but carry the usual auto-generated names and can be cited by them; and none is commutativity-gated --- \texttt{instNormedRing} asks only for \texttt{SeminormedRing A}, and the \texttt{NormedSpace} instance only for a seminormed additive group with a scalar action. It is precisely and only the \texttt{NormedAlgebra} instance twelve lines further down the same file that adds \texttt{SeminormedCommRing}, which is what makes this node necessary. + What \emph{is} free on the completion, without commutativity, is \texttt{UniformSpace.Completion.ring} and \texttt{UniformSpace.Completion.algebra} --- both named declarations, in \texttt{Topology/Algebra/UniformRing.lean} --- together with \texttt{UniformSpace.Completion.instNormedRing}, the \texttt{NormedSpace} and \texttt{NormedAddCommGroup} instances of \texttt{Analysis/Normed/Module/Completion.lean}, and the norm-preservation lemma \texttt{UniformSpace.Completion.norm\_coe}. Those three instances are declared anonymously in the source but carry the usual auto-generated names and can be cited by them; and none is commutativity-gated --- \texttt{instNormedRing} asks only for \texttt{SeminormedRing A}, and the \texttt{NormedSpace} instance only for a seminormed additive group with a scalar action. It is precisely and only the \texttt{NormedAlgebra} instance in the same file that adds \texttt{SeminormedCommRing}, which is what makes this node necessary. \end{proof} \begin{lemma}[The Completion of a C*-Normed $*$-Algebra is a C*-Algebra] @@ -325,16 +325,15 @@ \subsection{The Quasilocal Colimit} \begin{proof} \leanok \uses{lmm:star-extends-to-completion, lmm:completion-cstar-identity, lmm:completion-normed-algebra} - Pure bundling, and the audit confirms it is literally that: \texttt{CStarAlgebra} is declared as \texttt{class CStarAlgebra (A : Type*) extends NormedRing A, StarRing A, CompleteSpace A, CStarRing A, NormedAlgebra \ensuremath{\mathbb{C}} A, StarModule \ensuremath{\mathbb{C}} A} with an \emph{empty} body (\texttt{Analysis/CStarAlgebra/Classes.lean:30-42}). It adds no field of its own beyond its parents, so once the parents below are in place this node is a \texttt{where} with an essentially empty body. Exactly those six parents are supplied for $\widehat{A}$: + Pure bundling: \texttt{CStarAlgebra} is declared as \texttt{class CStarAlgebra (A : Type*) extends NormedRing A, StarRing A, CompleteSpace A, CStarRing A, NormedAlgebra \ensuremath{\mathbb{C}} A, StarModule \ensuremath{\mathbb{C}} A} with an \emph{empty} body (\texttt{Analysis/CStarAlgebra/Classes.lean}). It adds no field of its own beyond its parents, so once the parents below are in place this node is a \texttt{where} with an essentially empty body. Exactly those six parents are supplied for $\widehat{A}$: \begin{itemize} - \item \texttt{NormedRing \ensuremath{\widehat{A}}}: found by typeclass inference, and citable by name as \texttt{UniformSpace.Completion.instNormedRing} (\texttt{Analysis/Normed/Module/Completion.lean:75}), whose only hypothesis is \texttt{SeminormedRing A} --- no commutativity, unlike the \texttt{NormedAlgebra} instance in the same file that forces \ref{lmm:completion-normed-algebra} to exist. Note that multiplication on $A$ is \emph{not} uniformly continuous --- only uniformly continuous on bounded sets --- so it is extended as a bounded bilinear map rather than by uniform continuity, which is exactly what that instance arranges. + \item \texttt{NormedRing \ensuremath{\widehat{A}}}: found by typeclass inference, and citable by name as \texttt{UniformSpace.Completion.instNormedRing} (\texttt{Analysis/Normed/Module/Completion.lean}), whose only hypothesis is \texttt{SeminormedRing A} --- no commutativity, unlike the \texttt{NormedAlgebra} instance in the same file that forces \ref{lmm:completion-normed-algebra} to exist. Note that multiplication on $A$ is \emph{not} uniformly continuous --- only uniformly continuous on bounded sets --- so it is extended as a bounded bilinear map rather than by uniform continuity, which is exactly what that instance arranges. \item \texttt{StarRing \ensuremath{\widehat{A}}}: \ref{lmm:star-extends-to-completion}. \item \texttt{CompleteSpace \ensuremath{\widehat{A}}}: nothing to prove --- this is the ambient \texttt{CompleteSpace} instance that comes with the completion, \texttt{UniformSpace.Completion.completeSpace}, not an obligation of this node. \item \texttt{CStarRing \ensuremath{\widehat{A}}}: \ref{lmm:completion-cstar-identity}. \item \texttt{NormedAlgebra \ensuremath{\mathbb{C}} \ensuremath{\widehat{A}}}: \ref{lmm:completion-normed-algebra}. \item \texttt{StarModule \ensuremath{\mathbb{C}} \ensuremath{\widehat{A}}}: \ref{lmm:star-extends-to-completion}, which supplies this instance alongside the \texttt{StarRing} one above --- the conjugate-linearity law is one of the four it establishes. \end{itemize} - The \texttt{StarModule} field was missing from an earlier version of this node; it is listed here so that the obligation is not discovered only at formalization time. \end{proof} \begin{lemma}[The Completion of the Quasilocal Colimit is a C*-Algebra] @@ -350,21 +349,21 @@ \subsection{The Quasilocal Colimit} This node is where the general completion results are instantiated at the colimit. Take $A$ to be the normed $*$-algebra of \ref{lmm:quasilocal-union-normed-star-algebra}. Its \texttt{NormedRing}, \texttt{StarRing}, \texttt{NormedAlgebra \ensuremath{\mathbb{C}}} and \texttt{StarModule \ensuremath{\mathbb{C}}} structures are exactly what that lemma supplies, and the remaining hypothesis of \ref{def:completion-standing-hypotheses}, the C*-inequality, is \ref{lmm:quasilocal-colimit-cstar-identity}. So \ref{lmm:completion-of-cstar-normed-star-algebra} applies to $A$ verbatim, and the claim is that lemma applied to it. In particular isometry of the involution is not a separate assumption to discharge: it comes from the same inequality through \texttt{CStarRing.to\_normedStarGroup}. \end{proof} -Two matters of project bookkeeping attach to \ref{lmm:quasilocal-completion-cstar} but are not part of its proof, and are therefore recorded here as surrounding prose rather than inside it. +The following design notes attach to \ref{lmm:quasilocal-completion-cstar} but are not part of its proof, and are recorded here as surrounding prose. -\emph{Uniqueness of the complete C*-norm: deliberately not claimed.} An earlier version of that node also asserted that the resulting C*-norm is the only complete C*-norm on the carrier, citing Mathlib's \texttt{StarAlgEquiv.norm\_map}, \texttt{lemma norm\_map (\ensuremath{\varphi} : F) (a : A) : \ensuremath{\|\varphi a\| = \|a\|}}. That citation does not support the claim. \texttt{StarAlgEquiv.norm\_map} is about a $*$-isomorphism $\varphi$ between \emph{two} types, each already carrying its own C*-algebra structure; it says such a map is isometric, with no injectivity hypothesis needed. Uniqueness of the complete C*-norm is a statement about \emph{one} carrier equipped with two \texttt{CStarAlgebra} structures whose underlying ring, star and $\mathbb{C}$-algebra structures agree, concluding that the two \texttt{Norm} fields are equal. Getting from the former to the latter needs the identity map to be exhibited as a \texttt{StarAlgEquiv} between two such structures, which in Lean means type synonyms and instance plumbing --- real work, not a rewrite. The clause is therefore dropped from the statement of that node and recorded here as prose rather than left as an unbacked assertion; it is available to be added later as a declaration of its own, with the two-structures-on-one-carrier statement written out, if a consumer needs it. +\emph{Design note: uniqueness of the complete C*-norm is not claimed.} Uniqueness of the complete C*-norm is a statement about \emph{one} carrier equipped with two \texttt{CStarAlgebra} structures whose underlying ring, star and $\mathbb{C}$-algebra structures agree, concluding that the two \texttt{Norm} fields are equal. Proving it needs the identity map exhibited as a \texttt{StarAlgEquiv} between two such structures, which in Lean means type synonyms and instance plumbing. It can be added as a declaration of its own, with the two-structures-on-one-carrier statement written out, if needed. -The completeness caveat is worth keeping. The completeness hypothesis is hidden in the word ``C*-algebra'' and is essential: a $*$-algebra can carry more than one C*-norm, so what could be unique is only the \emph{complete} one. The counterexample is the group $*$-algebra $\mathbb{C}[F_2]$ of the free group on two generators, which carries the distinct full and reduced C*-norms, neither of them complete. An earlier version of this blueprint claimed that any two C*-norms on a $*$-algebra coincide, which is that false statement. +The completeness hypothesis is hidden in the word ``C*-algebra'' and is essential: a $*$-algebra can carry more than one C*-norm, so what could be unique is only the \emph{complete} one. The counterexample is the group $*$-algebra $\mathbb{C}[F_2]$ of the free group on two generators, which carries the distinct full and reduced C*-norms, neither of them complete. -This is the Bratteli--Robinson 2.2.6 material that Chapter 6.2 discusses informally. Uniqueness is not a mere technicality there: it is what would make the quasilocal algebra well defined \emph{up to isomorphism} rather than merely existing, since without it the completion could depend on a choice of norm and different choices could give non-isomorphic C*-algebras. What \ref{lmm:quasilocal-completion-cstar} establishes is existence; the well-definedness reading rests on the prose above. +This is the Bratteli--Robinson 2.2.6 material that Chapter 6.2 discusses informally. Uniqueness is not a mere technicality there: it is what would make the quasilocal algebra well defined \emph{up to isomorphism} rather than merely existing, since without it the completion could depend on a choice of norm and different choices could give non-isomorphic C*-algebras. What \ref{lmm:quasilocal-completion-cstar} establishes is existence; uniqueness up to isomorphism is the unclaimed statement discussed above. -\emph{The construction route is settled: colimit, then completion.} The project constructs the quasilocal algebra \emph{from the net alone} --- the directed colimit of the local C*-algebras along the isotony family, followed by completion --- which is exactly the chain running from \ref{def:completion-standing-hypotheses} through \ref{lmm:quasilocal-completion-cstar}. This is a decision that has been taken, not an option still under consideration, and the reason is physical. The alternative below is rejected. +\emph{Design note: the quasilocal algebra is constructed, by colimit then completion.} The project constructs the quasilocal algebra \emph{from the net alone} --- the directed colimit of the local C*-algebras along the isotony family, followed by completion --- which is exactly the chain running from \ref{def:completion-standing-hypotheses} through \ref{lmm:quasilocal-completion-cstar}. The reason is physical, as the next paragraphs explain. -\emph{The rejected alternative, and why it is rejected.} The alternative was to realise the quasilocal algebra as a \emph{closed} $*$-subalgebra of an ambient C*-algebra: take the $*$-subalgebra generated by the images of the canonical embeddings $\iota_{\mathbf{B}}$ --- data that the quasilocal algebra structure (\ref{def:quasilocal-algebra}) already assumes --- and close it off with \texttt{StarSubalgebra.topologicalClosure}. That description is accurate and the saving would have been real: \texttt{StarSubalgebra.cstarAlgebra} supplies the \emph{entire} C*-structure as an instance --- involution, norm, completeness, the C*-identity, the algebra structure and the \texttt{StarModule} field all at once --- so \ref{def:completion-standing-hypotheses}, \ref{def:completion-star}, \ref{lmm:star-extends-to-completion}, \ref{lmm:completion-cstar-identity}, \ref{lmm:completion-normed-algebra} and \ref{lmm:completion-of-cstar-normed-star-algebra} would all have become unnecessary, with none of the density arguments above written by hand. +\emph{Design note: why the quasilocal algebra is constructed rather than assumed.} One could instead realise the quasilocal algebra as a \emph{closed} $*$-subalgebra of an ambient C*-algebra: take the $*$-subalgebra generated by the images of the canonical embeddings $\iota_{\mathbf{B}}$ --- data that the quasilocal algebra structure (\ref{def:quasilocal-algebra}) already assumes --- and close it off with \texttt{StarSubalgebra.topologicalClosure}. That would save real work: \texttt{StarSubalgebra.cstarAlgebra} supplies the \emph{entire} C*-structure as an instance --- involution, norm, completeness, the C*-identity, the algebra structure and the \texttt{StarModule} field all at once --- so \ref{def:completion-standing-hypotheses}, \ref{def:completion-star}, \ref{lmm:star-extends-to-completion}, \ref{lmm:completion-cstar-identity}, \ref{lmm:completion-normed-algebra} and \ref{lmm:completion-of-cstar-normed-star-algebra} would be unnecessary, with none of the density arguments above written by hand. -It is rejected because of what it presupposes. \texttt{StarSubalgebra.cstarAlgebra} takes an \emph{ambient} \texttt{CStarAlgebra A} as a hypothesis and equips a closed $*$-subalgebra of it with the induced structure; it does not produce a C*-algebra out of nothing. So the shortcut requires an ambient C*-algebra containing isomorphic copies of every local algebra $\mathfrak{U}(\mathbf{B})$ to be given in advance --- and there is no physical justification for such an algebra. Nothing in the physics supplies one, nothing says where it would come from, so it cannot be assumed. That is the whole of the argument: the shortcut would have the blueprint assume $\mathfrak{U}$ rather than construct it from the net, and assuming it has no basis in the physics. The completion chain above starts from the net alone and \emph{builds} a C*-algebra, discharging the existence claim that \ref{def:quasilocal-algebra} makes. +It is not used, because of what it presupposes. \texttt{StarSubalgebra.cstarAlgebra} takes an \emph{ambient} \texttt{CStarAlgebra A} as a hypothesis and equips a closed $*$-subalgebra of it with the induced structure; it does not produce a C*-algebra out of nothing. So the shortcut requires an ambient C*-algebra containing isomorphic copies of every local algebra $\mathfrak{U}(\mathbf{B})$ to be given in advance --- and there is no physical justification for such an algebra. Nothing in the physics supplies one, nothing says where it would come from, so it cannot be assumed. That is the whole of the argument: the shortcut would have the blueprint assume $\mathfrak{U}$ rather than construct it from the net, and assuming it has no basis in the physics. The completion chain above starts from the net alone and \emph{builds} a C*-algebra, discharging the existence claim that \ref{def:quasilocal-algebra} makes. -\emph{The existing route-2 material in this repository is not invalidated.} \texttt{Physicslib4.AQFT.HaagKastler.dense\_adjoin\_iUnion\_range\_\ensuremath{\iota}} (in \texttt{QuasilocalIntertwiner.lean}) and \texttt{Physicslib4.exists\_starAlgHom\_extend\_of\_dense} (in \texttt{Physicslib4/Analysis/CStarDenseExtend.lean}) implement the dense-extension technique and both take the quasilocal algebra as given. Taking it as given is perfectly legitimate for a \emph{consumer} of the construction: these are downstream results about a quasilocal algebra, not competing constructions of one, and they remain valid verbatim. What the decision changes is only that the blueprint must now \emph{also} construct such an algebra, which is what the chain above does. Indeed \texttt{CStarDenseExtend.lean} remains the closest worked example in this repository of transporting star-structure across a dense embedding, so it is the reference to read before formalizing the completion nodes above. +\emph{Dense-extension results.} \texttt{Physicslib4.AQFT.HaagKastler.dense\_adjoin\_iUnion\_range\_\ensuremath{\iota}} (in \texttt{QuasilocalIntertwiner.lean}) and \texttt{Physicslib4.exists\_starAlgHom\_extend\_of\_dense} (in \texttt{Physicslib4/Analysis/CStarDenseExtend.lean}) implement the dense-extension technique and both take the quasilocal algebra as given. Taking it as given is perfectly legitimate for a \emph{consumer} of the construction: these are downstream results about a quasilocal algebra, not competing constructions of one, and they apply to the quasilocal algebra constructed above. \texttt{CStarDenseExtend.lean} is the closest worked example in this repository of transporting star-structure across a dense embedding. We next introduce the quasilocal algebra. Axiom 3 below does not need it, but has an equivalent form in it (\ref{lmm:local-commutativity-iff-quasilocal}), and Axiom 4 is stated through it. @@ -385,9 +384,9 @@ \subsection{The Quasilocal Colimit} The union is to be read as a \emph{directed colimit}, not as a set-theoretic union. This is what Axiom 2's identity and composition laws buy: with $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ a functor on the inclusion order, and the Alexandrov diamonds upward directed, the local algebras form a directed system and the colimit carries a well-defined $*$-algebra structure --- the product of $a_1 \in \mathfrak{U}(\mathbf{B}_1)$ and $a_2 \in \mathfrak{U}(\mathbf{B}_2)$ is computed in any $\mathfrak{U}(\mathbf{B})$ containing both, and functoriality is exactly what makes the answer independent of that choice. Without the two laws there is no such structure: a bare set-theoretic union of the $\mathfrak{U}(\mathbf{B})$ has no multiplication at all, since elements of different local algebras live in unrelated carriers. - The three supporting results this definition rests on are now declarations of this blueprint rather than appeals to the informal discussion of Chapters 6.1 and 6.2: (i) upward directedness of the Alexandrov diamonds (\ref{lmm:minkowski-diamonds-upward-directed}), which supplies the containing diamond $\mathbf{B}$ in the description above; (ii) that the colimit of the directed system is a normed $*$-algebra (\ref{lmm:quasilocal-union-normed-star-algebra}); and (iii) that its completion is a C*-algebra (\ref{lmm:quasilocal-completion-cstar}). All three are formalized. What would pin $\mathfrak{U}$ down up to isomorphism rather than merely produce it is uniqueness of the complete C*-norm; that is discussed as prose in the passage following \ref{lmm:quasilocal-completion-cstar} and is deliberately not claimed by any declaration here, for the reasons given there. + The three supporting results this definition rests on are declarations of this blueprint (Chapters 6.1 and 6.2 discuss them informally): (i) upward directedness of the Alexandrov diamonds (\ref{lmm:minkowski-diamonds-upward-directed}), which supplies the containing diamond $\mathbf{B}$ in the description above; (ii) that the colimit of the directed system is a normed $*$-algebra (\ref{lmm:quasilocal-union-normed-star-algebra}); and (iii) that its completion is a C*-algebra (\ref{lmm:quasilocal-completion-cstar}). All three are formalized. What would pin $\mathfrak{U}$ down up to isomorphism rather than merely produce it is uniqueness of the complete C*-norm; that is discussed as prose in the passage following \ref{lmm:quasilocal-completion-cstar} and is deliberately not claimed by any declaration here, for the reasons given there. - The colimit-and-completion construction of $\mathfrak{U}$ is therefore formalized, while the Lean structure continues to take $\mathfrak{U}$ as \emph{given} --- an ambient C*-algebra together with the canonical embeddings $\iota_{\mathbf{B}}$ and their cocone condition, as recorded above. There is no longer any discrepancy between this blueprint's formalization markings and the Lean, and the construction and the structure are now connected: that connection is made by \ref{thrm:quasilocal-algebra-exists}, which produces a quasilocal algebra for the net out of the colimit-and-completion construction, and it is from that theorem that a Haag--Kastler net (\ref{def:haag-kastler-net}) obtains its canonical $\mathfrak{U}$. See the formalization note following \ref{lmm:quasilocal-completion-cstar} on the two available construction routes. + The colimit-and-completion construction of $\mathfrak{U}$ is therefore formalized, while the Lean structure takes $\mathfrak{U}$ as \emph{given} --- an ambient C*-algebra together with the canonical embeddings $\iota_{\mathbf{B}}$ and their cocone condition, as recorded above. The construction and the structure are connected by \ref{thrm:quasilocal-algebra-exists}, which produces a quasilocal algebra for the net from the colimit-and-completion construction, and it is from that theorem that a Haag--Kastler net (\ref{def:haag-kastler-net}) obtains its canonical $\mathfrak{U}$. See the design note following \ref{lmm:quasilocal-completion-cstar} for why $\mathfrak{U}$ is constructed rather than assumed. \end{definition} \begin{definition}[Axiom 3: Local Commutativity] @@ -444,8 +443,6 @@ \subsection{The Quasilocal Colimit} ($\Rightarrow$) A quasilocal algebra exists by \ref{thrm:quasilocal-algebra-exists}, and \ref{lmm:local-commutativity-any-quasilocal} gives the commutation in it, and indeed in every quasilocal algebra. ($\Leftarrow$) Let $\mathbf{B}_1$, $\mathbf{B}_2$ be completely spacelike and let $\mathbf{B}$ be any basis set with $\mathbf{B}_1 \cup \mathbf{B}_2 \subseteq \mathbf{B}$ (one exists by \ref{lmm:minkowski-diamonds-upward-directed}). By the cocone condition, $\iota_{\mathbf{B}_k}(a_k) = \iota_{\mathbf{B}}(i_{\mathbf{B}_k\mathbf{B}}(a_k))$ for $k = 1, 2$, with $i_{\mathbf{B}_k\mathbf{B}}$ the isotony embeddings of Axiom 2 (\ref{def:isotony}). Since $\iota_{\mathbf{B}}$ is an injective $*$-homomorphism, commutation of the images in $\mathfrak{U}$ is equivalent to commutation of $i_{\mathbf{B}_1\mathbf{B}}(a_1)$ and $i_{\mathbf{B}_2\mathbf{B}}(a_2)$ in $\mathfrak{U}(\mathbf{B})$, which is Axiom 3 for this $\mathbf{B}$. - - The right-hand side of the equivalence was the form of Axiom 3 in earlier versions of this blueprint. \end{proof} The next axiom makes use of the following new definition: @@ -472,13 +469,13 @@ \subsection{The Quasilocal Colimit} \emph{The direction is the content.} The assertion is a one-way inclusion, and which way it runs is precisely what the name ``Completeness'' records: the formalism is \emph{not too small}. Nothing a physicist can measure lies outside the quasilocal observables; there is no measurable quantity that the net of local algebras, its quasilocal algebra and their representations fail to account for. The converse --- that every quasilocal observable is physically realisable, i.e. that every self-adjoint $\pi_\omega(a)$ is measured by some actual procedure --- is a \emph{separate and strictly stronger} assertion, and it is \emph{not} asserted here. It is flagged instead as an open modelling question: whether the formalism is also \emph{not too large} is not settled by this axiom, and the axioms as stated are consistent with $\mathfrak{U}$ containing self-adjoint elements answering to no measurement at all. - \emph{This is an interpretive postulate, not a mathematical condition.} Axioms 1, 2, 3 and 5 (\ref{def:local-algebras}, \ref{def:isotony}, \ref{def:local-commutativity}, \ref{def:lorentz-covariance}) are mathematical conditions on a net: each says something checkable about the assignment $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ and its structure maps. This axiom is of a different kind. One of its two sides is not a mathematical object, so the statement relates the formalism to the world rather than constraining the formalism internally, and it is therefore not the sort of statement that can be proved or disproved inside the formalism. Consequently it should have no mathematical consumers: a theorem that appears to need Axiom 4 in fact needs the \emph{mathematics} it was previously conflated with, namely the existence of the quasilocal algebra (\ref{thrm:quasilocal-algebra-exists}), not the physical correspondence. What keeps the correspondence \emph{tenable} in the presence of the larger bicommutants of \ref{def:local-von-neumann} is \ref{thrm:quasilocal-strongly-dense}. + \emph{This is an interpretive postulate, not a mathematical condition.} Axioms 1, 2, 3 and 5 (\ref{def:local-algebras}, \ref{def:isotony}, \ref{def:local-commutativity}, \ref{def:lorentz-covariance}) are mathematical conditions on a net: each says something checkable about the assignment $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ and its structure maps. This axiom is of a different kind. One of its two sides is not a mathematical object, so the statement relates the formalism to the world rather than constraining the formalism internally, and it is therefore not the sort of statement that can be proved or disproved inside the formalism. Consequently it should have no mathematical consumers: a theorem that appears to need Axiom 4 in fact needs the existence of the quasilocal algebra (\ref{thrm:quasilocal-algebra-exists}), not the physical correspondence. What keeps the correspondence \emph{tenable} in the presence of the larger bicommutants of \ref{def:local-von-neumann} is \ref{thrm:quasilocal-strongly-dense}. - \emph{Formalization note.} This node previously carried \texttt{Physicslib4.AQFT.HaagKastler.QuasilocalCompleteness}. That was withdrawn, because that Lean definition is a mathematical existence claim about the net --- an attempt at \ref{thrm:quasilocal-algebra-exists} --- and says nothing whatever about physical observables or their correspondence to quasilocal ones. A faithful encoding of \emph{this} node now exists, as \texttt{Physicslib4.AQFT.HaagKastler.ObservableCorrespondence}. It takes the physical observables as an abstract primitive, exactly as Axiom 1 (\ref{def:local-algebras}) takes the assignment \texttt{algebra} as abstract data rather than constructing it, and has three fields: \texttt{Observable}, the type of physical observables, uninterpreted; \texttt{measure}, assigning to each physical observable the element of the quasilocal algebra $\mathfrak{U}$ that answers it; and \texttt{isSelfAdjoint\_measure}, the axiom itself, that every value of \texttt{measure} is self-adjoint. Nothing is thereby proved about the world, which is as it should be for a bridge principle. + \emph{Formalization note.} This node is encoded as \texttt{Physicslib4.AQFT.HaagKastler.ObservableCorrespondence}. It takes the physical observables as an abstract primitive, exactly as Axiom 1 (\ref{def:local-algebras}) takes the assignment \texttt{algebra} as abstract data rather than constructing it, and has three fields: \texttt{Observable}, the type of physical observables, uninterpreted; \texttt{measure}, assigning to each physical observable the element of the quasilocal algebra $\mathfrak{U}$ that answers it; and \texttt{isSelfAdjoint\_measure}, the axiom itself, that every value of \texttt{measure} is self-adjoint. Nothing is thereby proved about the world, which is as it should be for a bridge principle. \emph{The encoding is representation-independent, deliberately.} The correspondence lands in the \emph{self-adjoint part of $\mathfrak{U}$} and not in the operators of a fixed GNS representation. Read literally through \ref{def:quasilocal-observable}, whose quasilocal observables are operators $\pi_\omega(a)$, the axiom would make its own truth depend on which state $\omega$ was chosen, which is unacceptable for a physical primitive. Landing in the algebra removes that dependence, and being a quasilocal observable \emph{in every representation} is then a theorem rather than an axiom schema indexed by a choice of state: for any $*$-representation $\pi$ of $\mathfrak{U}$, the operator $\pi(\texttt{measure}\,o)$ is a quasilocal observable in the sense of \ref{def:quasilocal-observable}, which is \texttt{isQuasilocalObservable\_measure}. - \emph{What the encoding does not assert.} Only the one-way inclusion is asserted, consistently with the paragraph above declining the converse as separate and strictly stronger: \texttt{measure} is a bare map and is deliberately not strengthened to an equivalence. Consequently the structure is cheaply inhabited --- \texttt{ObservableCorrespondence.maximal} exhibits one instance, taking the self-adjoint elements of $\mathfrak{U}$ as the observables and the inclusion as \texttt{measure} --- and that is correct behaviour for a bridge principle rather than a defect of the encoding, since it is not a surjectivity claim and no such claim is intended. In the same spirit this node should have no mathematical consumers, and that is why \ref{def:haag-kastler-net} does not bundle it: what appeared to need Axiom 4 needed \ref{thrm:quasilocal-algebra-exists} instead. + \emph{What the encoding does not assert.} Only the one-way inclusion is asserted, consistently with the paragraph above declining the converse as separate and strictly stronger: \texttt{measure} is a bare map and is deliberately not strengthened to an equivalence. Consequently the structure is cheaply inhabited --- \texttt{ObservableCorrespondence.maximal} exhibits one instance, taking the self-adjoint elements of $\mathfrak{U}$ as the observables and the inclusion as \texttt{measure} --- and that is correct behaviour for a bridge principle rather than a defect of the encoding, since it is not a surjectivity claim and no such claim is intended. In the same spirit this node should have no mathematical consumers, and that is why \ref{def:haag-kastler-net} does not bundle it: results about the quasilocal algebra use \ref{thrm:quasilocal-algebra-exists} instead. \end{definition} \begin{theorem}[Existence of a Quasilocal Algebra] @@ -490,21 +487,15 @@ \subsection{The Quasilocal Colimit} The indexing is essential to the statement and is not a stylistic choice: the family runs over the \emph{Alexandrov-basis sets} only. Axiom 1 (\ref{def:local-algebras}) assigns an abstract unital C*-algebra to \emph{every} subset of spacetime, constrained only at $\emptyset$, so the algebras attached to non-basis subsets are junk fibres about which the axioms say nothing whatever; no claim is made about them here, and none can be. - It is a \emph{theorem}, not an axiom. Nothing needs to be assumed here: this existence claim is what the colimit-then-completion chain of this subsection establishes, running from \ref{lmm:alexandrov-diamonds-isDirected} through \ref{lmm:quasilocal-completion-cstar}. It is stated as its own node because it is the mathematical content that was previously bundled into Axiom 4 (\ref{def:quasilocal-completeness}) and is what the consumers of that axiom actually needed. - - \emph{Why this node once pointed at no Lean declaration.} It now does, and the history of how it came to is kept here because it is the reason the repairs behind that tag were needed. An earlier version of this node claimed that the statement above is exactly what \texttt{Physicslib4.AQFT.HaagKastler.QuasilocalCompleteness}, namely \texttt{Nonempty (QuasilocalAlgebra U i)}, asserts, and withdrew the \texttt{lean} and \texttt{leanfile} tags on the ground that the existing Lean stated something else and that something was false. Two independent mismatches in \texttt{QuasilocalAlgebra.lean} were diagnosed here, and both have since been repaired; a third pin, diagnosed nowhere in this blueprint, was found and repaired in the same work. What was wrong and what was done about it are recorded in turn below; none of it is a live obstacle any longer. - - \emph{The embedding family, fixed as prescribed.} The first mismatch was that the family was indexed over all subsets. The field read \texttt{\ensuremath{\iota} : \ensuremath{\forall} B : Set StandardMinkowskiSpacetime.Carrier, StarAlgHom \ensuremath{\mathbb{C}} (U.algebra B) carrier} --- total over every subset of spacetime --- whereas \texttt{\ensuremath{\iota}\_injective} and \texttt{\ensuremath{\iota}\_inclusion} were restricted to the Alexandrov-basis sets. Since \texttt{LocalNet.algebra} is likewise total, the structure demanded a \emph{unital} $*$-homomorphism out of every junk fibre, which the statement above pointedly does not. The field now takes a strict-implicit region argument together with an \texttt{IsAlexandrovBasisSet} hypothesis before returning \texttt{StarAlgHom \ensuremath{\mathbb{C}} (U.algebra B) carrier} --- the binder shape that \texttt{\ensuremath{\iota}\_injective} and \texttt{\ensuremath{\iota}\_inclusion} already used --- so all three fields agree on their domain, exactly as this node prescribed. - - That over-generality was not harmless: it made the \texttt{Prop} \emph{refutable}, and the following net is why the restriction was necessary. Take $\mathfrak{U}(\mathbf{B}) = \mathbb{C}$ for every Alexandrov-basis set and for $\emptyset$, with all transition maps the identity, so that Axiom 2(a), (b) and (c) hold; and put $\mathfrak{U}(\mathbf{B}_0) = M_2(\mathbb{C})$ for a single non-basis subset $\mathbf{B}_0$, say a singleton, which is not of the form $I^+(p) \cap I^-(q)$. For any candidate structure, each $\iota_{\mathbf{B}}$ on a basis set is a $\mathbb{C}$-algebra homomorphism out of $\mathbb{C}$, so its range is $\mathbb{C}\cdot 1$; the density clause then forces the carrier to be $\overline{\mathbb{C}\cdot 1} = \mathbb{C}\cdot 1$, while injectivity on basis sets forces it to be nontrivial, so the carrier is $\mathbb{C}$. But $\iota_{\mathbf{B}_0} : M_2(\mathbb{C}) \to \mathbb{C}$ is unital and $M_2(\mathbb{C})$ is simple, so its kernel is $0$ and it is injective --- giving $4 \le 1$, a contradiction. Hence \texttt{Nonempty (QuasilocalAlgebra U i)} was \emph{false} for that net. With \texttt{\ensuremath{\iota}} now restricted to the basis sets, no embedding of $\mathfrak{U}(\mathbf{B}_0)$ is demanded of a candidate structure and the refutation no longer applies; the net is kept on record because it is the reason the restriction was needed, not because it refutes the present Lean. + It is a \emph{theorem}, not an axiom. Nothing needs to be assumed here: this existence claim is what the colimit-then-completion chain of this subsection establishes, running from \ref{lmm:alexandrov-diamonds-isDirected} through \ref{lmm:quasilocal-completion-cstar}. It is stated as its own node because it is the mathematical content that results about the quasilocal algebra use; Axiom 4 (\ref{def:quasilocal-completeness}) is a bridge principle and does not supply it. - \emph{The carrier universe, fixed --- but not by the means this node prescribed.} The second mismatch was that the carrier was pinned to \texttt{Type 0}. The field read \texttt{carrier : Type}, while \texttt{LocalNet.algebra : Set \ensuremath{\_} \ensuremath{\rightarrow} Type*} is universe polymorphic, so for a net whose local algebras genuinely live in \texttt{Type 1} no \texttt{Type 0} carrier could hold injective copies of them and the existence claim failed for size reasons alone. What this node prescribed was \texttt{carrier : Type*}, a free universe, and that prescription does not work: a free carrier universe is constrained by no field of the structure, so it cannot be inferred, and \texttt{LocalCommutativity} fails to elaborate with ``failed to infer universe levels''. The only escape would be to give Axioms 3 and 4 an explicit universe parameter, which would make the \emph{content} of those axioms depend on that index --- a family of \texttt{Prop}s rather than a \texttt{Prop}. What was done instead is to tie the carrier to the net's universe: the structure now reads \texttt{QuasilocalAlgebra (U : LocalNet.\{u\})} with \texttt{carrier : Type u}. That costs no generality, because the density clause forces $\mathfrak{U}$ to be the closure of the union of the images of the local algebras, so any quasilocal algebra already lives in the universe of those algebras, and a free universe could only add copies of the same algebra higher up. + \emph{Design note: the embedding family is indexed over Alexandrov-basis sets.} In \texttt{QuasilocalAlgebra}, the field \texttt{\ensuremath{\iota}} takes a strict-implicit region argument together with an \texttt{IsAlexandrovBasisSet} hypothesis before returning \texttt{StarAlgHom \ensuremath{\mathbb{C}} (U.algebra B) carrier} --- the binder shape of \texttt{\ensuremath{\iota}\_injective} and \texttt{\ensuremath{\iota}\_inclusion} --- so all three fields agree on their domain. Since \texttt{LocalNet.algebra} is total, indexing \texttt{\ensuremath{\iota}} over all subsets would demand a \emph{unital} $*$-homomorphism out of every junk fibre, which the statement above pointedly does not, and would make \texttt{Nonempty (QuasilocalAlgebra U i)} \emph{refutable}, as the following net shows. Take $\mathfrak{U}(\mathbf{B}) = \mathbb{C}$ for every Alexandrov-basis set and for $\emptyset$, with all transition maps the identity, so that Axiom 2(a), (b) and (c) hold; and put $\mathfrak{U}(\mathbf{B}_0) = M_2(\mathbb{C})$ for a single non-basis subset $\mathbf{B}_0$, say a singleton, which is not of the form $I^+(p) \cap I^-(q)$. For any candidate structure with \texttt{\ensuremath{\iota}} defined on all subsets, each $\iota_{\mathbf{B}}$ on a basis set is a $\mathbb{C}$-algebra homomorphism out of $\mathbb{C}$, so its range is $\mathbb{C}\cdot 1$; the density clause then forces the carrier to be $\overline{\mathbb{C}\cdot 1} = \mathbb{C}\cdot 1$, while injectivity on basis sets forces it to be nontrivial, so the carrier is $\mathbb{C}$. But $\iota_{\mathbf{B}_0} : M_2(\mathbb{C}) \to \mathbb{C}$ is unital and $M_2(\mathbb{C})$ is simple, so its kernel is $0$ and it is injective --- giving $4 \le 1$, a contradiction. So the existence claim would be \emph{false} for that net. With \texttt{\ensuremath{\iota}} restricted to the basis sets, no embedding of $\mathfrak{U}(\mathbf{B}_0)$ is demanded of a candidate structure and the refutation does not apply. - \emph{A third pin, one level up.} Fixing the carrier alone would not have lifted the size restriction, and this was found while making the change just described. \texttt{HaagKastlerNet} carried no universe parameter at all, so it pinned the universe of \texttt{LocalNet} outright, and \texttt{CovariantQuasilocalAlgebra} inherited that pin through its \texttt{net} field; repairing only the carrier would therefore have left the very same size restriction one level up, with every net in the development confined to a single fixed universe. The net now carries its universe (\texttt{CovariantQuasilocalAlgebra} has since been removed: its data is just the net's canonical $\mathfrak{U}$). One consequence is that the satisfiability witness \texttt{nonempty\_haagKastlerNet} is now stated explicitly at universe \texttt{0}, since they are built from $\mathbb{C}$; consistency of the axioms needs only one model, so nothing is lost. No pin remains in the construction itself: \texttt{QuasilocalColimit} and \texttt{QuasilocalCompletion} are declared over \texttt{LocalNet.\{u\}} with result type \texttt{Type u}, so the colimit-and-completion development --- \texttt{colimitNorm}, \texttt{colimitRingNorm}, \texttt{colimitNormedAlgebra}, \texttt{colimitCStarRing} and \texttt{quasilocalCompletionCStarAlgebra}, that is, the $\mathfrak{U}$ that \ref{lmm:quasilocal-completion-cstar} supplies --- is available at every universe. + \emph{Design note: the carrier lives in the net's universe.} The structure reads \texttt{QuasilocalAlgebra (U : LocalNet.\{u\})} with \texttt{carrier : Type u}. Since \texttt{LocalNet.algebra : Set \ensuremath{\_} \ensuremath{\rightarrow} Type*} is universe polymorphic, a carrier fixed in \texttt{Type 0} could not hold injective copies of local algebras living in \texttt{Type 1}, and the existence claim would fail for size reasons alone. A free carrier universe, \texttt{carrier : Type*}, does not work either: it is constrained by no field of the structure, so it cannot be inferred, and \texttt{LocalCommutativity} fails to elaborate with ``failed to infer universe levels''; giving Axioms 3 and 4 an explicit universe parameter instead would make the \emph{content} of those axioms depend on that index --- a family of \texttt{Prop}s rather than a \texttt{Prop}. Tying the carrier to the net's universe costs no generality, because the density clause forces $\mathfrak{U}$ to be the closure of the union of the images of the local algebras, so any quasilocal algebra already lives in the universe of those algebras, and a free universe could only add copies of the same algebra higher up. - \emph{The node is now formalized}, as \texttt{Physicslib4.AQFT.HaagKastler.exists\_quasilocalAlgebra}, the assembly together with all six supporting results --- \ref{lmm:completion-coe-star-alg-hom} above and the five embedding lemmas stated immediately below this node, \ref{lmm:quasilocal-embedding}, \ref{lmm:quasilocal-embedding-injective}, \ref{lmm:quasilocal-embedding-cocone}, \ref{lmm:quasilocal-colimit-union-of-insertions} and \ref{lmm:quasilocal-embeddings-dense} --- having been completed. + Likewise \texttt{HaagKastlerNet} carries its universe, so no net in the development is confined to a single fixed universe. The satisfiability witness \texttt{nonempty\_haagKastlerNet} is stated at universe \texttt{0}, since it is built from $\mathbb{C}$; consistency of the axioms needs only one model. Nor is there a universe pin in the construction itself: \texttt{QuasilocalColimit} and \texttt{QuasilocalCompletion} are declared over \texttt{LocalNet.\{u\}} with result type \texttt{Type u}, so the colimit-and-completion development --- \texttt{colimitNorm}, \texttt{colimitRingNorm}, \texttt{colimitNormedAlgebra}, \texttt{colimitCStarRing} and \texttt{quasilocalCompletionCStarAlgebra}, that is, the $\mathfrak{U}$ that \ref{lmm:quasilocal-completion-cstar} supplies --- is available at every universe. - One consequence reaches beyond this node and is recorded because this is where it was found. \ref{def:haag-kastler-net} used to bundle \texttt{QuasilocalCompleteness} as a field --- a mathematical existence claim about the net, carrying Axiom 4's name rather than stating the bridge principle of \ref{def:quasilocal-completeness}. That re-pointing has been carried out: the field is gone, and the net's canonical quasilocal algebra is built from this theorem instead. + The node is formalized as \texttt{Physicslib4.AQFT.HaagKastler.exists\_quasilocalAlgebra}, assembled from \ref{lmm:completion-coe-star-alg-hom} above and the five embedding lemmas stated immediately below this node, \ref{lmm:quasilocal-embedding}, \ref{lmm:quasilocal-embedding-injective}, \ref{lmm:quasilocal-embedding-cocone}, \ref{lmm:quasilocal-colimit-union-of-insertions} and \ref{lmm:quasilocal-embeddings-dense}. \end{theorem} \begin{proof} \leanok @@ -570,9 +561,9 @@ \subsection{The Quasilocal Colimit} \end{lemma} \begin{proof} \leanok - This is the step that the earlier one-paragraph proof of \ref{thrm:quasilocal-algebra-exists} used without citing anything, which is why it is now a node. It is a direct Mathlib citation, and about two lines. Given $x$, \texttt{DirectLimit.exists\_eq\_mk}, which asserts that every $z$ in \texttt{DirectLimit F f} is the quotient class of some pair $\langle i, x \rangle$, produces an index $\mathbf{B}$ and an $a \in \mathfrak{U}(\mathbf{B})$ with $x$ the class of $\langle \mathbf{B}, a \rangle$; and \texttt{DirectLimit.Algebra.of} is \emph{definitionally} that class --- its \texttt{toFun} field is literally the map sending $x$ to the class of $\langle i, x \rangle$ --- so the rewrite is \texttt{DirectLimit.Algebra.of\_apply}, available because \texttt{of} is tagged \texttt{@[simps]}. That lemma lives in the same namespace and file as the \texttt{DirectLimit.exists\_eq\_mk\ensuremath{{}_2}} that \ref{lmm:quasilocal-colimit-common-representatives} already cites as Mathlib's, and one could equally specialise the latter by taking both elements to be $x$; the one-element form is the direct citation and is preferred. + It is a direct Mathlib citation, and about two lines. Given $x$, \texttt{DirectLimit.exists\_eq\_mk}, which asserts that every $z$ in \texttt{DirectLimit F f} is the quotient class of some pair $\langle i, x \rangle$, produces an index $\mathbf{B}$ and an $a \in \mathfrak{U}(\mathbf{B})$ with $x$ the class of $\langle \mathbf{B}, a \rangle$; and \texttt{DirectLimit.Algebra.of} is \emph{definitionally} that class --- its \texttt{toFun} field is literally the map sending $x$ to the class of $\langle i, x \rangle$ --- so the rewrite is \texttt{DirectLimit.Algebra.of\_apply}, available because \texttt{of} is tagged \texttt{@[simps]}. That lemma lives in the same namespace and file as the \texttt{DirectLimit.exists\_eq\_mk\ensuremath{{}_2}} that \ref{lmm:quasilocal-colimit-common-representatives} already cites as Mathlib's, and one could equally specialise the latter by taking both elements to be $x$; the one-element form is the direct citation and is preferred. - The node survives as a node rather than being inlined because \ref{lmm:quasilocal-embeddings-dense} is its consumer and reads better citing it, and because the fact is worth stating separately: it is what identifies the range of the colimit insertions with the whole colimit, which is the pivot of the density argument. + It is a node rather than an inline step because \ref{lmm:quasilocal-embeddings-dense} is its consumer and reads better citing it, and because the fact is worth stating separately: it is what identifies the range of the colimit insertions with the whole colimit, which is the pivot of the density argument. \end{proof} \begin{lemma}[The Images of the Canonical Embeddings are Dense] @@ -730,7 +721,7 @@ \subsection{The von Neumann Density Theorem} \uses{lmm:strong-neighbourhood-basis, lmm:bicommutant-finite-vectors, def:quasilocal-observable, def:local-von-neumann} Let $T \in \pi(\mathfrak{U})''$. By \texttt{mem\_closure\_iff\_nhds\_basis'} with the basis of \ref{lmm:strong-neighbourhood-basis}, it suffices, for each finite $s \subseteq H$ and $\varepsilon > 0$, to find $a$ with $\lVert \pi(a)x - Tx \rVert < \varepsilon$ for all $x \in s$; this is \ref{lmm:bicommutant-finite-vectors} applied to the unital $*$-homomorphism $\pi$. - Mathlib has the strong operator topology (\texttt{PointwiseConvergenceCLM}) and the double commutant property of bundled von Neumann algebras (\texttt{VonNeumannAlgebra.commutant\_commutant}, not a density result), but not the von Neumann density theorem itself; it is proved here, in the preceding lemmas of this subsection. The Kaplansky density theorem remains out of scope. + Mathlib has the strong operator topology (\texttt{PointwiseConvergenceCLM}) and the double commutant property of bundled von Neumann algebras (\texttt{VonNeumannAlgebra.commutant\_commutant}, not a density result), but not the von Neumann density theorem itself; it is proved here, in the preceding lemmas of this subsection. The Kaplansky density theorem is out of scope. \end{proof} \subsection{Lorentz Covariance and the Haag--Kastler Net} @@ -778,12 +769,12 @@ \subsection{Lorentz Covariance and the Haag--Kastler Net} \leanok A \emph{Haag-Kastler net} on Minkowski spacetime is the bundling of the data of \ref{def:local-algebras} together with the properties of \ref{def:isotony}, \ref{def:local-commutativity}, and \ref{def:lorentz-covariance}. In the Lean formalization this is a single structure whose fields are the assignment $\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$ and proofs that this assignment satisfies those three remaining axioms. Theorems about AQFT take an instance of this structure as a hypothesis and invoke each axiom as a projection. - Axiom 4 is deliberately absent from that list, and its absence is worth recording. What the consumers of that axiom actually needed from it was never the physical correspondence but the \emph{existence of a quasilocal algebra}, and that is now the theorem \ref{thrm:quasilocal-algebra-exists}, proved from the Axiom 1 data and Axiom 2 alone. The net's canonical quasilocal algebra $\mathfrak{U}$ is accordingly \emph{obtained} from that theorem rather than from an assumed witness: it is a definition on the structure, not a field of it, so nothing about $\mathfrak{U}$ is postulated. Axiom 4 proper (\ref{def:quasilocal-completeness}) is a bridge principle with no mathematical consumers, and is encoded separately. + Axiom 4 is deliberately absent from that list. Results about the quasilocal algebra need its \emph{existence}, not the physical correspondence, and existence is the theorem \ref{thrm:quasilocal-algebra-exists}, proved from the Axiom 1 data and Axiom 2 alone. The net's canonical quasilocal algebra $\mathfrak{U}$ is accordingly \emph{obtained} from that theorem rather than from an assumed witness: it is a definition on the structure, not a field of it, so nothing about $\mathfrak{U}$ is postulated. Axiom 4 proper (\ref{def:quasilocal-completeness}) is a bridge principle with no mathematical consumers, and is encoded separately. \end{definition} -This concludes the presentation of the ``sharpened'' axioms. As proven in this blog post, these ``sharpened'' axioms entail the original axioms save Axiom 6 (Primitivity), which is an axiom that we abandon. +This concludes the presentation of the ``sharpened'' axioms. As Chapters~\ref{chptr:axiom-0-(minkowski-space)}--\ref{chptr:axiom-6-(primitivity)} of this blueprint show, these ``sharpened'' axioms entail the original axioms save Axiom 6 (Primitivity), which is abandoned (Chapter~\ref{chptr:axiom-6-(primitivity)}). -These ``sharpened'' axioms also allow for a straightforward generalization to a set of axioms describing AQFT in curved spacetime, i.e. a set of axioms describing AQFT in a curved spacetime background that is fixed and treated classically. In a subsequent blog post we will detail these axioms. +These ``sharpened'' axioms also allow for a straightforward generalization to a set of axioms describing AQFT in curved spacetime, i.e. a set of axioms describing AQFT in a curved spacetime background that is fixed and treated classically. Chapter~\ref{chptr:haag-kastler-axioms-in-curved-spacetime} motivates these axioms and Section~\ref{sctn:haag-kastler-axioms-in-curved-spacetime} states them. \subsection{Einstein Causality} @@ -1617,7 +1608,7 @@ \subsection{Disjointness and Quasi-Equivalence} \leanok Let $R$ be a bundled von Neumann algebra on a Hilbert space $H$. Then $R \cap R'$ is bicommutant-closed, $(R \cap R')'' = R \cap R'$, so the center $Z(R) = R \cap R'$ of \ref{def:von-neumann-center} is again a von Neumann algebra. - This is stated for the \emph{commutant pair} $M = R$, $N = R'$ only, because that is exactly what the Lean declaration proves: \texttt{bicommutant\_inter\_commutant\_eq} takes a single \texttt{VonNeumannAlgebra R} and forms $R \cap R^{\prime}$. The general two-algebra statement is \ref{lmm:von-neumann-inter-general}, which is not yet formalized. + This is stated for the \emph{commutant pair} $M = R$, $N = R'$ only, because that is exactly what the Lean declaration proves: \texttt{bicommutant\_inter\_commutant\_eq} takes a single \texttt{VonNeumannAlgebra R} and forms $R \cap R^{\prime}$. The general two-algebra statement is \ref{lmm:von-neumann-inter-general}. \end{lemma} \begin{proof} \leanok @@ -1631,7 +1622,7 @@ \subsection{Disjointness and Quasi-Equivalence} \leanok Let $M$ and $N$ be bundled von Neumann algebras on a Hilbert space $H$. Then their underlying sets intersect in a bicommutant-closed set: $(M \cap N)'' = M \cap N$, so $M \cap N$ is again a von Neumann algebra. Here $M$ and $N$ are arbitrary and need \emph{not} form a commutant pair. - This general form is what \ref{def:relative-commutant} needs, the relative commutant $R(\mathbf{B}_1)' \cap R(\mathbf{B}_2)$ being the instance $M = R(\mathbf{B}_1)'$, $N = R(\mathbf{B}_2)$, and likewise for its curved-spacetime counterpart \ref{def:relative-commutant-in-curved-spacetime}. It is formalized as \texttt{Physicslib4.GNS.bicommutant\_inter\_eq}, sitting alongside the commutant-pair instance \texttt{Physicslib4.GNS.bicommutant\_inter\_commutant\_eq} of \ref{lmm:von-neumann-inter-is-von-neumann}. One nuance is worth recording: in Lean the two are independent declarations, since \texttt{bicommutant\_inter\_commutant\_eq} proves the commutant-pair case directly rather than by specialising \texttt{bicommutant\_inter\_eq}, so when \ref{lmm:von-neumann-inter-is-von-neumann} describes itself as the instance $M = R$, $N = R'$ of this lemma that records the mathematics, not the Lean proof structure; the special case could be re-derived from the general one, but currently is not. + This general form is what \ref{def:relative-commutant} needs, the relative commutant $R(\mathbf{B}_1)' \cap R(\mathbf{B}_2)$ being the instance $M = R(\mathbf{B}_1)'$, $N = R(\mathbf{B}_2)$, and likewise for its curved-spacetime counterpart \ref{def:relative-commutant-in-curved-spacetime}. It is formalized as \texttt{Physicslib4.GNS.bicommutant\_inter\_eq}, sitting alongside the commutant-pair instance \texttt{Physicslib4.GNS.bicommutant\_inter\_commutant\_eq} of \ref{lmm:von-neumann-inter-is-von-neumann}. One nuance is worth recording: in Lean the two are independent declarations, since \texttt{bicommutant\_inter\_commutant\_eq} proves the commutant-pair case directly rather than by specialising \texttt{bicommutant\_inter\_eq}, so when \ref{lmm:von-neumann-inter-is-von-neumann} describes itself as the instance $M = R$, $N = R'$ of this lemma that records the mathematics, not the Lean proof structure; the Lean proof of the special case does not go through the general one. \end{lemma} \begin{proof} \leanok @@ -1836,7 +1827,7 @@ \subsection{Covariant States and the Covariance Action} \leanfile{Physicslib4/AQFT/HaagKastler/QuasilocalIntertwiner.lean} \uses{def:quasilocal-lift, def:quasilocal-algebra} \leanok - For every quasilocal algebra of a Haag--Kastler net, the fiberwise Lorentz action extends to a $*$-automorphism of $\mathfrak{U}$, so the lift of \ref{def:quasilocal-lift} exists. No covariance-compatibility hypothesis is needed: by \ref{lmm:quasilocal-covariance-compatible} it holds for every quasilocal algebra. + For every quasilocal algebra of a Haag--Kastler net, the fiberwise Lorentz action extends to a $*$-automorphism of $\mathfrak{U}$, so the lift of \ref{def:quasilocal-lift} exists. Covariance compatibility holds for every quasilocal algebra (\ref{lmm:quasilocal-covariance-compatible}). \end{theorem} \begin{proof} \leanok diff --git a/blueprint/src/sections/sec10/introduction.tex b/blueprint/src/sections/sec10/introduction.tex index c53ea7c..d1f1b96 100644 --- a/blueprint/src/sections/sec10/introduction.tex +++ b/blueprint/src/sections/sec10/introduction.tex @@ -1,3 +1,5 @@ With all the original Haag Kastler Axioms unpacked, we are now in a position to ``sharpen'' their formulation. However, before even stating the ``sharpened'' axioms, the first thing we need to do is to define a number of terms to a level amenable to auto-formalization and also prove a number of theorems. + +The Lean formalization accompanying this chapter builds against Lean v4.34.1 and Mathlib v4.34.1. diff --git a/blueprint/src/sections/sec10/spacetime.tex b/blueprint/src/sections/sec10/spacetime.tex index d8e4e30..d99bfb3 100644 --- a/blueprint/src/sections/sec10/spacetime.tex +++ b/blueprint/src/sections/sec10/spacetime.tex @@ -30,7 +30,7 @@ \section{Spacetime}\label{sctn:spacetime} \begin{align} x \longmapsto g_x\big(V_x,\, W_x\big) \end{align} - is $C^\infty$ on $M$. One identification step is needed to say it in quite that form: \texttt{clm\_bundle\_apply\ensuremath{_2}} concludes with a \emph{section}, of the trivial $\mathbb{R}$-bundle over $M$, so its output is a $\mathtt{Bundle.TotalSpace.mk'}$ term and reaching the plain scalar statement $\mathtt{ContMDiff}\;I\;\mathcal{I}(\mathbb{R},\mathbb{R})\;\infty\;\big(x \mapsto g_x(V_x, W_x)\big)$ means identifying that trivial-bundle section with the function itself. This is exactly what causal and geodesic arguments need --- causal type along a curve, the sign of $g(t,\dot\mu)$, and every variational computation are statements about such scalars --- and a chart-local formulation quantifying over \emph{constant} model vectors had no route to it at all, since $V_x$ and $W_x$ vary with the point. + is $C^\infty$ on $M$. One identification step is needed to say it in quite that form: \texttt{clm\_bundle\_apply\ensuremath{_2}} concludes with a \emph{section}, of the trivial $\mathbb{R}$-bundle over $M$, so its output is a $\mathtt{Bundle.TotalSpace.mk'}$ term and reaching the plain scalar statement $\mathtt{ContMDiff}\;I\;\mathcal{I}(\mathbb{R},\mathbb{R})\;\infty\;\big(x \mapsto g_x(V_x, W_x)\big)$ means identifying that trivial-bundle section with the function itself. This is exactly what causal and geodesic arguments need --- causal type along a curve, the sign of $g(t,\dot\mu)$, and every variational computation are statements about such scalars --- and a chart-local formulation quantifying over \emph{constant} model vectors gives no route to it at all, since $V_x$ and $W_x$ vary with the point. \end{definition} \begin{definition}[Standard Minkowski Spacetime] @@ -1362,7 +1362,7 @@ \subsection{Causal convexity: closure structure} \uses{lmm:minkowski-exists-common-past, lmm:minkowski-exists-common-future, thrm:precedence-transitive} Write $B_1 = I^+(p_1) \cap I^-(q_1)$ and $B_2 = I^+(p_2) \cap I^-(q_2)$. Apply \ref{lmm:minkowski-exists-common-past} to $p_1, p_2$ to get $p$ with $p \ll p_1$ and $p \ll p_2$, and \ref{lmm:minkowski-exists-common-future} to $q_1, q_2$ to get $q$ with $q_1 \ll q$ and $q_2 \ll q$. Put $B = I^+(p) \cap I^-(q)$, again a diamond. By monotonicity of the Minkowski forward and backward cones --- i.e.\ transitivity of $\ll$ (\ref{thrm:precedence-transitive}) --- $p \ll p_i$ gives $I^+(p_i) \subseteq I^+(p)$ and $q_i \ll q$ gives $I^-(q_i) \subseteq I^-(q)$; intersecting these, $B_i \subseteq B$ for $i = 1, 2$. - This lemma is already formalized, as \texttt{Physicslib4.Spacetime.alexandrovBasis\_directed}, and so are the two point-existence helpers it consumes, \texttt{exists\_common\_past} and \texttt{exists\_common\_future}. + In Lean this lemma is \texttt{Physicslib4.Spacetime.alexandrovBasis\_directed}, and the two point-existence helpers it uses are \texttt{exists\_common\_past} and \texttt{exists\_common\_future}. \end{proof} \medskip @@ -1635,7 +1635,7 @@ \subsection{Pullback metrics and cross-metric isometries} \begin{align} d\psi_x\big(d(\psi^{-1})_{\psi(x)}\,u\big) = u, \end{align} - and \emph{Mathlib has no such lemma for a global} \texttt{Diffeomorph} (there is no \texttt{Diffeomorph} analogue of the $\mathtt{mfderiv}$/\texttt{symm} identities; searching turns up only \texttt{Diffeomorph.apply\_symm\_apply} at the level of points). It has to be proved by hand; that obligation is no longer left implicit here but is discharged by the separate nodes \ref{lmm:mfderiv-symm-cancel-left} and \ref{lmm:mfderiv-symm-cancel-right}. It is genuine work and is not supplied by the equivalence above. + and \emph{Mathlib has no such lemma for a global} \texttt{Diffeomorph} (there is no \texttt{Diffeomorph} analogue of the $\mathtt{mfderiv}$/\texttt{symm} identities; searching turns up only \texttt{Diffeomorph.apply\_symm\_apply} at the level of points). It has to be proved by hand, and is discharged by the separate nodes \ref{lmm:mfderiv-symm-cancel-left} and \ref{lmm:mfderiv-symm-cancel-right}. It is genuine work and is not supplied by the equivalence above. Their direct consumers are exactly two: \ref{lmm:pullback-preserves-future-orientation}, which needs the cancellation to instantiate the $\psi^{-1}$ half of the two-sided orientation hypothesis, and \ref{lmm:cross-metric-isometry-symm}, which needs it to turn the isometry equation for $\psi$ into the isometry equation for $\psi^{-1}$. The nodes further downstream --- \ref{lmm:cross-metric-chronological-future-image}, \ref{lmm:cross-metric-chronological-past-image}, \ref{lmm:cross-metric-isometry-preserves-basis-sets} and \ref{lmm:pullback-alexandrov-homeomorphism} --- do reason about $\psi^{-1}$, but they reach the cancellation only \emph{through} those two, and so cite them rather than these nodes. @@ -1743,7 +1743,7 @@ \subsection{Pullback metrics and cross-metric isometries} The Lorentzian condition of \ref{def:spacetime} is stated as the \emph{existence} of a signature basis at each point, and the proof above uses exactly that. This is essential and not a matter of taste: were the signature condition instead a rigid condition on the chart components of the metric, the pullback would not in general satisfy it, a generic differential $d\psi_x$ not preserving coordinate components. The existential formulation is what makes the class of spacetimes closed under pullback. -Mathlib has no pullback operation on covariant tensor fields, so the smoothness obligation of \ref{def:spacetime} for $\psi^*g$ must be assembled by hand. Since that obligation is now the bundle-section condition recorded in \ref{def:spacetime}, the assembly is done entirely in the bundle-section idiom, out of three ingredients: the bundle-section smoothness of $g$ itself (the \texttt{contMDiff} field of the source spacetime), the smoothness of $\psi$ (\texttt{Diffeomorph.contMDiff}), and the smoothness of $x \mapsto d\psi_x$ as a section of the hom bundle. No chart-local reformulation of either the hypothesis or the goal is needed, and in particular nothing has to be translated between two idioms. +Mathlib has no pullback operation on covariant tensor fields, so the smoothness obligation of \ref{def:spacetime} for $\psi^*g$ must be assembled by hand. Since that obligation is the bundle-section condition recorded in \ref{def:spacetime}, the assembly is done entirely in the bundle-section idiom, out of three ingredients: the bundle-section smoothness of $g$ itself (the \texttt{contMDiff} field of the source spacetime), the smoothness of $\psi$ (\texttt{Diffeomorph.contMDiff}), and the smoothness of $x \mapsto d\psi_x$ as a section of the hom bundle. No chart-local reformulation of either the hypothesis or the goal is needed, and in particular nothing has to be translated between two idioms. \begin{lemma}[The Pullback Metric is a Smooth Section of the Bilinear-Form Bundle] \label{lmm:pullback-metric-smooth-in-charts} @@ -1756,8 +1756,6 @@ \subsection{Pullback metrics and cross-metric isometries} &\qquad \Big(x \mapsto \mathtt{Bundle.TotalSpace.mk'}\;\big(E \to_L[\mathbb{R}] E \to_L[\mathbb{R}] \mathbb{R}\big)\;x\;\big((\psi^*g)_x\big)\Big). \end{align} The index is $\infty$: that is what \ref{def:spacetime} demands. - - \emph{The label name is historical.} It reads \texttt{pullback-metric-smooth-in-charts} because the smoothness field of \ref{def:spacetime} was once a chart-local $\mathtt{ContDiffWithinAt}$ condition. It is kept unchanged only because \ref{thrm:pullback-is-spacetime} cites it; nothing chart-local remains in either its statement or its proof. \end{lemma} \begin{proof} \leanok @@ -1771,25 +1769,25 @@ \subsection{Pullback metrics and cross-metric isometries} \item regularity of $\psi$ itself, supplied by \texttt{Diffeomorph.contMDiff}, read at the same index $\infty$ as the goal; it supplies the base map along which the previous item is read; \item smoothness of $x \mapsto d\psi_x$ as a section of the hom bundle $\mathrm{Hom}\big(TM|_x,\, TM|_{\psi(x)}\big)$ over the base map $\psi$, together with invertibility of each $d\psi_x$ (\ref{lmm:mfderiv-diffeo-linear-equiv}) where the bundled form has to be recognised as a continuous linear map. \end{itemize} - The assembly is \emph{not} an instance of \texttt{ContMDiff.clm\_bundle\_apply\ensuremath{_2}}: that lemma applies a bilinear-form section to two vector-field \emph{sections} and returns a scalar section, so it evaluates rather than precomposes, and Mathlib has no bundle-level precomposition lemma at all --- the only precomposition statement, \texttt{ContMDiff.clm\_comp}, is for trivial bundles. The route to use instead is to unfold the goal through \texttt{contMDiffAt\_hom\_bundle}, as described next. + The assembly is \emph{not} an instance of \texttt{ContMDiff.clm\_bundle\_apply\ensuremath{_2}}: that lemma applies a bilinear-form section to two vector-field \emph{sections} and returns a scalar section, so it evaluates rather than precomposes, and Mathlib has no bundle-level precomposition lemma at all --- its composition statements, the \texttt{clm\_precomp}, \texttt{clm\_postcomp} and \texttt{clm\_comp} families of \texttt{Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean}, are for trivial bundles. The route to use instead is to unfold the goal through \texttt{contMDiffAt\_hom\_bundle}, as described next. - \emph{The route, now pinned down.} This was previously recorded as an open API question. It is no longer open: every smoothness step is supplied by Mathlib, and what remains is two mechanical local identities. The chain is: + \emph{The route.} Every smoothness step is supplied by Mathlib, and what remains is two mechanical local identities. The chain is: \begin{itemize} - \item smoothness of $x \mapsto d\psi_x$ is \texttt{ContMDiffAt.mfderiv\_const} (\texttt{Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean:241}), whose conclusion is $\mathtt{ContMDiffAt}$ of $\mathtt{inTangentCoordinates}\;I\;I\;\mathrm{id}\;\psi\;(\mathtt{mfderiv}\;\psi)\;x_0$. Its regularity gap $m + 1 \le n$ holds at $m = n = \infty$ because $\infty + 1 = \infty$ (\texttt{ENat.coe\_top\_add\_one}, which is \texttt{rfl} and \texttt{@[simp]}), so it is \texttt{le\_rfl}, not \texttt{le\_top}. Only $\mathtt{At}$ and $\mathtt{WithinAt}$ forms exist, so the global goal is opened with a single \texttt{intro}; - \item the match between that $\mathtt{inTangentCoordinates}$ conclusion and the $\mathtt{inCoordinates}$ shape the goal wants is \emph{definitional}: $\mathtt{inTangentCoordinates}$ is \emph{defined} as the two-base-point $\mathtt{inCoordinates}$ (\texttt{Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean:518}). Mathlib itself relies on this defeq, assigning the output of \texttt{mfderivWithin\_const} directly to a goal spelled with raw \texttt{inCoordinates} (\texttt{Mathlib/Geometry/Manifold/VectorField/Pullback.lean:423}). That file's \texttt{ContMDiffWithinAt.mpullbackWithin\_vectorField\_inter} is the canonical template for this whole node; - \item the two-slot precomposition is Mathlib's, via the identity $\beta.\mathtt{bilinearComp}\,A\,A = (A.\mathtt{precomp}\,\mathbb{R}) \circ (\beta \circ A)$ and then \texttt{ContMDiffAt.clm\_precomp} (\texttt{Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean:122}) with \texttt{ContMDiffAt.clm\_comp} (\texttt{:170}). + \item smoothness of $x \mapsto d\psi_x$ is \texttt{ContMDiffAt.mfderiv\_const} (\texttt{Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean}), whose conclusion is $\mathtt{ContMDiffAt}$ of $\mathtt{inTangentCoordinates}\;I\;I\;\mathrm{id}\;\psi\;(\mathtt{mfderiv}\;\psi)\;x_0$. Its regularity gap $m + 1 \le n$ holds at $m = n = \infty$ because $\infty + 1 = \infty$ (\texttt{ENat.coe\_top\_add\_one}, which is \texttt{rfl} and \texttt{@[simp]}), so it is \texttt{le\_rfl}, not \texttt{le\_top}. Only $\mathtt{At}$ and $\mathtt{WithinAt}$ forms exist, so the global goal is opened with a single \texttt{intro}; + \item the match between that $\mathtt{inTangentCoordinates}$ conclusion and the $\mathtt{inCoordinates}$ shape the goal wants is \emph{definitional}: $\mathtt{inTangentCoordinates}$ is \emph{defined} as the two-base-point $\mathtt{inCoordinates}$ (\texttt{Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean}). Mathlib itself relies on this defeq, assigning the output of \texttt{mfderivWithin\_const} directly to a goal spelled with raw \texttt{inCoordinates} (\texttt{Mathlib/Geometry/Manifold/VectorField/Pullback.lean}). That file's \texttt{ContMDiffWithinAt.mpullbackWithin\_vectorField\_inter} is the closest Mathlib model for this whole node; + \item the two-slot precomposition is Mathlib's, via the identity $\beta.\mathtt{bilinearComp}\,A\,A = (A.\mathtt{precomp}\,\mathbb{R}) \circ (\beta \circ A)$ and then \texttt{ContMDiffAt.clm\_precomp} with \texttt{ContMDiffAt.clm\_comp}, both in \texttt{Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean}. \end{itemize} - Two \emph{local algebraic} helpers were indeed needed and had to be written by hand, but neither is a smoothness statement, and both were written as \texttt{have}s \emph{inside} the single proof rather than as top-level lemmas. The first is the $\mathtt{precomp}$ identity just displayed, $(\Gamma\,x).\mathtt{bilinearComp}\,(\Delta\,x)\,(\Delta\,x) = ((\Delta\,x).\mathtt{precomp}\;\mathbb{R}) \circ \big((\Gamma\,x) \circ (\Delta\,x)\big)$; it holds identically, with no side conditions, and was proved by \texttt{filter\_upwards}, then \texttt{ext v w}, then \texttt{simp [ContinuousLinearMap.bilinearComp\_apply]}. The second --- that the $\mathtt{inCoordinates}$ reading of a $\mathtt{bilinearComp}$ is the $\mathtt{bilinearComp}$ of the $\mathtt{inCoordinates}$ readings --- is \emph{not} an identity: it holds only on the intersection of the two relevant trivialisation base sets, because \texttt{continuousLinearMapAt} and \texttt{symmL} are mutually inverse only there. It was therefore established as an eventual equality at $x_0$, via \texttt{filter\_upwards} on two neighbourhood facts: that $x$ lies in the base set of the trivialisation at $x_0$, and that $\psi(x)$ lies in the base set of the trivialisation at $\psi(x_0)$, the latter obtained from continuity of $\psi$ by \texttt{ContinuousAt.preimage\_mem\_nhds}; both memberships come from \texttt{FiberBundle.mem\_baseSet\_trivializationAt'} together with \texttt{Trivialization.open\_baseSet.mem\_nhds}. The computation then goes through \texttt{hom\_trivializationAt\_apply}, \texttt{Bundle.ContinuousLinearMap.inCoordinates\_apply\_eq\ensuremath{_2}} (twice), \texttt{ContinuousLinearMap.inCoordinates\_eq}, and a small telescoping step cancelling a trivialisation against its inverse via \texttt{Bundle.Trivialization.coe\_linearMapAt\_of\_mem} and \texttt{Bundle.Trivialization.symm\_linearMapAt}, finishing with \texttt{congr\_of\_eventuallyEq}. One practical warning, recorded because it cost a formalization attempt: those last two lemmas live in the \texttt{Bundle.Trivialization} namespace, \emph{not} \texttt{Trivialization}. In \texttt{Mathlib/Topology/VectorBundle/Basic.lean} the \texttt{end Pretrivialization} closes only the inner namespace, leaving \texttt{Bundle} open, so the block at line 169 nests as \texttt{Bundle.Trivialization}. Both helpers are of the same kind as the \texttt{filter\_upwards}/\texttt{ext}/\texttt{simp} steps that already close the constant-metric case in \texttt{Physicslib4/Spacetime/Minkowski.lean}. + Two \emph{local algebraic} helpers are proved by hand, but neither is a smoothness statement, and both are \texttt{have}s \emph{inside} the single proof rather than top-level lemmas. The first is the $\mathtt{precomp}$ identity just displayed, $(\Gamma\,x).\mathtt{bilinearComp}\,(\Delta\,x)\,(\Delta\,x) = ((\Delta\,x).\mathtt{precomp}\;\mathbb{R}) \circ \big((\Gamma\,x) \circ (\Delta\,x)\big)$; it holds identically, with no side conditions, and is proved by \texttt{filter\_upwards}, then \texttt{ext v w}, then \texttt{simp [ContinuousLinearMap.bilinearComp\_apply]}. The second --- that the $\mathtt{inCoordinates}$ reading of a $\mathtt{bilinearComp}$ is the $\mathtt{bilinearComp}$ of the $\mathtt{inCoordinates}$ readings --- is \emph{not} an identity: it holds only on the intersection of the two relevant trivialisation base sets, because \texttt{continuousLinearMapAt} and \texttt{symmL} are mutually inverse only there. It is therefore established as an eventual equality at $x_0$, via \texttt{filter\_upwards} on two neighbourhood facts: that $x$ lies in the base set of the trivialisation at $x_0$, and that $\psi(x)$ lies in the base set of the trivialisation at $\psi(x_0)$, the latter obtained from continuity of $\psi$ by \texttt{ContinuousAt.preimage\_mem\_nhds}; both memberships come from \texttt{FiberBundle.mem\_baseSet\_trivializationAt'} together with \texttt{Trivialization.open\_baseSet.mem\_nhds}. The computation then goes through \texttt{hom\_trivializationAt\_apply}, \texttt{Bundle.ContinuousLinearMap.inCoordinates\_apply\_eq\ensuremath{_2}} (twice), \texttt{ContinuousLinearMap.inCoordinates\_eq}, and a small telescoping step cancelling a trivialisation against its inverse via \texttt{Bundle.Trivialization.coe\_linearMapAt\_of\_mem} and \texttt{Bundle.Trivialization.symm\_linearMapAt}, finishing with \texttt{congr\_of\_eventuallyEq}. Note that those last two lemmas live in the \texttt{Bundle.Trivialization} namespace, \emph{not} \texttt{Trivialization}: in \texttt{Mathlib/Topology/VectorBundle/Basic.lean} the \texttt{end Pretrivialization} closes only the inner namespace, leaving \texttt{Bundle} open, so the \texttt{Trivialization} block that follows nests as \texttt{Bundle.Trivialization}. Both helpers are of the same kind as the \texttt{filter\_upwards}/\texttt{ext}/\texttt{simp} steps that close the constant-metric case in \texttt{Physicslib4/Spacetime/Minkowski.lean}. - Two corrections to what was written here before. First, \texttt{ContMDiff.clm\_comp} is \emph{not} the only precomposition statement in Mathlib --- the \texttt{clm\_precomp} and \texttt{clm\_postcomp} families live in the same file and are the ones actually needed. Second, the candidate list below was retained as a record of how the question was framed, but the second and third bullets are now settled by the two items above rather than open: + The reduction of the goal, and its match with the differential, use the following API: \begin{itemize} - \item on the \emph{goal} side, \texttt{contMDiffAt\_hom\_bundle} in \texttt{Mathlib/Geometry/Manifold/VectorBundle/Hom.lean} does apply: the fibre here is $TM|_x \to_L[\mathbb{R}] TM|_x \to_L[\mathbb{R}] \mathbb{R}$, whose source and target both sit over the \emph{single} base point $x$, and that lemma's statement reads the fibre element through $\mathtt{inCoordinates}\;F_1\;E_1\;F_2\;E_2\;(f\,x_0).1\;(f\,x).1\;(f\,x_0).1\;(f\,x).1$, i.e.\ with one and the same base point in the source and the target slots. Applying it reduces this node to smoothness of the $\mathtt{inCoordinates}$ reading of $(\psi^*g)_x$; - \item that reduced goal is exactly the shape \texttt{ContMDiffAt.mfderiv} in \texttt{Mathlib/Geometry/Manifold/MFDeriv/} produces for $d\psi$, namely smoothness of the differential in the $\mathtt{inTangentCoordinates}$ normalisation rather than as a bundle section --- which is why the reduction is made in this direction and not the other; - \item the surrounding \texttt{inTangentCoordinates} API of the same directory (\texttt{inTangentCoordinates}, \texttt{inTangentCoordinates\_eq}), for matching the two readings up. + \item on the \emph{goal} side, \texttt{contMDiffAt\_hom\_bundle} in \texttt{Mathlib/Geometry/Manifold/VectorBundle/Hom.lean} applies: the fibre here is $TM|_x \to_L[\mathbb{R}] TM|_x \to_L[\mathbb{R}] \mathbb{R}$, whose source and target both sit over the \emph{single} base point $x$, and that lemma's statement reads the fibre element through $\mathtt{inCoordinates}\;F_1\;E_1\;F_2\;E_2\;(f\,x_0).1\;(f\,x).1\;(f\,x_0).1\;(f\,x).1$, i.e.\ with one and the same base point in the source and the target slots. Applying it reduces this node to smoothness of the $\mathtt{inCoordinates}$ reading of $(\psi^*g)_x$; + \item that reduced goal is exactly the shape \texttt{ContMDiffAt.mfderiv} in \texttt{Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean} produces for $d\psi$, namely smoothness of the differential in the $\mathtt{inTangentCoordinates}$ normalisation rather than as a bundle section --- which is why the reduction is made in this direction and not the other; + \item the \texttt{inTangentCoordinates} API in \texttt{Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean} (\texttt{inTangentCoordinates}, \texttt{inTangentCoordinates\_eq}), for matching the two readings up. \end{itemize} - One thing to record so that it is not attempted: \texttt{contMDiffAt\_hom\_bundle} is \emph{not} a possible target shape for $x \mapsto d\psi_x$ itself. Its single-base-point form is precisely what rules that out, since $d\psi_x : TM|_x \to_L[\mathbb{R}] TM|_{\psi(x)}$ has \emph{two} base maps, the identity and $\psi$. The two-base-map API is \texttt{ContMDiffAt.clm\_apply\_of\_inCoordinates} and \texttt{ContMDiffWithinAt.clm\_apply\_of\_inCoordinates}, whose hypothesis is stated as smoothness of $\mathtt{inCoordinates}\;F_1\;E_1\;F_2\;E_2\;(b_1\,m_0)\;(b_1\,m)\;(b_2\,m_0)\;(b_2\,m)\;(\varphi\,m)$, with independent $b_1$ and $b_2$; Mathlib gives these only in the $\mathtt{At}$ and $\mathtt{WithinAt}$ forms, because the $\mathtt{inCoordinates}$ hypothesis only makes sense around a point. + \texttt{contMDiffAt\_hom\_bundle} is \emph{not} a possible target shape for $x \mapsto d\psi_x$ itself. Its single-base-point form is precisely what rules that out, since $d\psi_x : TM|_x \to_L[\mathbb{R}] TM|_{\psi(x)}$ has \emph{two} base maps, the identity and $\psi$. The two-base-map API is \texttt{ContMDiffAt.clm\_apply\_of\_inCoordinates} and \texttt{ContMDiffWithinAt.clm\_apply\_of\_inCoordinates}, whose hypothesis is stated as smoothness of $\mathtt{inCoordinates}\;F_1\;E_1\;F_2\;E_2\;(b_1\,m_0)\;(b_1\,m)\;(b_2\,m_0)\;(b_2\,m)\;(\varphi\,m)$, with independent $b_1$ and $b_2$; Mathlib gives these only in the $\mathtt{At}$ and $\mathtt{WithinAt}$ forms, because the $\mathtt{inCoordinates}$ hypothesis only makes sense around a point. - These do compose into the ingredient as stated. No intermediate top-level lemma was needed: the two local identities above are discharged inline, inside the single proof. All three ingredients are Mathlib-backed as they stand. + The lemmas listed above compose into the third ingredient. No intermediate top-level lemma is needed: the two local identities above are discharged inline, inside the single proof. All three ingredients are Mathlib-backed as they stand. \end{proof} \begin{theorem}[The Pullback of a Spacetime is a Spacetime] @@ -1815,12 +1813,12 @@ \subsection{Pullback metrics and cross-metric isometries} \end{align} for every $x \in M$ and $v \in TM|_x$, in the sense of \ref{def:future-and-past-pointing-vectors}. Say $\psi$ satisfies the \emph{two-sided orientation hypothesis} when both $\psi$ preserves the future orientation from $(g_1,t_1)$ to $(g_2,t_2)$ and $\psi^{-1}$ preserves it from $(g_2,t_2)$ back to $(g_1,t_1)$. - Nothing here refers to the metrics beyond the two orientations, so this is a condition on a diffeomorphism and a pair of oriented metrics, stated independently of any isometry hypothesis. The single-metric case $g_1 = g_2 = g$, $t_1 = t_2 = t$ is the existing $\mathtt{Isometry.PreservesFutureOrientation}$, and the two-sided form is what the single-metric \ref{lmm:isometry-preserves-basis-sets} already uses; the definition is hoisted here so that the lemmas below can cite it rather than restate it. + Nothing here refers to the metrics beyond the two orientations, so this is a condition on a diffeomorphism and a pair of oriented metrics, stated independently of any isometry hypothesis. The single-metric case $g_1 = g_2 = g$, $t_1 = t_2 = t$ is $\mathtt{Isometry.PreservesFutureOrientation}$, and the two-sided form is the one the single-metric \ref{lmm:isometry-preserves-basis-sets} uses; the definition is stated here so that the lemmas below can cite it rather than restate it. \end{definition} -The pullback time orientation is $\psi^*t : x \mapsto (d\psi_x)^{-1}\,t_{\psi(x)}$, which is Mathlib's $\mathtt{VectorField.mpullback}\;I\;I\;\psi\;t$. Establishing that it is a time orientation splits into one smoothness statement and two pointwise conditions, and the smoothness statement is now a single step. Since the \texttt{smooth} field of \ref{def:time-orientable} is itself the bundle-section condition, it is \emph{literally} the hypothesis of \texttt{ContMDiff.mpullback\_vectorField}, whose conclusion is in turn literally the field to be produced for the pullback: the transport along $\psi$ is applied directly, with no conversion on either side. +The pullback time orientation is $\psi^*t : x \mapsto (d\psi_x)^{-1}\,t_{\psi(x)}$, which is Mathlib's $\mathtt{VectorField.mpullback}\;I\;I\;\psi\;t$. Establishing that it is a time orientation splits into one smoothness statement and two pointwise conditions, and the smoothness statement is a single step. Since the \texttt{smooth} field of \ref{def:time-orientable} is itself the bundle-section condition, it is \emph{literally} the hypothesis of \texttt{ContMDiff.mpullback\_vectorField}, whose conclusion is in turn literally the field to be produced for the pullback: the transport along $\psi$ is applied directly, with no conversion on either side. -This is the main structural gain of making the bundle-section form primitive. In the earlier chart-local formulation the smoothness argument was a \emph{round trip} between two idioms --- chart-local hypothesis to bundle section, transport along $\psi$, bundle section back to chart-local goal --- and the dictionary between the two forms was the one node of this section that was \emph{accepted as an obligation} rather than reduced to Mathlib leaves, because Mathlib has no lemma packaging the $\mathrm{tangentCoordChange}$ round trip (the only $M$-side statement about it, \texttt{continuousOn\_tangentCoordChange}, gives mere continuity). Both conversion legs and the accepted obligation between them are now gone outright: there is no second idiom to translate to, so the \emph{time-orientation} smoothness chain below --- \ref{lmm:mpullback-vectorField-contMDiff-of-diffeo} and its consumers --- has no accepted obligation in it at all. This is a statement about that chain only, and not about the section as a whole: the metric side's hom-bundle ingredient, smoothness of $x \mapsto d\psi_x$, is likewise settled: its Mathlib route is now pinned down in \ref{lmm:pullback-metric-smooth-in-charts} (\texttt{ContMDiffAt.mfderiv\_const} plus the definitional $\mathtt{inTangentCoordinates}$/$\mathtt{inCoordinates}$ match), leaving there only two local algebraic helpers and no smoothness gap. +\emph{Design note: why the smoothness fields are bundle-section conditions.} With a chart-local smoothness field, the smoothness argument would be a \emph{round trip} between two idioms --- chart-local hypothesis to bundle section, transport along $\psi$, bundle section back to chart-local goal --- and the dictionary between the two forms could not be reduced to Mathlib leaves, because Mathlib has no lemma packaging the $\mathrm{tangentCoordChange}$ round trip (the only $M$-side statement about it, \texttt{continuousOn\_tangentCoordChange}, gives mere continuity). With the bundle-section form there is no second idiom to translate to, so the \emph{time-orientation} smoothness chain below --- \ref{lmm:mpullback-vectorField-contMDiff-of-diffeo} and its consumers --- reduces entirely to Mathlib. The metric side's hom-bundle ingredient, smoothness of $x \mapsto d\psi_x$, reduces to Mathlib likewise, by the route given in \ref{lmm:pullback-metric-smooth-in-charts} (\texttt{ContMDiffAt.mfderiv\_const} plus the definitional $\mathtt{inTangentCoordinates}$/$\mathtt{inCoordinates}$ match), leaving there only two local algebraic helpers and no smoothness gap. \begin{lemma}[The Pullback of a Bundle-Smooth Vector Field Along a Diffeomorphism is Bundle-Smooth] \label{lmm:mpullback-vectorField-contMDiff-of-diffeo} @@ -1831,7 +1829,7 @@ \subsection{Pullback metrics and cross-metric isometries} \begin{align} \mathtt{CMDiff}\;\infty\;\big(\mathtt{T\%}\;(\mathtt{VectorField.mpullback}\;I\;I\;\psi\;V)\big). \end{align} - This node was always stated in bundle-section terms, and it is now consumed directly: the hypothesis $hV$ is \emph{literally} the \texttt{smooth} field of \ref{def:time-orientable}, so applying the node at $V = t$ needs no conversion, and its conclusion is literally the \texttt{smooth} field to be produced for $\psi^*t$. + This node is stated in bundle-section terms and is consumed directly: the hypothesis $hV$ is \emph{literally} the \texttt{smooth} field of \ref{def:time-orientable}, so applying the node at $V = t$ needs no conversion, and its conclusion is literally the \texttt{smooth} field to be produced for $\psi^*t$. \end{lemma} \begin{proof} \leanok @@ -1960,7 +1958,7 @@ \subsection{Pullback metrics and cross-metric isometries} \end{align} and rewrite the two arguments on the left with \ref{lmm:mfderiv-symm-cancel-left}, which turns them into $u$ and $u'$. The two mutual-inverse identities are \ref{lmm:mfderiv-symm-cancel-left} and \ref{lmm:mfderiv-symm-cancel-right} as they stand. - This node exists to replace a hand-wave. The reverse inclusions in \ref{lmm:cross-metric-chronological-future-image} and \ref{lmm:cross-metric-chronological-past-image} apply \ref{lmm:cross-metric-isometry-preserves-chronology} to $\psi^{-1}$, which requires $\psi^{-1}$ to be a cross-metric isometry in the \emph{opposite} direction; that is not the defining equation of \ref{def:cross-metric-isometry} ``read backwards'', since reading it backwards gives an equation about $d\psi$, not about $d(\psi^{-1})$, and passing between the two is exactly the cancellation above. + This node is needed because the reverse inclusions in \ref{lmm:cross-metric-chronological-future-image} and \ref{lmm:cross-metric-chronological-past-image} apply \ref{lmm:cross-metric-isometry-preserves-chronology} to $\psi^{-1}$, and this requires $\psi^{-1}$ to be a cross-metric isometry in the \emph{opposite} direction; that is not the defining equation of \ref{def:cross-metric-isometry} ``read backwards'', since reading it backwards gives an equation about $d\psi$, not about $d(\psi^{-1})$, and passing between the two is exactly the cancellation above. \end{proof} \begin{lemma}[Cross-Metric Isometries Preserve the Causal Classification] @@ -1996,9 +1994,9 @@ \subsection{Pullback metrics and cross-metric isometries} hf &: \mathtt{MDifferentiableWithinAt}\;I\;I'\;\mu\;P\;s, \\ h &: P \subseteq \mu^{-1}(u), \qquad hxs : \mathtt{UniqueMDiffWithinAt}\;I\;P\;s, \end{align} - of which two are easy to overlook. The uniqueness hypothesis is \emph{pointwise} --- a $\mathtt{UniqueMDiffWithinAt}$ at the single parameter $s$, not a $\mathtt{UniqueMDiffOn}$ on the whole of $P$ --- so what \ref{lmm:path-parameter-unique-diff} supplies must be specialised to $s$ and converted, as $(\dots\,s\,hs).\mathtt{uniqueMDiffWithinAt}$. And there is a set side condition $P \subseteq \mu^{-1}(u)$ relating the inner set to the outer one; here $u = \mathtt{univ}$, so it is immediate, and correspondingly the outer derivative is an unrestricted \texttt{mfderiv} obtained by \texttt{mfderivWithin\_univ}. Differentiability of $\mu$ within $P$ comes from its smoothness, and differentiability of $\psi$ from \texttt{Diffeomorph.mdifferentiable} (with side condition $n \neq 0$), which is what the repository template cited below actually uses --- not from \ref{lmm:mfderiv-diffeo-linear-equiv}, which delivers a \texttt{ContinuousLinearEquiv} rather than an $\mathtt{MDifferentiableWithinAt}$ hypothesis. + of which two are easy to overlook. The uniqueness hypothesis is \emph{pointwise} --- a $\mathtt{UniqueMDiffWithinAt}$ at the single parameter $s$, not a $\mathtt{UniqueMDiffOn}$ on the whole of $P$ --- so what \ref{lmm:path-parameter-unique-diff} supplies must be specialised to $s$ and converted, as $(\dots\,s\,hs).\mathtt{uniqueMDiffWithinAt}$. And there is a set side condition $P \subseteq \mu^{-1}(u)$ relating the inner set to the outer one; here $u = \mathtt{univ}$, so it is immediate, and correspondingly the outer derivative is an unrestricted \texttt{mfderiv} obtained by \texttt{mfderivWithin\_univ}. Differentiability of $\mu$ within $P$ comes from its smoothness, and differentiability of $\psi$ from \texttt{Diffeomorph.mdifferentiable} (with side condition $n \neq 0$), as in the single-metric proof cited below --- not from \ref{lmm:mfderiv-diffeo-linear-equiv}, which delivers a \texttt{ContinuousLinearEquiv} rather than an $\mathtt{MDifferentiableWithinAt}$ hypothesis. - Do not re-derive this: the repository already contains the single-metric form of exactly this statement, \texttt{Physicslib4.Spacetime.Isometry.mfderivWithin\_comp\_diffeo} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean:43}, whose proof carries out precisely the four steps above (including the \texttt{uniqueMDiffWithinAt} specialisation and the \texttt{mfderivWithin\_univ} rewrite). The cross-metric statement is obtained by copying it with the target metric changed, since the identity is about the differential of $\psi$ alone and mentions no metric. Similarly, the unique-differentials input \ref{lmm:path-parameter-unique-diff} is already proved as \texttt{Physicslib4.Spacetime.Path.uniqueDiffOn\_parameterSpace} in \texttt{Physicslib4/Spacetime/Curves.lean:119} and should be cited rather than reproved. + The single-metric form of exactly this statement is \texttt{Physicslib4.Spacetime.Isometry.mfderivWithin\_comp\_diffeo} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean}, whose proof carries out precisely the four steps above (including the \texttt{uniqueMDiffWithinAt} specialisation and the \texttt{mfderivWithin\_univ} rewrite). The cross-metric statement differs from it only in the target metric, since the identity is about the differential of $\psi$ alone and mentions no metric. The unique-differentials input \ref{lmm:path-parameter-unique-diff} is \texttt{Physicslib4.Spacetime.Path.uniqueDiffOn\_parameterSpace} in \texttt{Physicslib4/Spacetime/Curves.lean}. \end{proof} \begin{lemma}[Pushforward of a Path Under a Cross-Metric Isometry] @@ -2012,7 +2010,7 @@ \subsection{Pullback metrics and cross-metric isometries} \leanok The parameter space and its properties are copied. Continuity and smoothness of $\psi \circ \mu$ follow by composing the smooth $\psi$ with the smooth $\mu$. Non-vanishing of the tangent vector is the only real obligation: rewrite it with \ref{lmm:cross-metric-pushforward-path-tangent} and use that $d\psi_{\mu(s)}$ is injective (\ref{lmm:mfderiv-diffeo-linear-equiv}) together with non-vanishing of $\dot\mu(s)$. - Again this should be assembled from the existing template rather than rederived: \texttt{Physicslib4.Spacetime.Isometry.pushforwardPath} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean:70} is the single-metric version of this very construction, and its \texttt{nonvanishing} field is the template for the obligation above --- it rewrites with \texttt{mfderivWithin\_comp\_diffeo}, then with $\leftarrow$\,\texttt{Diffeomorph.mfderivToContinuousLinearEquiv\_coe} and \texttt{ContinuousLinearEquiv.coe\_coe} to expose the equivalence, and finishes with its \texttt{injective}. The remaining fields (\texttt{parameterSpace}, \texttt{isClosed}, \texttt{isConnected}, \texttt{nontrivial}, \texttt{continuousOn}, \texttt{smoothOn}) are copied verbatim from that template, none of them mentioning a metric. + This follows \texttt{Physicslib4.Spacetime.Isometry.pushforwardPath} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean}, the single-metric version of this very construction, whose \texttt{nonvanishing} field is proved the same way as the obligation above --- it rewrites with \texttt{mfderivWithin\_comp\_diffeo}, then with $\leftarrow$\,\texttt{Diffeomorph.mfderivToContinuousLinearEquiv\_coe} and \texttt{ContinuousLinearEquiv.coe\_coe} to expose the equivalence, and finishes with its \texttt{injective}. The remaining fields (\texttt{parameterSpace}, \texttt{isClosed}, \texttt{isConnected}, \texttt{nontrivial}, \texttt{continuousOn}, \texttt{smoothOn}) are the same as in \texttt{pushforwardPath}, none of them mentioning a metric. \end{proof} \begin{lemma}[The Pushforward Preserves the Timelike and Causal Conditions] @@ -2064,7 +2062,7 @@ \subsection{Pullback metrics and cross-metric isometries} \leanok The inclusion $\subseteq$ is \ref{lmm:cross-metric-isometry-preserves-chronology} applied to $p \ll_1 q$. For $\supseteq$, note that $\psi^{-1}$ is an isometry from $(M,g_2)$ to $(M,g_1)$ by \ref{lmm:cross-metric-isometry-symm}, and preserves the future orientation by the second half of the two-sided hypothesis. Applying \ref{lmm:cross-metric-isometry-preserves-chronology} to $\psi^{-1}$ at the point $\psi(p)$ gives $\psi^{-1}\big(I^+_2(\psi(p))\big) \subseteq I^+_1(p)$, which is the reverse inclusion after applying the bijection $\psi$. - Take the skeleton from the repository rather than inventing one: the single-metric forms \texttt{Physicslib4.Spacetime.Isometry.chronologicalFuture\_image\_subset} and \texttt{...chronologicalFuture\_image} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean:270,294} are exactly this argument, and the cross-metric version differs only in carrying two metrics. In particular their proofs use \emph{neither} \texttt{Set.image\_subset\_iff} \emph{nor} any \texttt{Equiv.image\_eq\_preimage}-style rewriting, which is the tempting but wrong route: the $\subseteq$ half destructures the image membership directly (\texttt{rintro \_ $\langle$q, hq, rfl$\rangle$}) and the $\supseteq$ half exhibits the witness $\psi^{-1}(r)$ together with the point-level cancellation \texttt{toDiffeo\_inv\_apply}. The chronology step itself is lifted along the transitive closure by \texttt{Relation.TransGen.lift}. + The single-metric forms \texttt{Physicslib4.Spacetime.Isometry.chronologicalFuture\_image\_subset} and \texttt{...chronologicalFuture\_image} in \texttt{Physicslib4/Spacetime/IsometryCausality.lean} are exactly this argument, and the cross-metric version differs only in carrying two metrics. In particular the proof uses \emph{neither} \texttt{Set.image\_subset\_iff} \emph{nor} any \texttt{Equiv.image\_eq\_preimage}-style rewriting: the $\subseteq$ half destructures the image membership directly (\texttt{rintro \_ $\langle$q, hq, rfl$\rangle$}) and the $\supseteq$ half exhibits the witness $\psi^{-1}(r)$ together with the point-level cancellation \texttt{toDiffeo\_inv\_apply}. The chronology step itself is lifted along the transitive closure by \texttt{Relation.TransGen.lift}. \end{proof} \medskip diff --git a/blueprint/src/sections/sec10/spectral-theorems.tex b/blueprint/src/sections/sec10/spectral-theorems.tex index f736f2f..f93d396 100644 --- a/blueprint/src/sections/sec10/spectral-theorems.tex +++ b/blueprint/src/sections/sec10/spectral-theorems.tex @@ -1,5 +1,5 @@ \section{Spectral Theorems}\label{sctn:spectral-theorems} -Here we will state and prove the \textbf{Spectral Theorem for Bounded, Self-Adjoint Operators}~(\ref{thrm:spectral-theorem-for-bounded-operators}). This theorem sits at the core of much of AQFT, and extensive use of this theorem will be made in subsequent work. +Here we will state and prove the \textbf{Spectral Theorem for Bounded, Self-Adjoint Operators}~(\ref{thrm:spectral-theorem-for-bounded-operators}). This theorem sits at the core of much of AQFT, and is used throughout Sections~\ref{sctn:unbounded-spectral-theorems} and~\ref{sctn:stones-theorem}. Here, we generally follow the clear, straightforward presentation of \href{https://doi.org/10.1007/978-1-4614-7116-5}{Quantum Theory for Mathematicians}. @@ -22,7 +22,7 @@ \subsubsection{Elementary Properties of Bounded Operators} \item \textit{(Conjugate-linear in the first argument, linear in the second.)} $\left< c\phi, \psi \right> = \overline{c} \left< \phi, \psi \right>$ and $\left< \phi, c\psi \right> = c \left< \phi, \psi \right>$. \item \textit{(Additivity.)} $\left< \phi + \psi, \chi \right> = \left< \phi, \chi \right> + \left< \psi, \chi \right>$ and $\left< \phi, \psi + \chi \right> = \left< \phi, \psi \right> + \left< \phi, \chi \right>$. \end{enumerate} - Point 3 fixes the \textit{physics} convention — the conjugate is taken on the \textbf{first} factor. This choice is load-bearing rather than cosmetic: several expansions below, the polarization formula and the $b^2$ inequality among them, change sign under the opposite convention. It is the convention used throughout this section and its sequel. + Point 3 fixes the \textit{physics} convention — the conjugate is taken on the \textbf{first} factor. This choice is load-bearing rather than cosmetic: several expansions below, the polarization formula and the $b^2$ inequality among them, change sign under the opposite convention. It is the convention used throughout this section and Section~\ref{sctn:unbounded-spectral-theorems}. \end{definition} \begin{definition}[Norm Induced by an Inner Product] @@ -90,7 +90,7 @@ \subsubsection{Elementary Properties of Bounded Operators} \lean{Physicslib4.Spectral.one_apply_and_indicator_apply} \uses{def:identity-operator, def:indicator-function} \leanok - Retained as a compound reference to Definition~\ref{def:identity-operator} and Definition~\ref{def:indicator-function}, which now state these two unrelated notations separately. Citations of this anchor remain valid; new citations should prefer whichever of the two is actually needed. + A compound reference to Definition~\ref{def:identity-operator} and Definition~\ref{def:indicator-function}, which state these two unrelated notations separately. Citations should prefer whichever of the two is actually needed. \end{definition} We also fix the notation for the orthogonal complement of a subset, and record the basic properties of the Lebesgue integral that are used throughout — including the meaning of $\int_E g \, d\nu$, which appears repeatedly below. @@ -1100,7 +1100,7 @@ \subsubsection{Spectral Theorem for Bounded Self-Adjoint Operators} \textit{Boundedness.} For each $\phi$, $\lvert Q(\phi) \rvert = \lim_i \lvert Q_i(\phi) \rvert \le C \lVert \phi \rVert^2$, the inequality passing to the limit because it holds for every $i$ with the \textit{same} $C$. \end{proof} -The next result requires the Hilbert-space self-duality theorem, which we state first. +The next result uses the \textbf{Riesz Theorem}~(\ref{thrm:hall-a.52}) stated above. The next in the set of "helper" propositions that we will prove is the proposition (Proposition A.63 of \href{https://doi.org/10.1007/978-1-4614-7116-5}{Hall}) @@ -2423,7 +2423,7 @@ \subsubsection{Spectral Theorem for Bounded Self-Adjoint Operators} \leanok If $A \in \mathcal{B}(\mathbf{H})$ is self-adjoint, then the spectrum $\sigma(A)$ of $A$ is in $\mathbb{R}$. - Hall's Proposition 7.7 pairs this with a second clause characterising membership of the spectrum by the existence of almost-eigenvectors; that clause is not needed in this section and is omitted here. Its analogue for normal operators is proved in the sequel. + Hall's Proposition 7.7 pairs this with a second clause characterising membership of the spectrum by the existence of almost-eigenvectors; that clause is not needed in this section and is omitted here. Its analogue for normal operators is Part 2 of Lemma~\ref{lmm:hall-10.25} in Section~\ref{sctn:unbounded-spectral-theorems}. \end{proposition} \begin{proof} \leanok @@ -5830,4 +5830,4 @@ \subsubsection{Spectral Theorem for Bounded Self-Adjoint Operators} This is the \textit{second} construction of an operator written $f(A)$ in this section. The first, Definition~\ref{def:hall-8.8}, obtains $f(A)$ from the quadratic form $Q_f$ via Proposition~\ref{prpstn:hall-a.63}, without reference to any projection-valued measure. \textbf{The two agree}: that is the content of Proposition~\ref{prpstn:mua-bounded-calculus-agrees}, which shows $f(A) = \int_{\sigma(A)} f \, d\mu^A$ for every bounded, Borel-measurable $f$. The notation $f(A)$ is therefore unambiguous, and either construction may be used. \end{definition} -a tool which will often be used. +a tool used again in Section~\ref{sctn:unbounded-spectral-theorems}. diff --git a/blueprint/src/sections/sec10/stones-theorem.tex b/blueprint/src/sections/sec10/stones-theorem.tex index 38a3b13..912c181 100644 --- a/blueprint/src/sections/sec10/stones-theorem.tex +++ b/blueprint/src/sections/sec10/stones-theorem.tex @@ -205,7 +205,7 @@ \subsection{One-Parameter Unitary Groups} \begin{proof} \leanok \uses{def:bounded-operator-notation} - Mathlib's \texttt{hasDerivAt\_exp\_smul\_const}, with scalar field $\mathbb{K} = \mathbb{R}$ and Banach algebra $\mathcal{B}(\mathbf{H})$ (\texttt{H →L[ℂ] H}), $x = iP$ and $t = 0$, gives the derivative $\exp(0 \cdot iP)\,iP = \exp(0)\,iP = iP$, using \texttt{NormedSpace.exp\_zero}. This is the instantiation used in the existing Lean proof of \texttt{Physicslib4.AQFT.exp\_generator\_unique} (\texttt{Physicslib4/AQFT/PositiveEnergy.lean}). + Mathlib's \texttt{hasDerivAt\_exp\_smul\_const}, with scalar field $\mathbb{K} = \mathbb{R}$ and Banach algebra $\mathcal{B}(\mathbf{H})$ (\texttt{H →L[ℂ] H}), $x = iP$ and $t = 0$, gives the derivative $\exp(0 \cdot iP)\,iP = \exp(0)\,iP = iP$, using \texttt{NormedSpace.exp\_zero}. This is the instantiation used in the Lean proof of \texttt{Physicslib4.AQFT.exp\_generator\_unique} (\texttt{Physicslib4/AQFT/PositiveEnergy.lean}). \end{proof} \begin{lemma}[The Generator of $\exp(itP)$] diff --git a/blueprint/src/sections/sec10/unbounded-spectral-theorems.tex b/blueprint/src/sections/sec10/unbounded-spectral-theorems.tex index 9a6dc90..3edf28a 100644 --- a/blueprint/src/sections/sec10/unbounded-spectral-theorems.tex +++ b/blueprint/src/sections/sec10/unbounded-spectral-theorems.tex @@ -1,5 +1,5 @@ \section{Unbounded Spectral Theorems}\label{sctn:unbounded-spectral-theorems} -Here we will state and prove the \textbf{Spectral Theorem for Unbounded, Self-Adjoint Operators}~(\ref{thrm:hall-10.4}). This theorem extends the \textbf{Spectral Theorem for Bounded, Self-Adjoint Operators}~(\ref{thrm:spectral-theorem-for-bounded-operators}) to the small handful of genuinely unbounded self-adjoint operators that do arise in AQFT — the momentum operator on Minkowski space is a standard example — even though the large majority of operators of interest there, local observables in particular, are bounded. It is a prerequisite for handling these unbounded operators within the rest of the AQFT work that motivated this development. +Here we will state and prove the \textbf{Spectral Theorem for Unbounded, Self-Adjoint Operators}~(\ref{thrm:hall-10.4}). This theorem extends the \textbf{Spectral Theorem for Bounded, Self-Adjoint Operators}~(\ref{thrm:spectral-theorem-for-bounded-operators}) to the small handful of genuinely unbounded self-adjoint operators that do arise in AQFT — the momentum operator on Minkowski space is a standard example — even though the large majority of operators of interest there, local observables in particular, are bounded. It is a prerequisite for handling these unbounded operators in the rest of this chapter, for instance in Stone's Theorem (Section~\ref{sctn:stones-theorem}). This section is a direct continuation of Section~\ref{sctn:spectral-theorems}, and depends on it: a number of the definitions, propositions, lemmas, and theorems proven there are reused here without repetition. Where this happens, we link directly to the relevant element in Section~\ref{sctn:spectral-theorems} rather than restating it under a new name here. @@ -77,7 +77,7 @@ \subsubsection{Unbounded Operators} Conjugating both sides of the hypothesis and using conjugate symmetry of the inner product, $\left< \chi_1, \phi \right> = \overline{\left< \phi, \chi_1 \right>} = \overline{\left< \phi, \chi_2 \right>} = \left< \chi_2, \phi \right>$ for all $\phi \in D$. This is exactly the hypothesis of Lemma~\ref{lmm:hall-dense-testing}, which gives $\chi_1 = \chi_2$. \end{proof} -The construction of the adjoint below rests on the Hilbert-space self-duality theorem, distinct from the \textbf{Riesz Representation Theorem}~(\ref{thrm:riesz-representation}) of Section~\ref{sctn:spectral-theorems} (which represents positive linear functionals on $C^0(X;\mathbb{R})$, for $X$ a compact metric space, by a measure). The result we actually need is Hall's Theorem A.52, which Section~\ref{sctn:spectral-theorems} now states as a citable result: Theorem~\ref{thrm:hall-a.52}. +The construction of the adjoint below rests on the Hilbert-space self-duality theorem, distinct from the \textbf{Riesz Representation Theorem}~(\ref{thrm:riesz-representation}) of Section~\ref{sctn:spectral-theorems} (which represents positive linear functionals on $C^0(X;\mathbb{R})$, for $X$ a compact metric space, by a measure). The result we need is Hall's Theorem A.52, stated in Section~\ref{sctn:spectral-theorems} as Theorem~\ref{thrm:hall-a.52}. If $A$ happens to be a bounded operator on all of $\mathbf{H}$, then for any $\phi \in \mathbf{H}$ the linear functional $\psi \mapsto \left< \phi, A\psi \right>$ is automatically bounded, and the \textbf{Riesz Theorem}~(\ref{thrm:hall-a.52}) produces a unique $\chi \in \mathbf{H}$ with $\left< \phi, A\psi \right> = \left< \chi, \psi \right>$ for all $\psi$; we then set $A^*\phi \equiv \chi$. If $A$ is genuinely unbounded, the functional $\psi \mapsto \left< \phi, A\psi \right>$ need not be bounded on $\text{Dom}(A)$ for every $\phi$ — but it may be bounded for \textit{some} $\phi$, and it is exactly this set of $\phi$'s on which the adjoint gets defined. @@ -270,7 +270,7 @@ \subsubsection{Unbounded Operators} Precisely what that preserves, and what it does not, is worth stating. The plain product carries the componentwise vector space structure, completeness, and the topology; so every statement below about a graph being a linear subspace, being closed, having a closure, or being the limit of a sequence means exactly what it says here. What it does not carry is the inner product: its norm is $\max\{ \left\| \phi \right\|, \left\| \psi \right\| \}$ rather than the $L^2$ norm above. The two norms are equivalent, with $\max\{ \left\| \phi \right\|, \left\| \psi \right\| \} \le \big( \left\| \phi \right\|^2 + \left\| \psi \right\|^2 \big)^{1/2} \le \sqrt{2}\,\max\{ \left\| \phi \right\|, \left\| \psi \right\| \}$, so they induce the same topology and the same convergent sequences — which is what Lemma~\ref{lmm:componentwise-convergence} asserts — but they are not isometric, and no result below depends on the numerical value of the norm on $\mathbf{H}\times\mathbf{H}$. - The one consequence to keep in mind is for later additions rather than for anything above. Nothing in this section uses orthogonality in $\mathbf{H}\times\mathbf{H}$: the adjoint's graph is shown closed directly, and closability follows from the observation that a subset of a graph is again a graph, so the familiar arguments through $\Gamma(A^*) = \big( V\Gamma(A) \big)^\perp$, with $V(\phi,\psi) = (-\psi,\phi)$, are never invoked. Any result added later that does need an orthogonal complement, an orthogonal decomposition of $\mathbf{H}\times\mathbf{H}$, or the self-adjointness of $A^*A$ must be stated over the $L^2$ product rather than the plain one. A reader comparing the two texts should accordingly not read the absence of the $L^2$ inner product from the graph declarations as an omission. + Nothing in this section uses orthogonality in $\mathbf{H}\times\mathbf{H}$: the adjoint's graph is shown closed directly, and closability follows from the observation that a subset of a graph is again a graph, so the familiar arguments through $\Gamma(A^*) = \big( V\Gamma(A) \big)^\perp$, with $V(\phi,\psi) = (-\psi,\phi)$, are never invoked. A result that does need an orthogonal complement, an orthogonal decomposition of $\mathbf{H}\times\mathbf{H}$, or the self-adjointness of $A^*A$ must be stated over the $L^2$ product rather than the plain one. A reader comparing the two texts should accordingly not read the absence of the $L^2$ inner product from the graph declarations as an omission. \end{definition} \begin{theorem}[Sequential Characterization of Closed Sets and Closures] diff --git a/blueprint/src/sections/sec5/quasilocal-algebra.tex b/blueprint/src/sections/sec5/quasilocal-algebra.tex index 1192a5b..cdea4d5 100644 --- a/blueprint/src/sections/sec5/quasilocal-algebra.tex +++ b/blueprint/src/sections/sec5/quasilocal-algebra.tex @@ -33,5 +33,3 @@ \section{Quasilocal Algebra}\label{sctn:quasilocal-algebra} $\mathfrak{U}(\mathbf{B})$ is preferred because it uses only the net and isotony, and because it is the formulation that survives in curved spacetime (Chapter 9), where a containing basis element need not exist and the quasilocal algebra need not exist either. - -Clarification. diff --git a/blueprint/src/sections/sec9/axiom-4-local-algebra.tex b/blueprint/src/sections/sec9/axiom-4-local-algebra.tex index 045c5ee..f4c9113 100644 --- a/blueprint/src/sections/sec9/axiom-4-local-algebra.tex +++ b/blueprint/src/sections/sec9/axiom-4-local-algebra.tex @@ -15,4 +15,4 @@ \section{Axiom 4 (Local Algebra)}\label{sctn:axiom-4-(local-algebra)} All ``observables'' are local observables. \end{axiom} -As shown in earlier in this blueprint, this axiom is essentially the statement that there exist ``observables'' that are not local observables, but such ``observables'' are ``experimentally indistinguishable'' from local observables and thus can be ignored. +As shown in Section~\ref{sctn:all-observables-of-interest}, this axiom is essentially the statement that there exist ``observables'' that are not local observables, but such ``observables'' are ``experimentally indistinguishable'' from local observables and thus can be ignored. diff --git a/blueprint/src/sections/sec9/axiom-5-isometric-covariance.tex b/blueprint/src/sections/sec9/axiom-5-isometric-covariance.tex index 45ae78b..0d701a9 100644 --- a/blueprint/src/sections/sec9/axiom-5-isometric-covariance.tex +++ b/blueprint/src/sections/sec9/axiom-5-isometric-covariance.tex @@ -15,7 +15,7 @@ \section{Axiom 5 (Isometric Covariance)}\label{sctn:axiom-5-(isometric-covarianc So in the current case of a Lorentzian spacetime what we should be using are isometries connected to the identity. Using this, the axiom takes the following form: -(Formalization remark.) An isometry connected to the identity automatically preserves the time orientation, so ``isometries connected to the identity'' is the same group as ``identity-component isometries that preserve the future orientation''. The Lean formalization works with the latter description: it intersects the identity component with the (explicitly orientation-preserving) subgroup, because the inclusion of the identity component into the orientation-preserving isometries relies on a Myers--Steenrod-type rigidity result not yet available in Mathlib. This is an implementation choice only; it does not alter the mathematical content of the axiom below. +(Formalization remark.) An isometry connected to the identity automatically preserves the time orientation, so ``isometries connected to the identity'' is the same group as ``identity-component isometries that preserve the future orientation''. The Lean formalization works with the latter description: it intersects the identity component with the (explicitly orientation-preserving) subgroup, because the inclusion of the identity component into the orientation-preserving isometries relies on a Myers--Steenrod-type rigidity result that Mathlib does not provide. This is an implementation choice only; it does not alter the mathematical content of the axiom below. \begin{axiom}[Isometric Covariance] Let $\mathbf{B}$ be any basis element of the Alexandrov topology on a Lorentzian spacetime $M$, i.e. any set of the form $I^+(p) \cap I^-(q)$. diff --git a/blueprint/src/sections/sec9/prologue.tex b/blueprint/src/sections/sec9/prologue.tex index 512e8d2..d68abbc 100644 --- a/blueprint/src/sections/sec9/prologue.tex +++ b/blueprint/src/sections/sec9/prologue.tex @@ -9,7 +9,7 @@ \subsection{Smooth Manifold} \subsection{Existence of a Lorentzian Metric} As we wish this $M$ to be a ``Lorentzian spacetime'', it should support a Lorentzian metric. Not all such $M$ support Lorentzian metrics. In fact for such an $M$ to support a Lorentzian metric, it must admit additional structure. -In particular, as we have seen previously, the required structure follows from the theorem (Theorem 2.69 from \href{https://doi.org/10.1007/978-3-319-91755-9}{Lee}) +In particular, the required structure follows from the theorem (Theorem 2.69 from \href{https://doi.org/10.1007/978-3-319-91755-9}{Lee}) \begin{theorem}[Existence of a Lorentz Metric] A smooth manifold $M$ admits a smooth Lorentz metric if and only if it admits a smooth, nowhere-vanishing global vector field. diff --git a/home_page/_config.yml b/home_page/_config.yml index d2f4432..aca55a1 100644 --- a/home_page/_config.yml +++ b/home_page/_config.yml @@ -1,6 +1,6 @@ # Welcome to Jekyll! # -# This config file is meant for settings that affect your whole blog, values +# This config file is meant for settings that affect the whole site, values # which you are expected to set up once and rarely edit after that. If you find # yourself editing this file very often, consider using Jekyll's data files # feature for the data you need to update frequently. @@ -21,7 +21,7 @@ title: physicslib4 #email: your-email@example.com description: by KellyJDavis -baseurl: "" # the subpath of your site, e.g. /blog +baseurl: "" # the subpath of your site, e.g. /docs url: "https://physicslib.github.io/physicslib4" # the base hostname & protocol for your site, e.g. http://example.com twitter_username: github_username: physicslib diff --git a/home_page/_includes/mathjax.html b/home_page/_includes/mathjax.html index 47aa9fd..4f33ba8 100644 --- a/home_page/_includes/mathjax.html +++ b/home_page/_includes/mathjax.html @@ -11,7 +11,7 @@ } }; - + diff --git a/home_page/axioms.md b/home_page/axioms.md index 5df4157..6a29e74 100644 --- a/home_page/axioms.md +++ b/home_page/axioms.md @@ -32,11 +32,8 @@ Axiom 6 (Primitivity) from the original 1964 Haag–Kastler paper is not carried **General Covariance (Definition 677, `Physicslib4.AQFT.HaagKastlerCurved.IsGenerallyCovariant`)** is deliberately *not* a sixth axiom. Axioms 1–5 each constrain a single net over a single fixed spacetime, whereas general covariance relates two nets over two spacetimes; it is therefore a property of the section $$L \mapsto \mathfrak{U}_L$$ assigning a net to every Lorentzian spacetime, not an extra field of the net structure. -Three changes to the axioms are worth calling out for readers coming from an earlier version of this blueprint: +## Design notes -- **Isotony now supplies its embeddings as data.** Axiom 2 (Definitions 468 and 628) fixes the family $$i_{\mathbf{B}_1 \mathbf{B}_2}$$ together with identity and composition laws, making $$\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$$ a functor on the inclusion order. Axiom 3 consumes that family rather than choosing witnesses of its own, and Axiom 5 (Definitions 507 and 632) now states its coherence condition for the same family, so that covariance-compatibility of a quasilocal algebra is a lemma (Lemma 588) rather than a hypothesis. This is what makes the quasilocal colimit well posed in Minkowski spacetime, and it removes the coherence side-hypotheses that curved-spacetime statements about nested regions previously had to carry. -- **Minkowski Axiom 3 is stated in a common containing diamond.** Definition 485 now requires completely spacelike local algebras to commute in every local algebra $$\mathfrak{U}(\mathbf{B})$$ containing both, through the Axiom 2 isotony maps, exactly as Definition 629 does in curved spacetime; the two differ only in that a containing diamond always exists in Minkowski spacetime. The former statement, commutation in the quasilocal algebra, is now Lemma 487 (`Physicslib4.AQFT.HaagKastler.localCommutativity_iff_exists_commute_ι`), proved equivalent. -- **Axiom 4 has been split.** The mathematical claim that a quasilocal algebra exists is now Theorem 490 (`Physicslib4.AQFT.HaagKastler.exists_quasilocalAlgebra`), proved from the colimit-and-completion chain; what remains as Axiom 4 (Definition 489) is the bridge principle relating physical observables to quasilocal ones, which has — by design — no mathematical consumers. - - -[Home](./) · [§10.1 GNS](sec10-1-gns.html) · [§10.2 Spectral](sec10-2-spectral.html) · [§10.3 Unbounded](sec10-3-unbounded.html) · [§10.4 Stone](sec10-4-stone.html) · [§10.5 Spacetime](sec10-5-spacetime.html) · [§10.6 Minkowski](sec10-6-haag-kastler.html) · [§10.7 Curved](sec10-7-curved.html) · [§10.8 Covariance](sec10-8-general-covariance.html) · [Axioms](axioms.html) · [Guide](guide.html) +- **Isotony supplies its embeddings as data.** Axiom 2 (Definitions 468 and 628) fixes the family $$i_{\mathbf{B}_1 \mathbf{B}_2}$$ together with identity and composition laws, making $$\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$$ a functor on the inclusion order. Axiom 3 uses that family rather than choosing witnesses of its own, and Axiom 5 (Definitions 507 and 632) states its coherence condition for the same family, so that covariance-compatibility of a quasilocal algebra is a lemma (Lemma 588) rather than a hypothesis. This is what makes the quasilocal colimit well posed in Minkowski spacetime, and it means that curved-spacetime statements about nested regions need no coherence hypotheses. +- **Local commutativity is stated in a common containing diamond.** Definition 485 requires completely spacelike local algebras to commute in every local algebra $$\mathfrak{U}(\mathbf{B})$$ containing both, through the Axiom 2 isotony maps, exactly as Definition 629 does in curved spacetime; the two differ only in that a containing diamond always exists in Minkowski spacetime. Commutation in the quasilocal algebra is the equivalent form of Lemma 487 (`Physicslib4.AQFT.HaagKastler.localCommutativity_iff_exists_commute_ι`). +- **Axiom 4 is a bridge principle; the quasilocal algebra is a theorem.** That a quasilocal algebra exists is Theorem 490 (`Physicslib4.AQFT.HaagKastler.exists_quasilocalAlgebra`), proved from the colimit-and-completion construction. Axiom 4 (Definition 489) is the bridge principle relating physical observables to quasilocal ones, which has, by design, no mathematical consumers. diff --git a/home_page/guide.md b/home_page/guide.md index e1e900b..02a3178 100644 --- a/home_page/guide.md +++ b/home_page/guide.md @@ -29,13 +29,11 @@ Chapters 1–9 unpack and analyse the original Haag–Kastler axioms one by one: - **Chapter 8 (Axiom 6 – Primitivity, p. 20)** examines faithful and irreducible representations, noting that every unital C\*-algebra already has a faithful representation (Gelfand–Naimark) so primitivity is a genuinely extra condition; this axiom is ultimately abandoned in the sharpened formulation, following later presentations by Haag himself, on the grounds that its physical motivation is thin. - **Chapter 9 (Haag–Kastler Axioms in Curved Spacetime, p. 22)** generalises the Haag–Kastler axioms from Minkowski spacetime to curved (Lorentzian) spacetime. It first pins down a precise definition of Lorentzian spacetime and its Alexandrov topology, then shows—via a Schwarzschild black-hole counterexample—that a quasilocal algebra need not exist on a generic Lorentzian spacetime, so Local Commutativity and the local-algebra axiom must be restated relative to a common containing region rather than a global algebra. The final section replaces Lorentz covariance with covariance under identity-component isometries, together with the Myers–Steenrod formalisation remark recorded under [Formalisation status](./#formalisation-status). -The lower numbers, 1 through 12, appear in these chapters: - The lower numbers, 1 through 12, label supporting theorems and definitions introduced along the way in the motivational Chapters 4–9. None of them carries a Lean declaration, and they are **not** formalised: C\*-spectrum invariance under inclusion (Theorem 1), uniqueness of the C\*-norm (Theorem 2), strong density of unital \*-algebras (Theorem 3), the Bounded Linear Transformation Theorem (Theorem 4), Gelfand–Naimark (Theorem 5), the rarity of primitive abelian C\*-algebras (Lemma 6), existence of a Lorentz metric (Theorem 7), causal convexity and strong causality (Definitions 8–9), properties of the Alexandrov topology (Theorem 10), Lorentzian spacetime (Definition 11), and the local observable (Definition 12). ## The section pages -Only Chapter 10 is formalised in Lean. Its items are numbered consecutively from Definition 13 through Definition 678 — 662 declarations, plus the three standing conventions of §10.2 and §10.3. Each section page below summarises its section and lists **every** item, in numerical order, under the blueprint subsection in which it appears. Each entry links to the node in the web blueprint and names the principal Lean declaration that realises it; where a node maps onto several declarations, the count of the remainder is shown. The lists are derived mechanically from the blueprint's own `\lean` and `\leanok` annotations. +Only Chapter 10 is formalised in Lean. Its items are numbered consecutively from Definition 13 through Definition 677 — 662 declarations, plus the three standing conventions of §10.2 and §10.3. Each section page below summarises its section and lists **every** item, in numerical order, under the blueprint subsection in which it appears. Each entry links to the node in the web blueprint and names the principal Lean declaration that realises it; where a node maps onto several declarations, the count of the remainder is shown. The lists are derived mechanically from the blueprint's own `\lean` and `\leanok` annotations. - [§10.1 GNS Construction (pp. 29–38)](sec10-1-gns.html) - [§10.2 Spectral Theorems (pp. 38–155)](sec10-2-spectral.html) diff --git a/home_page/index.md b/home_page/index.md index 7128960..2d0d458 100644 --- a/home_page/index.md +++ b/home_page/index.md @@ -61,19 +61,20 @@ At a glance, the 662 declarations break down by top-level section as follows (cl - [§10.7 Haag–Kastler Axioms in curved spacetime (pp. 328–338)](sec10-7-curved.html) - [§10.8 General Covariance: Nets on Pullback-Related Metrics (pp. 338–339)](sec10-8-general-covariance.html) -## Formalisation status - -The blueprint annotates every node with the Lean declarations that realise it, so the status of each node is a matter of record rather than of estimate. Every node in Chapter 10 is formalised. There is one place where the Lean is deliberately shaped differently from the prose; it is flagged in the blueprint text itself and collected here so that it is not discovered by surprise. The project contains no `sorry`. +## Highlights -**Recently completed: Stone's Theorem.** The new [§10.4](sec10-4-stone.html) (Definition 289 through Theorem 329, pp. 236–249) proves Stone's Theorem, the correspondence between strongly continuous one-parameter unitary groups and self-adjoint operators, and four new §10.3 nodes supply what it needs: a self-adjoint operator has no proper symmetric extension (Lemma 189), the spectral measure of a self-adjoint operator (Definition 286), its functional calculus (Definition 287), and the agreement of that calculus with the bounded one for bounded functions (Lemma 288). All 39 nodes are formalised and proved; the theorem itself is `Physicslib4.Spectral.Stone.stone` in `Physicslib4/Spectral/Stone/Theorem.lean`. With Stone's Theorem in Lean, positive energy (the spectrum condition behind vacuum and ground states) is now stated with a genuine unbounded generator: a one-parameter unitary group has positive energy when it is strongly continuous and its generator is a positive operator, equivalently $$V(t) = e^{itA}$$ with $$A$$ positive and self-adjoint (Theorem 603, `Physicslib4.AQFT.isPositiveEnergy_iff_exists_exp`). The former bounded-generator restriction is gone, and the project records no remaining restrictions. +- **The Haag–Kastler axioms in Minkowski spacetime** ([§10.6](sec10-6-haag-kastler.html), [the axioms at a glance](axioms.html)). Five axioms, Definitions 467, 468, 485, 489 and 507: local C\*-algebras on the Alexandrov diamonds; isotony as a family of embeddings with identity and composition laws, so that the net is a functor on the inclusion order; local commutativity of completely spacelike local algebras in every diamond containing both; Axiom 4 as the bridge principle relating physical observables to quasilocal ones; and Lorentz covariance. They are bundled as a Haag–Kastler net (Definition 508, `Physicslib4.AQFT.HaagKastler.HaagKastlerNet`), and the quasilocal algebra of a net is constructed from the net alone, as a directed colimit followed by completion (Theorem 490, `Physicslib4.AQFT.HaagKastler.exists_quasilocalAlgebra`). +- **The Haag–Kastler axioms in Lorentzian spacetime** ([§10.7](sec10-7-curved.html)). The same five axioms on a Lorentzian spacetime, Definitions 627–632, with isometric covariance under the identity component of the isometry group in place of Lorentz covariance, and with commutation and completeness stated relative to a common containing region, since a quasilocal algebra need not exist. They are bundled as `Physicslib4.AQFT.HaagKastlerCurved.HaagKastlerNet` (Definition 633), and general covariance (Definition 677, [§10.8](sec10-8-general-covariance.html)) relates the nets over diffeomorphism-related spacetimes. +- **The spectral theorem for bounded self-adjoint operators** ([§10.2](sec10-2-spectral.html)). Every bounded self-adjoint operator $$A$$ on a Hilbert space is $$\int_{\sigma(A)} \lambda \, d\mu^A(\lambda)$$ for a unique projection-valued measure $$\mu^A$$ on its spectrum (Theorem 162, `Physicslib4.Spectral.existsUnique_spectralMeasure`), obtained through the continuous functional calculus, an operator-valued Riesz representation theorem and the bounded Borel functional calculus. +- **The spectral theorem for unbounded self-adjoint operators** ([§10.3](sec10-3-unbounded.html)). Every self-adjoint operator $$A$$, bounded or not, is $$\int_{\mathbb{R}} \lambda \, d\mu^A(\lambda)$$ for a unique projection-valued measure $$\mu^A$$ on $$\mathbb{R}$$, concentrated on the spectrum (Theorem 285, `Physicslib4.Spectral.Unbounded.existsUnique_spectralMeasure_unbounded`). The proof passes through the Cayley transform and the spectral theorem for bounded normal operators; the resulting functional calculus (Definition 287) underlies Stone's theorem in [§10.4](sec10-4-stone.html). -**Recently completed: smoothness of the inverse musical isomorphism.** Lemma 358 (§10.5, p. 255), the last unformalised node, states that $$x \mapsto \flat_x^{-1}$$ is a smooth section of $$\mathrm{Hom}(T^*M, TM)$$. It is formalised as `Physicslib4.Geometry.PseudoRiemannianMetric.contMDiff_flatEquiv_symm` in `Physicslib4/Geometry/PseudoRiemannian/Basic.lean`, following the blueprint: in local trivialisations the coordinate form of $$\flat_x^{-1}$$ is the inverse of the coordinate form of the metric, and inversion of continuous linear maps is smooth. +## Formalisation status -**Recently completed: the von Neumann density theorem.** Theorem 506, "Quasilocal Observables are Strongly Dense in the Bicommutant" (§10.6.2, p. 307), formalised as `Physicslib4.AQFT.HaagKastler.dense_range_in_bicommutant` in `Physicslib4/AQFT/HaagKastler/StrongDensity.lean`, is now proved. Mathlib has the strong operator topology (`PointwiseConvergenceCLM`) and the double commutant property of bundled von Neumann algebras, but not the density theorem itself, so the project proves it locally, following Murphy, Lemma 4.1.4, in the new §10.6.2 (Lemmas 496–505, Definition 499): a closed subspace invariant under an operator and its adjoint has a commuting projection (Lemma 496, in `Physicslib4/Operators/ReducingSubspace.lean`), so the closed cyclic subspace of a vector reduces the representation (Lemma 497) and the one-vector case follows (Lemma 498); a finite amplification $$\pi^\iota$$ on $$\ell^2(\iota; H)$$ (Definition 499, Lemmas 500–503, in `Physicslib4/Operators/DensityTheorem.lean`) carries the bicommutant diagonally into its own bicommutant, which upgrades the one-vector case to finitely many vectors (Lemma 504); and a neighbourhood basis for the strong operator topology (Lemma 505) turns that into density. The Kaplansky density theorem, which would additionally keep approximants self-adjoint and norm-bounded, remains out of scope; nothing in the project needs it. +The blueprint annotates every node with the Lean declarations that realise it, so the status of each node is a matter of record rather than of estimate. Every node in Chapter 10 is formalised. There is one place where the Lean is deliberately shaped differently from the prose; it is flagged in the blueprint text itself and collected here so that it is not discovered by surprise. The project contains no `sorry`. **Formalised, but the Lean is shaped differently from the prose (one place).** The node below carries Lean declarations and a formalised proof; the caveat is one of presentation, not of coverage or content. -- **Axiom 5 in curved spacetime (Definition 632).** "Isometries connected to the identity" and "identity-component isometries preserving the future orientation" describe the same group, but the inclusion of the former in the latter rests on a Myers–Steenrod-type rigidity result not yet in Mathlib. The Lean therefore intersects the identity component with the explicitly orientation-preserving subgroup. This is an implementation choice and does not alter the mathematical content of the axiom. +- **Axiom 5 in curved spacetime (Definition 632).** "Isometries connected to the identity" and "identity-component isometries preserving the future orientation" describe the same group, but the inclusion of the former in the latter rests on a Myers–Steenrod-type rigidity result that Mathlib does not provide. The Lean therefore intersects the identity component with the explicitly orientation-preserving subgroup. This is an implementation choice and does not alter the mathematical content of the axiom. ## Useful links @@ -90,6 +91,8 @@ The blueprint annotates every node with the Lean declarations that realise it, s 3. Run `lake exe cache get!` to download built dependencies (this speeds up the build process). 4. Run `lake build` to build all files in this repository. +The project targets Lean and Mathlib v4.34.1, as pinned by `lean-toolchain` and `lakefile.toml`. + For more on getting started with Lean, visit the [Lean community website](https://leanprover-community.github.io) and the [Mathlib documentation](https://leanprover-community.github.io/mathlib4_docs/). Contributions are welcome. If you would like to contribute, please add your work to a new branch and open a pull request. Your PR will need to pass the relevant status checks, be approved by a reviewer, and have no conflicts with the base branch before it can be merged. diff --git a/home_page/sec10-3-unbounded.md b/home_page/sec10-3-unbounded.md index 1759a08..85719f7 100644 --- a/home_page/sec10-3-unbounded.md +++ b/home_page/sec10-3-unbounded.md @@ -16,7 +16,7 @@ usemathjax: true - *Bounded normal operators (p. 199, items 241–259).* For normal operators (Definition 241) the norm equals the spectral radius (Proposition 246). Spectral subspaces (Definition 247, Propositions 248–249) and almost eigenvectors (Definition 251, Lemmas 250 and 252–256) lead to the two-variable spectral mapping theorem for polynomials in $$A$$ and $$A^*$$ (Theorem 257, Corollary 258), and hence to the continuous functional calculus for a normal operator (Theorem 259). Lemma 253 is stated with a constant uniform over all eigenvalues $$\lvert \lambda \rvert \le R$$, which is what the proof of Theorem 257 consumes; the Lean proof of Theorem 257 itself takes a shorter route through Mathlib's continuous functional calculus (`cfc_map_spectrum`), as a formalization note in the blueprint records, while the almost-eigenvector lemmas are formalised in their own right. - *From a continuous functional calculus to a projection-valued measure (p. 213, items 260–274).* Under standing hypotheses (Convention 260), an abstract continuous functional calculus (Definition 261) is extended, through its associated measures (Definition 263), to bounded measurable functions (Definition 266). The extension is linear, multiplicative and compatible with conjugation (Lemmas 267 and 271, Proposition 270), and it yields a projection-valued measure (Theorem 272). Combined with the previous stage, this gives the Spectral Theorem for Bounded Normal Operators (Theorem 274). - *The Cayley transform and the unbounded spectral theorem (pp. 222–231, items 275–285).* Unitary operators are normal, with spectrum on the unit circle (Lemmas 275–276). The Cayley map (Lemma 277) and the Cayley transform of a self-adjoint operator (Theorem 278), with its spectral mapping (Lemma 279), reduce the unbounded self-adjoint case to the bounded normal one: a projection-valued measure is transported along a Borel bijection (Lemma 281), the Cayley transform omits the point $$1$$ (Lemma 282), and the spectral measure is transported through the Cayley transform (Theorem 284). The result is the Spectral Theorem for Unbounded, Self-Adjoint Operators (Theorem 285). -- *The functional calculus of an unbounded self-adjoint operator (p. 234, items 286–288).* Added for §10.4. The spectral measure of a self-adjoint operator is named (Definition 286), the functional calculus $$f(A)$$ is the integral of $$f$$ against it (Definition 287), and for bounded $$f$$ it agrees with the bounded calculus of §10.2 (Lemma 288). Earlier in the section, a self-adjoint operator is shown to have no proper symmetric extension (Lemma 189), which §10.4 uses to identify the generator of $$e^{itA}$$ with $$A$$. +- *The functional calculus of an unbounded self-adjoint operator (p. 234, items 286–288).* These items supply what §10.4 needs. The spectral measure of a self-adjoint operator is named (Definition 286), the functional calculus $$f(A)$$ is the integral of $$f$$ against it (Definition 287), and for bounded $$f$$ it agrees with the bounded calculus of §10.2 (Lemma 288). Earlier in the section, a self-adjoint operator is shown to have no proper symmetric extension (Lemma 189), which §10.4 uses to identify the generator of $$e^{itA}$$ with $$A$$. **Where the Lean lives:** `Physicslib4/Spectral/Unbounded/` (`Basic`, `Spectrum`, `DirectSum`, `Integral`, `Normal`, `AbstractCalculus`, `Cayley`) diff --git a/home_page/sec10-5-spacetime.md b/home_page/sec10-5-spacetime.md index d689313..5d3672f 100644 --- a/home_page/sec10-5-spacetime.md +++ b/home_page/sec10-5-spacetime.md @@ -9,17 +9,17 @@ usemathjax: true # §10.5 Spacetime and causal structure (pp. 249–287) -137 items (Definitions 330–466), building the entire causal and topological apparatus the axioms are indexed on. The trips underlying the chronological and causal relations $$\ll$$ and $$\prec$$ are genuine geodesics of the Levi-Civita connection of the metric, which the section constructs for an arbitrary pseudo-Riemannian metric on top of Mathlib's covariant derivatives (Mathlib itself has only a Riemannian Levi-Civita connection and no geodesics). It proceeds in nine layers. +137 items (Definitions 330–466), building the entire causal and topological apparatus the axioms are indexed on. The trips underlying the chronological and causal relations $$\ll$$ and $$\prec$$ are genuine geodesics of the Levi-Civita connection of the metric, which the section constructs for an arbitrary pseudo-Riemannian metric on top of Mathlib's covariant derivatives. It proceeds in nine layers. - *Spacetime, tangent-vector causality, and curves (pp. 249–254, items 330–353).* Gives precise definitions of spacetime (Definition 330) and standard Minkowski spacetime (Definition 331); classifies tangent vectors as timelike, spacelike, or null (Definition 332) and proves the trichotomy (Lemma 333), the reverse Cauchy–Schwarz and reverse triangle inequalities for timelike vectors (Lemmas 334–335), and the cone geometry—orientation of pointing vectors, the sign lemma, definiteness of the spacelike complement of a timelike vector, and convexity of the cones (Lemmas 338–341)—alongside time orientations (Definition 336) and future- and past-pointing vectors (Definition 337). Then paths, curves, and oriented curves are defined as equivalence classes of paths up to reparametrisation (Definitions 342–347), with causal type and future/past orientation each shown well-defined on the quotient (Theorems 346 and 348) and a forgetful projection from oriented to unoriented curves (Theorem 349). Endpoints (Definition 350), shown to be well defined on curves and smooth curves (Lemma 351), come with two point-set lemmas—an extremal parameter lies in the frontier, and two endpoints force a compact parameter interval (Lemmas 352–353). -- *The Levi-Civita connection and geodesics (pp. 255–258, items 354–369).* A new layer. Pseudo-Riemannian metrics (Definition 354) are smooth, symmetric, non-degenerate families of bilinear forms, with no signature condition, so everything here applies to every spacetime. Covariant derivatives are Mathlib's `IsCovariantDerivativeOn`; metric compatibility and the Levi-Civita condition (compatible and torsion-free) are defined on top of them (Definitions 355–356). The musical isomorphism $$v \mapsto g_x(v, \cdot)$$ is a linear isomorphism at each point (Lemma 357), and its inverse is a smooth section of $$\mathrm{Hom}(T^*M, TM)$$ (Lemma 358). The Koszul formula (Lemma 359), the tensoriality of the Koszul expression (Lemma 360), and the verification that the Koszul connection is a covariant derivative (Lemma 361) that is Levi-Civita (Lemma 362) give existence and uniqueness of the Levi-Civita connection (Theorem 363). Five lemmas about smooth paths—a function vanishing along a path has zero derivative along it, the covariant derivative along a curve is local, local vector fields globalise, a smooth path has a local left inverse, and its velocity extends to a smooth vector field (Lemmas 364–368)—make the geodesic condition chart-free, well defined and non-vacuous. A geodesic (Definition 369) is then an affinely parametrised smooth path $$\mu$$ with $$(\nabla_X X)(\mu(s)) = 0$$ at every interior parameter, for every smooth vector field $$X$$ extending the velocity near $$s$$. +- *The Levi-Civita connection and geodesics (pp. 255–258, items 354–369).* Pseudo-Riemannian metrics (Definition 354) are smooth, symmetric, non-degenerate families of bilinear forms, with no signature condition, so everything here applies to every spacetime. Covariant derivatives are Mathlib's `IsCovariantDerivativeOn`; metric compatibility and the Levi-Civita condition (compatible and torsion-free) are defined on top of them (Definitions 355–356). The musical isomorphism $$v \mapsto g_x(v, \cdot)$$ is a linear isomorphism at each point (Lemma 357), and its inverse is a smooth section of $$\mathrm{Hom}(T^*M, TM)$$ (Lemma 358). The Koszul formula (Lemma 359), the tensoriality of the Koszul expression (Lemma 360), and the verification that the Koszul connection is a covariant derivative (Lemma 361) that is Levi-Civita (Lemma 362) give existence and uniqueness of the Levi-Civita connection (Theorem 363). Five lemmas about smooth paths—a function vanishing along a path has zero derivative along it, the covariant derivative along a curve is local, local vector fields globalise, a smooth path has a local left inverse, and its velocity extends to a smooth vector field (Lemmas 364–368)—make the geodesic condition chart-free, well defined and non-vacuous. A geodesic (Definition 369) is then an affinely parametrised smooth path $$\mu$$ with $$(\nabla_X X)(\mu(s)) = 0$$ at every interior parameter, for every smooth vector field $$X$$ extending the velocity near $$s$$. - *Trips, futures and pasts (pp. 259–260, items 370–378).* Trips and causal trips (Definitions 370–371) are finite chains of future-oriented timelike (respectively causal) geodesic segments, geodesic in the sense of Definition 369, with matching past and future endpoints. Chronological and causal precedence are transitive (Theorem 372); the causality condition (Definition 373) makes them a strict partial order (Theorem 374); and chronological and causal futures and pasts (Definitions 375–376) come with their basic inclusion and monotonicity properties (Lemmas 377–378). - *§10.5.1 Causal diamonds (p. 260, items 379–393).* Introduces the causal diamond $$J^+(p) \cap J^-(q)$$ and the chronological (Alexandrov) diamond $$I^+(p) \cap I^-(q)$$ (Definition 379), with the structural properties of the causal diamond—monotonicity under endpoint spread, causal convexity, and that nonemptiness forces $$p \prec q$$ (Lemma 380)—and the containment of chronological diamonds in causal ones, together with the identification of the Alexandrov basis as exactly the chronological diamonds (Theorem 381). It then develops spacelike separation of points and of regions (Definitions 382–383, Lemmas 384–385), the spacelike complement $$\mathbf{B}^\perp$$ (Definition 386) and its order structure—antitone, extensive on the double complement, with the triple complement collapsing, making complementation the Galois connection attached to the spacelike-separation relation (Lemma 387). The double complement is packaged as the causal closure operator (Definition 388, Lemma 389), whose fixed points are the causally complete regions (Definition 390). These form a complete lattice—meets are intersections, joins are causal closures of unions—on which the causal complement is an order-reversing involution (Theorem 391); the set-level De Morgan laws (Lemma 392) then lift to full binary and infinitary De Morgan laws on the lattice (Theorem 393). The blueprint is careful to record what does *not* hold: the full orthocomplement law $$\mathbf{B} \wedge \mathbf{B}^\perp = \bot$$ fails at this generality, because the trip-based causal relation is irreflexive and so a point is spacelike-separated from itself. - *§10.5.2 Causal convexity (p. 265, items 394–396).* Defines a causally convex region as one containing every point causally between two of its own points (Definition 394), shows causal diamonds are causally convex (Lemma 395), and shows every spacelike complement—hence every causally complete region—is causally convex (Theorem 396). - *§10.5.3 Causal convexity: closure structure, and the Alexandrov basis theorems (p. 265, items 397–420).* The causally convex regions are shown to form a closure system (Lemma 397), giving the causal-convex hull (Definition 398) as a genuine closure operator whose closed sets are exactly the causally convex regions (Lemmas 399, Theorem 400). The subsection then turns to the Alexandrov topology (Definition 401): every diamond is open (Lemma 402); chronological futures and pasts are open under an explicit "no endpoints" hypothesis (Lemma 403) and unconditionally on standard Minkowski spacetime, where the coordinate-cone description discharges the hypothesis (Lemma 404). On standard Minkowski spacetime the componentwise directional derivative is a Levi-Civita connection (Lemma 405), hence the Levi-Civita connection is flat (Lemma 406) and affinely parametrised straight lines are geodesics (Lemma 407), so trips there are the familiar straight-line segments. Minkowski spacetime and Lorentzian spacetime are then defined (Definitions 408–409, the latter as a spacetime whose Alexandrov topology is Hausdorff), with a bundled form of spacelike separation and basis openness (Lemma 410). A point lying in no diamond is pathological: its only Alexandrov neighbourhood is the whole space (Lemma 411), and the Hausdorff assumption rules this out, forcing the diamonds to cover the space (Lemma 412). Given downward-directedness the diamonds form a genuine topological basis (Theorem 413); past and future interpolation on standard Minkowski (Lemmas 414–415) supply downward-directedness there (Lemma 416), and common chronological predecessors and successors supply upward-directedness (Lemmas 417–419), so on standard Minkowski the diamonds are an unconditional basis (Theorem 420). Upward-directedness is what the quasilocal colimit of §10.6.1 later consumes. - *§10.5.4 Dilations are causal automorphisms but not isometries (p. 272, items 421–423).* The dilations $$x \mapsto \lambda x$$ preserve the Minkowski cones (Lemma 421) and are therefore causal automorphisms (Theorem 422), yet scale the metric by $$\lambda^2$$ and so are not isometries for $$\lambda \neq 1$$ (Theorem 423). This is the counterexample that forces the general-covariance morphism of §10.8 to be specified geometrically rather than causally. - *§10.5.5 Isometries and basis-set preservation (p. 272, items 424–434).* Single-metric transport: isometries preserve the causal classification of tangent vectors (Lemma 424), paths have unique differentials and well-defined pushforwards (Lemmas 425–426), and isometries respect the Levi-Civita structure: pullbacks of vector fields and of the metric pairing, their derivatives and Lie brackets transform naturally (Lemmas 427–429), so an isometry preserves the Levi-Civita connection (Lemma 430) and maps geodesics to geodesics and back (Lemma 431). Future-orientation-preserving isometries preserve chronology (Lemma 432) and map Alexandrov-basis diamonds to diamonds (Lemma 433), which is exactly the well-definedness condition for the Axiom 5 action (Lemma 434). -- *§10.5.6 Pullback metrics and cross-metric isometries (p. 275, items 435–466).* The single-metric lemmas above compare a spacetime with itself; general covariance instead compares two different metrics on one carrier, so the transport statements are redone cross-metric. This subsection defines the pullback $$\psi^* g$$ of a spacetime metric as a bundled family of continuous bilinear forms (Definition 435) and verifies every obligation in turn: the differential of a diffeomorphism is a linear equivalence (Lemma 436), with the two round-trip cancellation identities that Mathlib does not supply for a global `Diffeomorph` proved by hand (Lemmas 437–439); the pullback metric is symmetric, non-degenerate, Lorentzian, and a smooth section of the bilinear-form bundle (Lemmas 440–443), so the pullback of a spacetime is a spacetime (Theorem 444). Two-sided preservation of future orientation is then defined (Definition 445) and the pullback time orientation is shown to be bundle-smooth, nowhere vanishing, and everywhere timelike (Lemmas 446–449), with transport of future-pointing timelike and null vectors (Lemmas 450–451) giving two-sided orientation preservation (Lemma 452). Cross-metric isometries are defined (Definition 453) and shown closed under inverses (Lemma 454), to preserve causal classification (Lemma 455), to push paths forward preserving the timelike/causal conditions and endpoints (Lemmas 456–459), and to transport chronological precedence and the chronological future and past (Lemmas 460–462), hence to preserve Alexandrov-basis sets (Lemma 463). A general topological lemma—a bijection matching generating families is a homeomorphism (Lemma 464)—then identifies the pullback Alexandrov topology (Lemma 465) and yields that the pullback of a Lorentzian spacetime is again a Lorentzian spacetime (Theorem 466). Without Theorem 466 the phrase "the net over $$\psi^*(M,g)$$" in §10.8 would have no referent. +- *§10.5.6 Pullback metrics and cross-metric isometries (p. 275, items 435–466).* The single-metric lemmas above compare a spacetime with itself; general covariance instead compares two different metrics on one carrier, so the transport statements are redone cross-metric. This subsection defines the pullback $$\psi^* g$$ of a spacetime metric as a bundled family of continuous bilinear forms (Definition 435) and verifies every obligation in turn: the differential of a diffeomorphism is a linear equivalence (Lemma 436), with the two round-trip cancellation identities for a global `Diffeomorph` (Lemmas 437–439); the pullback metric is symmetric, non-degenerate, Lorentzian, and a smooth section of the bilinear-form bundle (Lemmas 440–443), so the pullback of a spacetime is a spacetime (Theorem 444). Two-sided preservation of future orientation is then defined (Definition 445) and the pullback time orientation is shown to be bundle-smooth, nowhere vanishing, and everywhere timelike (Lemmas 446–449), with transport of future-pointing timelike and null vectors (Lemmas 450–451) giving two-sided orientation preservation (Lemma 452). Cross-metric isometries are defined (Definition 453) and shown closed under inverses (Lemma 454), to preserve causal classification (Lemma 455), to push paths forward preserving the timelike/causal conditions and endpoints (Lemmas 456–459), and to transport chronological precedence and the chronological future and past (Lemmas 460–462), hence to preserve Alexandrov-basis sets (Lemma 463). A general topological lemma—a bijection matching generating families is a homeomorphism (Lemma 464)—then identifies the pullback Alexandrov topology (Lemma 465) and yields that the pullback of a Lorentzian spacetime is again a Lorentzian spacetime (Theorem 466). Without Theorem 466 the phrase "the net over $$\psi^*(M,g)$$" in §10.8 would have no referent. **Where the Lean lives:** `Physicslib4/Geometry/PseudoRiemannian/` (`Basic`, `LeviCivita`, `Flat`), `Physicslib4/Spacetime/` (`Causality`, `Curves`, `AlongPath`, `CausalComplement`, `CausalStructure`, `Minkowski`, `MinkowskiDirected`, `LorentzianSpacetime`, `IsometryCausality`, …) diff --git a/home_page/sec10-6-haag-kastler.md b/home_page/sec10-6-haag-kastler.md index 0f38306..98f52a0 100644 --- a/home_page/sec10-6-haag-kastler.md +++ b/home_page/sec10-6-haag-kastler.md @@ -11,18 +11,18 @@ usemathjax: true The largest section by definition and theorem count (160 items, Definitions 467–626). Each axiom is stated as a definition so that it appears as a node in the declaration graph. -- *The axioms and the quasilocal colimit (§10.6 and §10.6.1, pp. 287–305, items 467–495).* Axiom 1 (Local Algebras, Definition 467) assigns an abstract C\*-algebra to every Alexandrov-basis set, with $$\emptyset \mapsto \mathbb{C}1$$. Axiom 2 (Isotony, Definition 468) now supplies the family of unital \*-monomorphisms $$i_{\mathbf{B}_1 \mathbf{B}_2}$$ **as chosen data**, subject to injectivity, an identity law, and a composition law—so that $$\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$$ is a functor on the inclusion order of basis sets. The blueprint is explicit that the family cannot be an existence statement (the identity and composition conditions are equations between the maps themselves) and that the inclusion hypothesis is non-strict, matching the Lean. §10.6.1 then cashes this in: the diamonds are directed under inclusion (Lemma 469), the isotony family is a directed system in Mathlib's sense (Lemma 470), and the direct limit carries a well-defined norm (Lemmas 471–473) making it a normed \*-algebra (Lemma 474) satisfying the C\*-inequality (Lemma 475) but not, in general, complete. A block of results stated for an arbitrary normed \*-algebra under standing hypotheses (Definition 476) then carries the structure through completion—the involution and its extension (Definition 477, Lemma 478), the completion coercion as a bundled \*-algebra homomorphism (Lemma 479), and the passage of the C\*-inequality, the normed $$\mathbb{C}$$-algebra structure, and finally the C\*-algebra property to the completion (Lemmas 480–482)—yielding that the completion of the quasilocal colimit is a C\*-algebra (Lemma 483). The quasilocal algebra $$\mathfrak{U}$$ is defined as that colimit-then-completion (Definition 484); the blueprint records why the shortcut of realising $$\mathfrak{U}$$ as a closed \*-subalgebra of an ambient C\*-algebra is rejected—it would assume an ambient algebra containing copies of every $$\mathfrak{U}(\mathbf{B})$$, for which the physics supplies no justification. Axiom 3 (Local Commutativity, Definition 485) follows. It is stated, exactly as in curved spacetime, through the isotony maps: completely spacelike local algebras commute in every local algebra $$\mathfrak{U}(\mathbf{B})$$ containing both, and such a $$\mathbf{B}$$ always exists because the diamonds are directed. It then holds in every quasilocal algebra (Lemma 486), and it is equivalent to commutation in some quasilocal algebra, the form used by earlier versions of this blueprint (Lemma 487). The quasilocal observable (Definition 488) follows. **Axiom 4 is now split in two.** Axiom 4 (Quasilocal Completeness, Definition 489) is presented as a bridge principle—the one axiom joining physical reality to the formalism, asserting the one-way inclusion that every physical observable corresponds to a quasilocal observable, and therefore having no mathematical consumers. The mathematical content previously conflated with it is separated out as a theorem: every local net satisfying Axiom 2 admits a quasilocal algebra, with an injective cocone of canonical embeddings whose images are dense (Theorem 490, with the supporting Lemmas 491–495). The indexing over Alexandrov-basis sets only is essential and not stylistic, since the algebras attached to non-basis subsets are junk fibres about which the axioms say nothing. -- *§10.6.2 The von Neumann Density Theorem (pp. 305–307, items 496–506).* A new subsection of general operator theory for a unital \*-homomorphism $$\pi : \mathfrak{A} \to \mathcal{B}(H)$$, whose only consumer is Theorem 506, the density result that keeps the bridge principle tenable in the presence of larger bicommutants: $$\pi_\omega(\mathfrak{U})$$ is strongly dense in $$\pi_\omega(\mathfrak{U})$$. Mathlib lacks the density theorem, so it is proved here following Murphy, Lemma 4.1.4. A closed subspace invariant under an operator and its adjoint has a commuting orthogonal projection (Lemma 496), so the closed cyclic subspace $$\overline{\pi(\mathfrak{A})\xi}$$ reduces the representation (Lemma 497) and every $$T \in \pi(\mathfrak{A})$$ maps $$\xi$$ into it (Lemma 498). The finite amplification $$\pi^\iota$$ on $$\ell^2(\iota; H)$$ (Definition 499) is a unital \*-homomorphism (Lemma 500); the block entries of an operator in its commutant lie in $$\pi(\mathfrak{A})'$$ (Lemma 501), an operator on $$\ell^2(\iota; H)$$ is recovered from its block entries (Lemma 502), and so $$\mathrm{diag}(T)$$ lies in the amplified bicommutant (Lemma 503). Applying the one-vector case to the amplification approximates $$T$$ on any finite set of vectors (Lemma 504), and a neighbourhood basis for the strong operator topology (Lemma 505) turns this into the density theorem (Theorem 506), now fully proved. The Kaplansky density theorem, which would also keep approximants self-adjoint, remains out of scope; nothing needs it. -- *§10.6.3 Lorentz Covariance and the Haag–Kastler Net (p. 308, items 507–508).* Axiom 5 (Lorentz Covariance, Definition 507), whose coherence condition is now stated for the Axiom 2 isotony family itself, and the bundled `HaagKastlerNet` (Definition 508) close the axiomatic block. +- *The axioms and the quasilocal colimit (§10.6 and §10.6.1, pp. 287–305, items 467–495).* Axiom 1 (Local Algebras, Definition 467) assigns an abstract C\*-algebra to every Alexandrov-basis set, with $$\emptyset \mapsto \mathbb{C}1$$. Axiom 2 (Isotony, Definition 468) supplies the family of unital \*-monomorphisms $$i_{\mathbf{B}_1 \mathbf{B}_2}$$ **as chosen data**, subject to injectivity, an identity law, and a composition law—so that $$\mathbf{B} \mapsto \mathfrak{U}(\mathbf{B})$$ is a functor on the inclusion order of basis sets. The blueprint is explicit that the family cannot be an existence statement (the identity and composition conditions are equations between the maps themselves) and that the inclusion hypothesis is non-strict, matching the Lean. §10.6.1 then cashes this in: the diamonds are directed under inclusion (Lemma 469), the isotony family is a directed system in Mathlib's sense (Lemma 470), and the direct limit carries a well-defined norm (Lemmas 471–473) making it a normed \*-algebra (Lemma 474) satisfying the C\*-inequality (Lemma 475) but not, in general, complete. A block of results stated for an arbitrary normed \*-algebra under standing hypotheses (Definition 476) then carries the structure through completion—the involution and its extension (Definition 477, Lemma 478), the completion coercion as a bundled \*-algebra homomorphism (Lemma 479), and the passage of the C\*-inequality, the normed $$\mathbb{C}$$-algebra structure, and finally the C\*-algebra property to the completion (Lemmas 480–482)—yielding that the completion of the quasilocal colimit is a C\*-algebra (Lemma 483). The quasilocal algebra $$\mathfrak{U}$$ is defined as that colimit-then-completion (Definition 484); the blueprint records why the shortcut of realising $$\mathfrak{U}$$ as a closed \*-subalgebra of an ambient C\*-algebra is rejected—it would assume an ambient algebra containing copies of every $$\mathfrak{U}(\mathbf{B})$$, for which the physics supplies no justification. Axiom 3 (Local Commutativity, Definition 485) follows. It is stated, exactly as in curved spacetime, through the isotony maps: completely spacelike local algebras commute in every local algebra $$\mathfrak{U}(\mathbf{B})$$ containing both, and such a $$\mathbf{B}$$ always exists because the diamonds are directed. It then holds in every quasilocal algebra (Lemma 486), and it is equivalent to commutation in some quasilocal algebra (Lemma 487). The quasilocal observable (Definition 488) follows. Axiom 4 (Quasilocal Completeness, Definition 489) is presented as a bridge principle—the one axiom joining physical reality to the formalism, asserting the one-way inclusion that every physical observable corresponds to a quasilocal observable, and therefore having no mathematical consumers. The mathematical content is a separate theorem: every local net satisfying Axiom 2 admits a quasilocal algebra, with an injective cocone of canonical embeddings whose images are dense (Theorem 490, with the supporting Lemmas 491–495). The indexing over Alexandrov-basis sets only is essential and not stylistic, since the algebras attached to non-basis subsets are junk fibres about which the axioms say nothing. +- *§10.6.2 The von Neumann Density Theorem (pp. 305–307, items 496–506).* A subsection of general operator theory for a unital \*-homomorphism $$\pi : \mathfrak{A} \to \mathcal{B}(H)$$, whose only consumer is Theorem 506, the density result that keeps the bridge principle tenable in the presence of larger bicommutants: $$\pi_\omega(\mathfrak{U})$$ is strongly dense in $$\pi_\omega(\mathfrak{U})''$$. The density theorem is proved here following Murphy, Lemma 4.1.4. A closed subspace invariant under an operator and its adjoint has a commuting orthogonal projection (Lemma 496), so the closed cyclic subspace $$\overline{\pi(\mathfrak{A})\xi}$$ reduces the representation (Lemma 497) and every $$T \in \pi(\mathfrak{A})$$ maps $$\xi$$ into it (Lemma 498). The finite amplification $$\pi^\iota$$ on $$\ell^2(\iota; H)$$ (Definition 499) is a unital \*-homomorphism (Lemma 500); the block entries of an operator in its commutant lie in $$\pi(\mathfrak{A})'$$ (Lemma 501), an operator on $$\ell^2(\iota; H)$$ is recovered from its block entries (Lemma 502), and so $$\mathrm{diag}(T)$$ lies in the amplified bicommutant (Lemma 503). Applying the one-vector case to the amplification approximates $$T$$ on any finite set of vectors (Lemma 504), and a neighbourhood basis for the strong operator topology (Lemma 505) turns this into the density theorem (Theorem 506). The Kaplansky density theorem, which would also keep approximants self-adjoint, remains out of scope; nothing needs it. +- *§10.6.3 Lorentz Covariance and the Haag–Kastler Net (p. 308, items 507–508).* Axiom 5 (Lorentz Covariance, Definition 507), whose coherence condition is stated for the Axiom 2 isotony family itself, and the bundled `HaagKastlerNet` (Definition 508) close the axiomatic block. - *§10.6.4 Einstein Causality (p. 308, item 509).* Derives the operator form of local commutativity in any \*-representation of the quasilocal algebra (Theorem 509). - *§10.6.5 Local von Neumann Algebras (p. 308, items 510–522).* Defines the local von Neumann algebra $$R(\mathbf{B}) = \pi(\mathfrak{U}(\mathbf{B}))''$$ of a region in a representation (Definition 510), registers it as a first-class `VonNeumannAlgebra` via the bicommutant-of-a-self-adjoint-set lemma (Lemma 511, Definition 512), and proves Microcausality (Theorem 513) and Isotony of the von Neumann net (Theorem 514), together with their bundled forms (Theorem 515) and the region-indexed assignment $$\mathbf{B} \mapsto R(\mathbf{B})$$ as an order-preserving map—the net of von Neumann algebras itself (Definition 516). It then proves the Statistical Independence (Schlieder) property in set-level and bundled forms (Theorems 517–518): if the cyclic vector of one region is cyclic for its local observables, it is separating for the local von Neumann algebra of any spacelike-separated region. Additive-free locality (Theorem 519) expresses locality through the spacelike complement without attaching an algebra to the unbounded complement itself. Geometric Covariance (Theorem 520) shows conjugation by the implementing unitary carries $$R(\mathbf{B})$$ onto $$R(L \cdot \mathbf{B})$$; being a factor is therefore constant along the Lorentz orbit of a region (Theorem 521), and the set equality upgrades to a first-class \*-algebra isomorphism of the bundled algebras (Theorem 522). -- *§10.6.6 Relative Commutants of Nested Local Algebras (p. 311, items 523–530).* A new block organising the theory of inclusions $$R(\mathbf{B}_1) \subseteq R(\mathbf{B}_2)$$ around the relative commutant $$R(\mathbf{B}_1)' \cap R(\mathbf{B}_2)$$ (Definition 523). It proves antitonicity of the commutant (Theorem 524), that the relative commutant lies in the larger algebra and commutes with the smaller (Theorems 525–526), and that it always contains the centre of the ambient algebra (Theorem 527). An inclusion is irreducible when its relative commutant is trivial (Definition 528); an irreducible inclusion forces the ambient algebra to be a factor (Theorem 529), and the trivial self-inclusion is irreducible exactly when the algebra is a factor (Theorem 530). +- *§10.6.6 Relative Commutants of Nested Local Algebras (p. 311, items 523–530).* Organises the theory of inclusions $$R(\mathbf{B}_1) \subseteq R(\mathbf{B}_2)$$ around the relative commutant $$R(\mathbf{B}_1)' \cap R(\mathbf{B}_2)$$ (Definition 523). It proves antitonicity of the commutant (Theorem 524), that the relative commutant lies in the larger algebra and commutes with the smaller (Theorems 525–526), and that it always contains the centre of the ambient algebra (Theorem 527). An inclusion is irreducible when its relative commutant is trivial (Definition 528); an irreducible inclusion forces the ambient algebra to be a factor (Theorem 529), and the trivial self-inclusion is irreducible exactly when the algebra is a factor (Theorem 530). - *§10.6.7 Irreducibility and Schur's Lemma (p. 312, items 531–553).* Introduces irreducible representations via their commutant (Definition 531) and establishes the Topological Schur Lemma for cyclic representations (Theorem 532) together with the operator-theoretic bridge identifying commutant scalars with coefficients proportional to the state (Theorem 533). Defines pure states (Definition 534) and proves "pure implies irreducible" directly (Theorem 535), then the full equivalence Pure $$\iff$$ Irreducible (Theorem 538) via a GNS Radon–Nikodym theorem realising every dominated positive functional as an operator in the commutant (Theorems 536–537). An irreducible representation generates a factor (Theorem 539) and, more sharply, all of $$\mathcal{B}(H)$$ (Theorem 540), with a bundled density form (Theorem 541); consequently the GNS representation of a pure state generates a factor (Theorem 542) and all of $$\mathcal{B}(H)$$ (Theorem 543). The norm of a positive linear functional on a unital C\*-algebra equals its value on the unit (Theorem 544), which supports Pure $$\iff$$ Extreme Point of the state space (Definition 545, Theorem 546), the underlying convexity and the bridge to Mathlib's extreme-points API (Theorem 547), and weak-\* compactness of the state space (Theorem 551), which supplies the existence of pure states via Krein–Milman. The pullback of a state along a unital \*-homomorphism is introduced as its own object (Definition 548) with functoriality (Theorem 549) and the invariance of purity under a \*-isomorphism (Theorem 550). The section closes by specialising to the quasilocal algebra (Theorems 552–553). - *§10.6.8 Unitary Equivalence and Superselection (p. 316, items 554–555).* Defines unitary equivalence of representations (Definition 554) and shows irreducibility and factoriality are unitary invariants, transported by the cross-space conjugation induced by the implementing unitary (Theorem 555). -- *§10.6.9 GNS Covariance (p. 316, items 556–561).* A new block. Cyclicity pulls back along a surjective \*-homomorphism (Lemma 556), so GNS data transports covariantly along a \*-isomorphism of the algebras (Theorem 557), restated as a unitary equivalence (Theorem 558). Pullback along a surjection preserves the image algebra (Lemma 559), whence superselection type transports along a \*-isomorphism (Theorem 560): the whole sector structure is an invariant of the algebra, not of its presentation. Applied to the covariance equivalence $$\alpha_L : \mathfrak{U}(\mathbf{B}) \simeq \mathfrak{U}(L \cdot \mathbf{B})$$ supplied by Axiom 5, this says the superselection type of a local state is constant along the Lorentz orbit of its region (Theorem 561). +- *§10.6.9 GNS Covariance (p. 316, items 556–561).* Cyclicity pulls back along a surjective \*-homomorphism (Lemma 556), so GNS data transports covariantly along a \*-isomorphism of the algebras (Theorem 557), restated as a unitary equivalence (Theorem 558). Pullback along a surjection preserves the image algebra (Lemma 559), whence superselection type transports along a \*-isomorphism (Theorem 560): the whole sector structure is an invariant of the algebra, not of its presentation. Applied to the covariance equivalence $$\alpha_L : \mathfrak{U}(\mathbf{B}) \simeq \mathfrak{U}(L \cdot \mathbf{B})$$ supplied by Axiom 5, this says the superselection type of a local state is constant along the Lorentz orbit of its region (Theorem 561). - *§10.6.10 Disjointness and Quasi-Equivalence (p. 318, items 562–579).* Defines disjointness via the vanishing of all intertwiners (Definition 562) and the coarser quasi-equivalence via a \*-isomorphism of generated von Neumann algebras (Definition 563). Proves Schur's Lemma in the form of the Irreducible Dichotomy—two irreducible representations are either disjoint or unitarily equivalent (Theorem 564)—together with Schur multiplicity (Lemma 565) and the triviality of the endomorphism algebra of an irreducible representation (Lemma 566). The commutant is packaged as the self-intertwiner (gauge) von Neumann algebra, trivial exactly when the representation is irreducible (Theorem 567), with double-commutant duality (Theorem 568) and the factor/triviality duality between an algebra and its commutant (Theorem 569). A supporting run develops the centre from scratch: abelian $$\iff$$ self-commuting (Lemma 570), the centre $$Z(R) = R \cap R'$$ (Definition 571) and its being a von Neumann algebra (Lemma 572), the general two-algebra intersection lemma that the relative commutants of §10.6.6 need (Lemma 573), the centre is abelian (Theorem 574), $$R$$ is abelian iff it equals its centre (Lemma 575), a factor is abelian iff it is the scalars (Theorem 576), an algebra and its commutant share a centre (Theorem 577), and factoriality is triviality of the centre (Theorem 578). The Pure-State Dichotomy underlying superselection sectors (Theorem 579) closes the block. - *§10.6.11 Direct Sums, Amplification, and Reducibility (p. 321, items 580–583).* Defines the direct-sum representation on the $$\ell^2$$-direct sum (Definition 580), shows each summand embeds as a subrepresentation whose projection lies in the commutant of the sum (Theorem 581), defines the $$\iota$$-fold amplification (Definition 582), and proves a direct sum with at least two nonzero summands is reducible, so a multiply-amplified representation is never irreducible (Theorem 583). -- *§10.6.12 Covariant States and the Covariance Action (p. 321, items 584–610).* Defines covariant families of local states (Definition 584) with their composition law (Lemma 585), and the lift of the fibrewise covariance action to a \*-automorphism of the quasilocal algebra (Definition 586), with uniqueness (Lemma 587) and existence for every quasilocal algebra (Theorem 589), no covariance-compatibility hypothesis being needed because every quasilocal algebra is automatically covariance-compatible (Lemma 588, new), and the trivial net as a special case (Theorem 590). The covariant quasilocal algebra of a net is then simply its canonical quasilocal algebra together with the covariance action (Definition 591, realised in Lean as `HaagKastlerNet.action`, so the covariance dynamics are stated directly for the net), which is a genuine group action (Lemma 592). Invariant states are defined (Definition 593) and shown to be implemented by GNS unitaries (Theorem 594); a state that is both invariant and pure yields a GNS representation that is simultaneously covariant and irreducible (Theorem 595). The spectrum condition follows. Positive energy (Definition 596) asks that a one-parameter unitary group be strongly continuous with positive generator; the trivial group has positive energy (Lemma 597), the generator is unique (Lemma 598), positivity and positive energy are unitarily invariant (Lemmas 599–600), a positive-energy group is strongly continuous (Lemma 601), the bounded case $$\exp(itP)$$ is included (Lemma 602), and, by Stone's Theorem, positive energy says exactly that $$V(t) = e^{itA}$$ with $$A$$ positive and self-adjoint (Theorem 603), all collected in Theorem 604. A vacuum state (Definition 605) is an invariant state whose translation groups have positive energy, with the consequences of invariance alone (Theorem 606), the future-timelike translation subgroup (Definition 607), and the vacuum state with that concrete predicate substituted in, leaving no free parameter (Definition 608). Purity is preserved by any \*-automorphism and is therefore covariance-invariant (Theorem 609), and GNS data transports along the quasilocal covariance action (Theorem 610). +- *§10.6.12 Covariant States and the Covariance Action (p. 321, items 584–610).* Defines covariant families of local states (Definition 584) with their composition law (Lemma 585), and the lift of the fibrewise covariance action to a \*-automorphism of the quasilocal algebra (Definition 586), with uniqueness (Lemma 587) and existence for every quasilocal algebra (Theorem 589), no covariance-compatibility hypothesis being needed because every quasilocal algebra is automatically covariance-compatible (Lemma 588), and the trivial net as a special case (Theorem 590). The covariant quasilocal algebra of a net is then simply its canonical quasilocal algebra together with the covariance action (Definition 591, realised in Lean as `HaagKastlerNet.action`, so the covariance dynamics are stated directly for the net), which is a genuine group action (Lemma 592). Invariant states are defined (Definition 593) and shown to be implemented by GNS unitaries (Theorem 594); a state that is both invariant and pure yields a GNS representation that is simultaneously covariant and irreducible (Theorem 595). The spectrum condition follows. Positive energy (Definition 596) asks that a one-parameter unitary group be strongly continuous with positive generator; the trivial group has positive energy (Lemma 597), the generator is unique (Lemma 598), positivity and positive energy are unitarily invariant (Lemmas 599–600), a positive-energy group is strongly continuous (Lemma 601), the bounded case $$\exp(itP)$$ is included (Lemma 602), and, by Stone's Theorem, positive energy says exactly that $$V(t) = e^{itA}$$ with $$A$$ positive and self-adjoint (Theorem 603), all collected in Theorem 604. A vacuum state (Definition 605) is an invariant state whose translation groups have positive energy, with the consequences of invariance alone (Theorem 606), the future-timelike translation subgroup (Definition 607), and the vacuum state with that concrete predicate substituted in, leaving no free parameter (Definition 608). Purity is preserved by any \*-automorphism and is therefore covariance-invariant (Theorem 609), and GNS data transports along the quasilocal covariance action (Theorem 610). - *§10.6.13 The Separating Vector of a Faithful State (p. 326, item 611).* The cyclic vector of a faithful state is also separating for the image of the representation (Theorem 611)—the basic datum of Tomita–Takesaki modular theory. This holds in any representation reproducing a faithful state, not only the canonical GNS one. - *§10.6.14 The KMS Condition and Thermal Equilibrium (p. 326, items 612–621).* Introduces one-parameter automorphism groups (Definition 612) and KMS states (Definition 613) as the algebraic characterisation of thermal equilibrium. The condition is phrased purely as an analyticity statement about correlation functions, so—unlike the spectrum condition—it needs no unbounded-operator theory. The KMS state set is convex (Theorem 614); a boundary-coincidence argument at $$a = 1$$ (Lemma 615) together with the Strip-Liouville Principle (Definition 616), proved at positive inverse temperature via an $$i\beta$$-periodic entire extension (Theorem 617) and Liouville's theorem (Theorem 618), yields that KMS states are automatically invariant under the time evolution (Theorem 619); uniqueness on the strip from boundary values (Theorem 620) gives uniqueness of the analytic completion of a KMS correlation function (Theorem 621). - *§10.6.15 KMS States for the Covariance Flow (p. 328, items 622–626).* A one-parameter subgroup of the inhomogeneous Lorentz group induces a one-parameter automorphism group on the quasilocal algebra via the covariance lift (Definition 622, Lemma 623); KMS states for that flow are defined accordingly (Definition 624) and shown convex (Theorem 625). The zero-temperature ($$\beta \to \infty$$) counterpart—a ground state for a covariance flow, whose GNS-implementing unitary group has positive energy—is recorded alongside it (Definition 626). diff --git a/home_page/sec10-7-curved.md b/home_page/sec10-7-curved.md index 54684ac..a6e7627 100644 --- a/home_page/sec10-7-curved.md +++ b/home_page/sec10-7-curved.md @@ -9,7 +9,7 @@ usemathjax: true # §10.7 Haag–Kastler Axioms in curved spacetime (pp. 328–338) -49 items, Definitions 627–675. The axioms are restated for a Lorentzian spacetime: Local Algebras (Definition 627), Isotony (Definition 628, again supplying the family as chosen data with identity and composition laws), Local Commutativity (Definition 629, which now **consumes** the Axiom 2 family rather than choosing its own witnesses), local observables (Definition 630), Local Completeness (Definition 631), and Isometric Covariance (Definition 632, whose coherence condition, as in Minkowski, is stated for the Axiom 2 isotony family), bundled into a `HaagKastlerNet` in curved spacetime (Definition 633). The change to Axioms 2 and 3 has a visible consequence downstream: statements about nested regions have to factor a three-fold inclusion $$\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$$ inside a common containing algebra, and that factorisation is now the composition law of Axiom 2, so **the coherence hypotheses that earlier versions carried at each such site are gone**—curved isotony (Theorem 638) and the curved von Neumann net (Definition 640) are unconditional. An explicit hypothesis remains only where the abstract interface genuinely cannot supply it, namely basis-set preservation in Geometric Covariance (Theorem 644), discharged for nets arising from a concrete geometric spacetime; the coherence of the stabiliser action with the isotony embeddings is no longer a hypothesis there, being condition (3) of Axiom 5 transported along $$g \cdot \mathbf{B} = \mathbf{B}$$. +49 items, Definitions 627–675. The axioms are restated for a Lorentzian spacetime: Local Algebras (Definition 627), Isotony (Definition 628, again supplying the family as chosen data with identity and composition laws), Local Commutativity (Definition 629, which uses the Axiom 2 family rather than choosing its own witnesses), local observables (Definition 630), Local Completeness (Definition 631), and Isometric Covariance (Definition 632, whose coherence condition, as in Minkowski, is stated for the Axiom 2 isotony family), bundled into a `HaagKastlerNet` in curved spacetime (Definition 633). This form of Axioms 2 and 3 has a visible consequence downstream: statements about nested regions have to factor a three-fold inclusion $$\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$$ inside a common containing algebra, and that factorisation is the composition law of Axiom 2, so **no coherence hypothesis is needed at any such site**—curved isotony (Theorem 638) and the curved von Neumann net (Definition 640) are unconditional. An explicit hypothesis remains only where the abstract interface genuinely cannot supply it, namely basis-set preservation in Geometric Covariance (Theorem 644), discharged for nets arising from a concrete geometric spacetime; the coherence of the stabiliser action with the isotony embeddings is condition (3) of Axiom 5 transported along $$g \cdot \mathbf{B} = \mathbf{B}$$. - *§10.7.1 Einstein Causality in Curved Spacetime (p. 331, item 634).* The operator form of local commutativity, expressed in a representation of a common containing local algebra rather than of a global quasilocal algebra (Theorem 634). - *§10.7.2 Local von Neumann Algebras in Curved Spacetime (p. 331, items 635–646).* The Minkowski development of §10.6.5 mirrored relative to a containing region: the local von Neumann algebra of a subregion and its bundled registration (Definitions 635–636), Microcausality (Theorem 637), unconditional Isotony (Theorem 638), the bundled form (Theorem 639), the net as an order-preserving map on the poset of subregions (Definition 640), Statistical Independence in set-level and bundled forms (Theorems 641–642), additive-free locality (Theorem 643), and Geometric Covariance via the stabiliser GNS representation (Theorem 644) with orbit-invariance of factoriality (Theorem 645) and the upgrade to a \*-algebra isomorphism (Theorem 646). diff --git a/home_page/sec10-8-general-covariance.md b/home_page/sec10-8-general-covariance.md index b0ed868..20cc73a 100644 --- a/home_page/sec10-8-general-covariance.md +++ b/home_page/sec10-8-general-covariance.md @@ -9,7 +9,7 @@ usemathjax: true # §10.8 General Covariance: Nets on Pullback-Related Metrics (pp. 338–339) -Two definitions, and the newest structural addition to the blueprint. The gauge group of general relativity is the full diffeomorphism group of $$M$$, so the physical content of a spacetime is its diffeomorphism-equivalence class and not the pair $$(M, g)$$; the hole argument shows that treating a relabelling as physical would destroy determinism, and Leibniz equivalence resolves it by declaring diffeomorphic models to represent the same physical situation. Accordingly, an equivalence of Haag–Kastler nets is defined (Definition 676) as a chosen family of unital \*-isomorphisms $$\Theta_\mathbf{B} : \mathfrak{U}_1(\mathbf{B}) \to \mathfrak{U}_2(e(\mathbf{B}))$$ along a basis-set-preserving bijection $$e$$ of carriers, natural with respect to the isotony embeddings. The carriers are related by data rather than by a type equality, deliberately: an equality of carrier types cannot be transported along and would force every comparison through a cast. A net theory is then a section assigning a net to every Lorentzian spacetime, and it is generally covariant when the nets over $$L$$ and over its pullback $$\psi^* L$$ are equivalent along $$\psi$$ (Definition 677). In Lean the nets are indexed over the identity-component bridge `toAbstractIdentityComponent`, so Axiom 5 of each net asks only for isometries connected to the identity, as in the blueprint. Four points are worth carrying away: this is a **postulate, not a theorem**—nothing forces the two nets to be isomorphic, and it says nothing about backgrounds that are not diffeomorphism-related; the morphism is specified geometrically rather than causally, because a purely causal morphism would admit the dilations (Theorems 422–423) and thereby demand a scale covariance that is false for a massive theory; the relabelling must be $$\psi$$ and not the identity, since a basis set of one metric is in general not a basis set of the other; and general covariance is a property of the section $$L \mapsto \mathfrak{U}_L$$, not a sixth field of the net structure, so no restriction to diffeomorphisms connected to the identity is needed here. +Two definitions. The gauge group of general relativity is the full diffeomorphism group of $$M$$, so the physical content of a spacetime is its diffeomorphism-equivalence class and not the pair $$(M, g)$$; the hole argument shows that treating a relabelling as physical would destroy determinism, and Leibniz equivalence resolves it by declaring diffeomorphic models to represent the same physical situation. Accordingly, an equivalence of Haag–Kastler nets is defined (Definition 676) as a chosen family of unital \*-isomorphisms $$\Theta_\mathbf{B} : \mathfrak{U}_1(\mathbf{B}) \to \mathfrak{U}_2(e(\mathbf{B}))$$ along a basis-set-preserving bijection $$e$$ of carriers, natural with respect to the isotony embeddings. The carriers are related by data rather than by a type equality, deliberately: an equality of carrier types cannot be transported along and would force every comparison through a cast. A net theory is then a section assigning a net to every Lorentzian spacetime, and it is generally covariant when the nets over $$L$$ and over its pullback $$\psi^* L$$ are equivalent along $$\psi$$ (Definition 677). In Lean the nets are indexed over the identity-component bridge `toAbstractIdentityComponent`, so Axiom 5 of each net asks only for isometries connected to the identity, as in the blueprint. Four points are worth carrying away: this is a **postulate, not a theorem**—nothing forces the two nets to be isomorphic, and it says nothing about backgrounds that are not diffeomorphism-related; the morphism is specified geometrically rather than causally, because a purely causal morphism would admit the dilations (Theorems 422–423) and thereby demand a scale covariance that is false for a massive theory; the relabelling must be $$\psi$$ and not the identity, since a basis set of one metric is in general not a basis set of the other; and general covariance is a property of the section $$L \mapsto \mathfrak{U}_L$$, not a sixth field of the net structure, so no restriction to diffeomorphisms connected to the identity is needed here. **Where the Lean lives:** `Physicslib4/AQFT/HaagKastlerCurved/GeneralCovariance.lean` diff --git a/notes/agents/inventory-1.0/A-blueprint-ch10-hk.md b/notes/agents/inventory-1.0/A-blueprint-ch10-hk.md new file mode 100644 index 0000000..ee694d5 --- /dev/null +++ b/notes/agents/inventory-1.0/A-blueprint-ch10-hk.md @@ -0,0 +1,128 @@ +# Inventory A: blueprint Chapter 10, Haag–Kastler files + +Scope: `blueprint/src/sections/sec10/{haag-kastler-axioms,haag-kastler-axioms-in-curved-spacetime,general-covariance-in-curved-spacetime,gns-construction-details,introduction}.tex`. Read-only inventory per `notes/agents/plan-release-1.0-present-tense-2026-10-08.md` (D1–D6). Line numbers at commit a663229. + +| file:line | exact quoted phrase | category | action | replacement | +|---|---|---|---|---| +| introduction.tex:1 | (none — whole file read; 3 lines, only positional "we are now in a position") | — | keep | — (note: per D6 this file is where the one blueprint version sentence goes; Stage 3 adds it, not an inventory row) | +| general-covariance-in-curved-spacetime.tex:38 | "That observation still stands, but its justification has changed. It previously mattered because the embeddings were witnesses chosen inside Axiom 3, which carried no composition law," | history (inside statement) | delete + to-CHANGELOG | — (delete from "That observation still stands" to end of sentence ending "as in \ref{thrm:von-neumann-isotony-in-curved-spacetime}.") | +| general-covariance-in-curved-spacetime.tex:38 | "Axiom 2 now carries the identity and composition laws itself, so that coherence holds for every net and nothing has to be assumed anywhere; the point here is simply that this square would not have needed it in any case." | change-notice (inside statement) | rewrite | "Axiom 2 carries the identity and composition laws itself, so coherence holds for every net; this square does not need them in any case." | +| gns-construction-details.tex:506 | "The reason we provided such detail is that we will have need not only of the theorem, but also of the details of the theorem's proof in subsequent blog posts." | blog | rewrite (or delete) | "The proof is given in full because later parts of this blueprint use not only the theorem but also its construction (the quotient $\mathfrak{U}/\mathcal{N}$ and the cyclic vector $[\mathbf{1}]$)." Delete instead if no later section relies on the construction. | +| haag-kastler-axioms-in-curved-spacetime.tex:43 | "the earlier $\subset$ was a divergence from the Lean, and the reflexive case is what makes (b) expressible at all." | retraction (inside statement) | rewrite + to-CHANGELOG | "The hypothesis is the non-strict inclusion, matching the formalisation, which quantifies over B₁ ⊆ B₂; the reflexive case is what makes (b) expressible." (keep the \texttt{} as is; delete only "the earlier $\subset$ was a divergence from the Lean, and") | +| haag-kastler-axioms-in-curved-spacetime.tex:45 | "Before this amendment the isotony embeddings actually used downstream were the witnesses chosen inside Axiom 3, which carried no composition law," | history (inside statement) | rewrite + to-CHANGELOG | "Design note: the curved case has no quasilocal algebra, so every statement about nested regions is phrased inside a common containing algebra $\mathfrak{U}(\mathbf{B})$ and factors a three-fold inclusion $\mathbf{B}_1 \subseteq \mathbf{B}_2 \subseteq \mathbf{B}$. Law (c) makes that factorisation hold for every net, and Axiom 3 uses this family (\ref{…local-commutativity…}), so no site assumes it separately." | +| haag-kastler-axioms-in-curved-spacetime.tex:45 | "and those hypotheses are gone." | change-notice (inside statement) | delete | — (covered by the line-45 rewrite above) | +| haag-kastler-axioms-in-curved-spacetime.tex:66 | "This axiom now asserts \emph{only} the commutation condition. It previously introduced its own family of isotony embeddings existentially," | history (inside statement) | rewrite + to-CHANGELOG | "This axiom asserts only the commutation condition. The isotony family, its injectivity, and its identity and composition laws belong to Axiom 2 (\ref{def:isotony-in-curved-spacetime}); this axiom uses that family, so results that factor a three-fold inclusion need no separate coherence hypothesis." | +| haag-kastler-axioms-in-curved-spacetime.tex:66 | "the separate coherence hypotheses are consequently removed throughout this chapter." | change-notice (inside statement) | delete | — (covered by the line-66 rewrite above) | +| haag-kastler-axioms-in-curved-spacetime.tex:198 | "No coherence hypothesis is needed." | retraction (inside statement) | delete | — (caution exists only because a coherence hypothesis was once assumed; statement text otherwise unchanged) | +| haag-kastler-axioms-in-curved-spacetime.tex:203 | "that is now exactly the composition law (c) of Axiom 2" | change-notice (inside proof) | rewrite | "that is exactly the composition law (c) of Axiom 2 (\ref{def:isotony-in-curved-spacetime})." | +| haag-kastler-axioms-in-curved-spacetime.tex:203 | "Formerly the isotony embeddings in play were the witnesses chosen inside Axiom 3, which had no composition law, so this factorisation had to be assumed as a separate hypothesis." | history (inside proof) | delete + to-CHANGELOG | — | +| haag-kastler-axioms-in-curved-spacetime.tex:228 | "This was previously supplied as an explicit \emph{coherence} hypothesis, on the grounds that it is a property of the net's chosen embeddings" | history + rationale (inside statement) | rewrite + to-CHANGELOG | "Design note: the factorisation is a property of the net's chosen embeddings, not of the spacetime, so it cannot be discharged geometrically. An axiom is where a requirement on chosen data belongs, which is why the law is part of Axiom 2 rather than a hypothesis at each site." | +| haag-kastler-axioms-in-curved-spacetime.tex:228 | "That reasoning was correct, and it is precisely the argument for putting the law into the axiom" | process (inside statement) | delete | — (absorbed into the line-228 Design note) | +| haag-kastler-axioms-in-curved-spacetime.tex:228 | "the hypothesis is redundant here and at every other site in this chapter." | change-notice (inside statement) | delete | — | +| haag-kastler-axioms-in-curved-spacetime.tex:364 | "so nothing further is assumed here." | retraction (inside proof), low | rewrite (optional) | "The factorisation of the three-fold inclusion that curved isotony needs is the composition law of Axiom 2 (\ref{def:isotony-in-curved-spacetime})." | +| haag-kastler-axioms.tex:43 | "Earlier versions of this statement wrote $\subset$; that was a divergence from the Lean, and the non-strict form is the correct one." | retraction (inside statement) | delete + to-CHANGELOG | — (rest of paragraph stays: "Second, the hypothesis is the non-strict inclusion … matching the formalisation … It also matters mathematically: …") | +| haag-kastler-axioms.tex:45 | "and that consumers no longer have to carry coherence as a side hypothesis." | change-notice (inside statement) | rewrite | "and that no result about nested regions carries coherence as a side hypothesis." | +| haag-kastler-axioms.tex:212 | "This was confirmed by a sweep of all 44 files of \texttt{Analysis/CStarAlgebra/}." | process + version-dated (inside statement) | delete | — (keep the undated claim "There is no C*-completion construction in Mathlib: …"; D6 says restate undated if still true) | +| haag-kastler-axioms.tex:212 | "The compensation, established by the same audit and recorded node by node below, is that each of them is short:" | process (inside statement) | rewrite | "Each of them is short: the recurring move is …" | +| haag-kastler-axioms.tex:226 | "An audit against the local Mathlib clone found \emph{zero} occurrences of \texttt{Star}, \texttt{InvolutiveStar} or \texttt{StarRing} on \texttt{UniformSpace.Completion}: the files checked were" | process + version-dated (inside statement) | rewrite | "Mathlib provides no \texttt{Star}, \texttt{InvolutiveStar} or \texttt{StarRing} instance on \texttt{UniformSpace.Completion}." (drop the list of files checked) | +| haag-kastler-axioms.tex:226 | "of \texttt{Analysis/Normed/Module/Completion.lean:75}" | version-dated (inside statement) | rewrite | "in \texttt{Analysis/Normed/Module/Completion.lean}" (Mathlib line numbers are tied to one Mathlib snapshot) | +| haag-kastler-axioms.tex:230 | "(both in \texttt{Topology/UniformSpace/Completion.lean}, lines 480--486)" | version-dated (inside statement) | rewrite | "(both in \texttt{Topology/UniformSpace/Completion.lean})" | +| haag-kastler-axioms.tex:230 | "This is the fact that makes the four-lines-per-obligation estimate quoted throughout this block real rather than optimistic;" | process (inside statement) | rewrite | "This is why each obligation in this block is about four lines;" (the proofs are \leanok, so "estimate" is pre-formalisation planning) | +| haag-kastler-axioms.tex:271 | "is what backs it if the \texttt{rfl} does not fire." | process (inside proof), low | rewrite (optional) | Check the Lean proof; state whichever of \texttt{rfl} or \texttt{UniformSpace.Completion.coe\_smul} is used, in the present tense. | +| haag-kastler-axioms.tex:292 | "(\texttt{Analysis/CStarAlgebra/Basic.lean:89})" | version-dated (inside proof) | rewrite | "(\texttt{Analysis/CStarAlgebra/Basic.lean})" | +| haag-kastler-axioms.tex:296 | "(\texttt{Basic.lean:114})" | version-dated (inside proof) | delete | — | +| haag-kastler-axioms.tex:309 | "(\texttt{Analysis/Normed/Module/Completion.lean:87})" | version-dated (inside proof) | rewrite | "(\texttt{Analysis/Normed/Module/Completion.lean})" | +| haag-kastler-axioms.tex:309 | "Without noticing this one would expect the instance for free and discover at formalization time that typeclass inference simply fails to find it." | process (inside proof) | rewrite | "So typeclass inference does not find a \texttt{NormedAlgebra} instance on $\widehat{A}$, and one is supplied here." | +| haag-kastler-axioms.tex:311 | "(line 36 of the same file)" | version-dated (inside proof) | delete | — | +| haag-kastler-axioms.tex:313 | "This is also where scalar-action compatibility would live, if it is needed at all, and the evidence is that it is not." | process (inside proof) | rewrite | "Design note: two a priori different \texttt{SMul ℂ Â} structures are in play … [keep the mathematical description] … Mathlib's commutative instance has body \texttt{norm\_smul\_le := norm\_smul\_le} and does not use commutativity there, so the same body works here." | +| haag-kastler-axioms.tex:313 | "Nothing below is needed; it is recorded only against the remote possibility that the two actions fail to be definitionally equal, in which case the fix is" | process (inside proof) | delete | — (contingency plan from before formalisation; the proof is \leanok) | +| haag-kastler-axioms.tex:315 | "For the record, so that none of it is re-proved: what \emph{is} free on the completion" | process (inside proof) | rewrite | "What is free on the completion, without commutativity, is …" | +| haag-kastler-axioms.tex:315 | "the \texttt{NormedAlgebra} instance twelve lines further down the same file" | version-dated (inside proof) | rewrite | "the \texttt{NormedAlgebra} instance in the same file" | +| haag-kastler-axioms.tex:328 | "Pure bundling, and the audit confirms it is literally that:" | process (inside proof) | rewrite | "Pure bundling:" | +| haag-kastler-axioms.tex:328 | "(\texttt{Analysis/CStarAlgebra/Classes.lean:30-42})" | version-dated (inside proof) | rewrite | "(\texttt{Analysis/CStarAlgebra/Classes.lean})" | +| haag-kastler-axioms.tex:330 | "(\texttt{Analysis/Normed/Module/Completion.lean:75})" | version-dated (inside proof) | rewrite | "(\texttt{Analysis/Normed/Module/Completion.lean})" | +| haag-kastler-axioms.tex:337 | "The \texttt{StarModule} field was missing from an earlier version of this node; it is listed here so that the obligation is not discovered only at formalization time." | retraction (inside proof) | delete + to-CHANGELOG | — | +| haag-kastler-axioms.tex:353 | "Two matters of project bookkeeping attach to \ref{lmm:quasilocal-completion-cstar} but are not part of its proof," | process | rewrite | "Two design notes attach to \ref{lmm:quasilocal-completion-cstar} but are not part of its proof, and are recorded here as surrounding prose." | +| haag-kastler-axioms.tex:355 | "An earlier version of that node also asserted that the resulting C*-norm is the only complete C*-norm on the carrier, citing Mathlib's \texttt{StarAlgEquiv.norm\_map}," | retraction | rewrite + to-CHANGELOG | "\emph{Design note: uniqueness of the complete C*-norm is not claimed.} It is a statement about one carrier with two \texttt{CStarAlgebra} structures whose ring, star and ℂ-algebra structures agree; proving it needs the identity exhibited as a \texttt{StarAlgEquiv} between them (type synonyms, instance plumbing). It can be added as its own declaration if needed." | +| haag-kastler-axioms.tex:355 | "That citation does not support the claim. … The clause is therefore dropped from the statement of that node and recorded here as prose rather than left as an unbacked assertion;" | retraction | delete | — (the norm_map discussion exists only to refute the earlier citation; covered by the line-355 rewrite) | +| haag-kastler-axioms.tex:357 | "The completeness caveat is worth keeping." | process | delete | — (paragraph starts "The completeness hypothesis is hidden in the word …") | +| haag-kastler-axioms.tex:357 | "An earlier version of this blueprint claimed that any two C*-norms on a $*$-algebra coincide, which is that false statement." | retraction | delete + to-CHANGELOG | — (the $\mathbb{C}[F_2]$ counterexample stays; it is needed for line 359) | +| haag-kastler-axioms.tex:359 | "the well-definedness reading rests on the prose above." | process, low | rewrite (optional) | "uniqueness up to isomorphism is the unclaimed statement discussed above." | +| haag-kastler-axioms.tex:361 | "\emph{The construction route is settled: colimit, then completion.}" | process | rewrite | "\emph{Design note: the quasilocal algebra is constructed, by colimit then completion.}" | +| haag-kastler-axioms.tex:361 | "This is a decision that has been taken, not an option still under consideration, and the reason is physical. The alternative below is rejected." | process | rewrite | "The reason is physical, as the next paragraphs explain." | +| haag-kastler-axioms.tex:363 | "\emph{The rejected alternative, and why it is rejected.} The alternative was to realise the quasilocal algebra as a \emph{closed} $*$-subalgebra" | rationale | rewrite | "\emph{Design note: why the quasilocal algebra is constructed rather than assumed.} One could instead realise the quasilocal algebra as a closed $*$-subalgebra of an ambient C*-algebra … That would save real work: \texttt{StarSubalgebra.cstarAlgebra} supplies the entire C*-structure …, so [the six completion nodes] would be unnecessary." | +| haag-kastler-axioms.tex:365 | "It is rejected because of what it presupposes." | rationale | rewrite | "It is not used, because of what it presupposes." (rest of paragraph is present-tense rationale; keep) | +| haag-kastler-axioms.tex:367 | "\emph{The existing route-2 material in this repository is not invalidated.}" | history | rewrite | "\emph{Dense-extension results.}" | +| haag-kastler-axioms.tex:367 | "What the decision changes is only that the blueprint must now \emph{also} construct such an algebra, which is what the chain above does." | change-notice | delete | — | +| haag-kastler-axioms.tex:367 | "so it is the reference to read before formalizing the completion nodes above." | process | rewrite | "and is the closest worked example in this repository of transporting star-structure across a dense embedding." (drop "remains") | +| haag-kastler-axioms.tex:367 | "and they remain valid verbatim." | history, low | rewrite | "and they apply to the quasilocal algebra constructed above." | +| haag-kastler-axioms.tex:388 | "The three supporting results this definition rests on are now declarations of this blueprint rather than appeals to the informal discussion of Chapters 6.1 and 6.2:" | change-notice (inside statement) | rewrite | "The three supporting results this definition rests on are declarations of this blueprint (Chapters 6.1 and 6.2 discuss them informally):" | +| haag-kastler-axioms.tex:390 | "while the Lean structure continues to take $\mathfrak{U}$ as \emph{given}" | change-notice (inside statement) | rewrite | "while the Lean structure takes $\mathfrak{U}$ as given" | +| haag-kastler-axioms.tex:390 | "There is no longer any discrepancy between this blueprint's formalization markings and the Lean, and the construction and the structure are now connected:" | change-notice (inside statement) | rewrite | "The construction and the structure are connected by \ref{thrm:quasilocal-algebra-exists}, which produces a quasilocal algebra for the net from the colimit-and-completion construction;" | +| haag-kastler-axioms.tex:390 | "See the formalization note following \ref{lmm:quasilocal-completion-cstar} on the two available construction routes." | process (inside statement) | rewrite | "See the design note following \ref{lmm:quasilocal-completion-cstar} for why $\mathfrak{U}$ is constructed rather than assumed." | +| haag-kastler-axioms.tex:448 | "The right-hand side of the equivalence was the form of Axiom 3 in earlier versions of this blueprint." | history (inside proof) | delete + to-CHANGELOG | — | +| haag-kastler-axioms.tex:475 | "a theorem that appears to need Axiom 4 in fact needs the \emph{mathematics} it was previously conflated with, namely the existence of the quasilocal algebra" | history (inside statement) | rewrite | "a theorem that appears to need Axiom 4 in fact needs the existence of the quasilocal algebra (\ref{thrm:quasilocal-algebra-exists}), not the physical correspondence." | +| haag-kastler-axioms.tex:477 | "\emph{Formalization note.} This node previously carried \texttt{Physicslib4.AQFT.HaagKastler.QuasilocalCompleteness}. That was withdrawn, because that Lean definition is a mathematical existence claim" | retraction (inside statement) | delete + to-CHANGELOG | — (delete the first two sentences) | +| haag-kastler-axioms.tex:477 | "A faithful encoding of \emph{this} node now exists, as \texttt{Physicslib4.AQFT.HaagKastler.ObservableCorrespondence}." | change-notice (inside statement) | rewrite | "\emph{Formalization note.} This node is encoded as \texttt{Physicslib4.AQFT.HaagKastler.ObservableCorrespondence}." (rest of paragraph is present tense; keep) | +| haag-kastler-axioms.tex:481 | "what appeared to need Axiom 4 needed \ref{thrm:quasilocal-algebra-exists} instead." | history (inside statement) | rewrite | "results about the quasilocal algebra use \ref{thrm:quasilocal-algebra-exists} instead." | +| haag-kastler-axioms.tex:493 | "because it is the mathematical content that was previously bundled into Axiom 4 (\ref{def:quasilocal-completeness}) and is what the consumers of that axiom actually needed." | history (inside statement) | rewrite + to-CHANGELOG | "because it is the mathematical content that results about the quasilocal algebra use; Axiom 4 (\ref{def:quasilocal-completeness}) is a bridge principle and does not supply it." | +| haag-kastler-axioms.tex:495 | "\emph{Why this node once pointed at no Lean declaration.} It now does, and the history of how it came to is kept here" | history (inside statement) | delete + to-CHANGELOG | — (whole paragraph: withdrawn tags, "Two independent mismatches … have since been repaired", "none of it is a live obstacle any longer") | +| haag-kastler-axioms.tex:497 | "\emph{The embedding family, fixed as prescribed.} The first mismatch was that the family was indexed over all subsets. The field read" | history (inside statement) | rewrite + to-CHANGELOG | "\emph{Design note: the embedding family is indexed over Alexandrov-basis sets.} The field \texttt{ι} takes a strict-implicit region argument with an \texttt{IsAlexandrovBasisSet} hypothesis, the binder shape of \texttt{ι\_injective} and \texttt{ι\_inclusion}, so all three fields agree on their domain. \texttt{LocalNet.algebra} is total, so indexing over all subsets would demand a unital $*$-homomorphism out of every junk fibre." | +| haag-kastler-axioms.tex:499 | "That over-generality was not harmless: it made the \texttt{Prop} \emph{refutable}, and the following net is why the restriction was necessary." | rationale (inside statement) | rewrite | "Indexing over all subsets would make the \texttt{Prop} refutable, as the following net shows." (keep the $M_2(\mathbb{C})$ counterexample, restated conditionally: "… would be false for that net.") | +| haag-kastler-axioms.tex:499 | "With \texttt{\ensuremath{\iota}} now restricted to the basis sets, … the net is kept on record because it is the reason the restriction was needed, not because it refutes the present Lean." | history (inside statement) | rewrite | "With \texttt{ι} restricted to basis sets, no embedding of $\mathfrak{U}(\mathbf{B}_0)$ is demanded and the refutation does not apply." | +| haag-kastler-axioms.tex:501 | "\emph{The carrier universe, fixed --- but not by the means this node prescribed.} The second mismatch was that the carrier was pinned to \texttt{Type 0}." | history + rationale (inside statement) | rewrite + to-CHANGELOG | "\emph{Design note: the carrier lives in the net's universe.} The structure reads \texttt{QuasilocalAlgebra (U : LocalNet.\{u\})} with \texttt{carrier : Type u}. A free carrier universe is constrained by no field, so it cannot be inferred (\texttt{LocalCommutativity} would fail to elaborate); a fixed \texttt{Type 0} would exclude nets in higher universes. Tying it to \texttt{u} costs no generality, because density forces $\mathfrak{U}$ into the universe of the local algebras." | +| haag-kastler-axioms.tex:503 | "\emph{A third pin, one level up.} Fixing the carrier alone would not have lifted the size restriction, and this was found while making the change just described." | history (inside statement) | rewrite + to-CHANGELOG | "\texttt{HaagKastlerNet} carries its universe, so no net is confined to a fixed universe. The satisfiability witness \texttt{nonempty\_haagKastlerNet} is stated at universe \texttt{0}, since it is built from ℂ; one model suffices. \texttt{QuasilocalColimit} and \texttt{QuasilocalCompletion} are declared over \texttt{LocalNet.\{u\}} with result \texttt{Type u}, so [list] is available at every universe." | +| haag-kastler-axioms.tex:503 | "(\texttt{CovariantQuasilocalAlgebra} has since been removed: its data is just the net's canonical $\mathfrak{U}$)" | history (inside statement) | delete + to-CHANGELOG | — | +| haag-kastler-axioms.tex:505 | "\emph{The node is now formalized}, as \texttt{Physicslib4.AQFT.HaagKastler.exists\_quasilocalAlgebra}, … having been completed." | change-notice (inside statement) | rewrite | "The node is formalised as \texttt{Physicslib4.AQFT.HaagKastler.exists\_quasilocalAlgebra}, assembled from \ref{lmm:completion-coe-star-alg-hom} and the five embedding lemmas below (…)." Or delete: \leanok and the proof already say this. | +| haag-kastler-axioms.tex:507 | "One consequence reaches beyond this node and is recorded because this is where it was found. \ref{def:haag-kastler-net} used to bundle \texttt{QuasilocalCompleteness} as a field" | history (inside statement) | delete + to-CHANGELOG | — (whole paragraph; "That re-pointing has been carried out: the field is gone") | +| haag-kastler-axioms.tex:573 | "This is the step that the earlier one-paragraph proof of \ref{thrm:quasilocal-algebra-exists} used without citing anything, which is why it is now a node." | history (inside proof) | delete + to-CHANGELOG | — (paragraph then starts "It is a direct Mathlib citation, …") | +| haag-kastler-axioms.tex:575 | "The node survives as a node rather than being inlined because" | history (inside proof), low | rewrite | "It is a node rather than an inline step because" | +| haag-kastler-axioms.tex:733 | "The Kaplansky density theorem remains out of scope." | change-notice (inside proof), low | rewrite | "The Kaplansky density theorem is out of scope." | +| haag-kastler-axioms.tex:781 | "What the consumers of that axiom actually needed from it was never the physical correspondence but the \emph{existence of a quasilocal algebra}, and that is now the theorem" | history (inside statement) | rewrite | "Axiom 4 is not a field. Results about the quasilocal algebra need its existence, not the physical correspondence, and existence is the theorem \ref{thrm:quasilocal-algebra-exists}, proved from the Axiom 1 data and Axiom 2 alone." (drop "and its absence is worth recording") | +| haag-kastler-axioms.tex:784 | "As proven in this blog post, these ``sharpened'' axioms entail the original axioms save Axiom 6 (Primitivity), which is an axiom that we abandon." | blog | rewrite | "As Chapters~\ref{chptr:axiom-0-(minkowski-space)}--\ref{chptr:axiom-6-(primitivity)} of this blueprint show, these ``sharpened'' axioms entail the original axioms save Axiom 6 (Primitivity), which is abandoned (Chapter~\ref{chptr:axiom-6-(primitivity)})." (check the exact chapter range with the author) | +| haag-kastler-axioms.tex:786 | "In a subsequent blog post we will detail these axioms." | blog | rewrite | "Chapter~\ref{chptr:haag-kastler-axioms-in-curved-spacetime} motivates these axioms and Section~\ref{sctn:haag-kastler-axioms-in-curved-spacetime} states them." | +| haag-kastler-axioms.tex:1620 | "The general two-algebra statement is \ref{lmm:von-neumann-inter-general}, which is not yet formalized." | change-notice, stale (inside statement) | rewrite | "The general two-algebra statement is \ref{lmm:von-neumann-inter-general}." (it is \leanok and line 1634 says it is formalised as \texttt{bicommutant\_inter\_eq}) | +| haag-kastler-axioms.tex:1634 | "the special case could be re-derived from the general one, but currently is not." | change-notice (inside statement), low | rewrite | "the Lean proof of the special case does not go through the general one." | +| haag-kastler-axioms.tex:1839 | "No covariance-compatibility hypothesis is needed: by \ref{lmm:quasilocal-covariance-compatible} it holds for every quasilocal algebra." | retraction (inside statement), borderline | keep (writer's call) | — (reads as present-tense mathematics, but the caution may exist only because the hypothesis was once carried; if trimmed: "Covariance compatibility holds for every quasilocal algebra (\ref{lmm:quasilocal-covariance-compatible})." ) | + +Notes for the writer: +- No Lean/Mathlib version string (`v4.x`, toolchain tag) occurs in these five files. The version-dated rows are Mathlib file line numbers (`Completion.lean:75`, `Basic.lean:89`, `Classes.lean:30-42`, "line 36 of the same file", "twelve lines further down") and audit narration tied to one Mathlib snapshot. Treat those as D6. +- The heaviest cluster is `haag-kastler-axioms.tex:493–507` (Existence of a Quasilocal Algebra). It is a history block inside a theorem statement. Rationale worth keeping (D4): the Alexandrov-basis indexing with the $M_2(\mathbb{C})$ refutation, and the carrier tied to the net's universe. Write these as Design notes and delete the rest. +- `haag-kastler-axioms.tex:361–367` is the explicit D4 example from the plan. Rewrite it as "Design note: why the quasilocal algebra is constructed rather than assumed." +- `haag-kastler-axioms.tex:1620` contradicts the node it cites: `lmm:von-neumann-inter-general` is `\leanok`. +- Per D6, `introduction.tex` is where the single blueprint version sentence goes. It has none now. + +## To CHANGELOG + +- Axiom 2 (Minkowski and curved) was once stated with strict inclusion $\subset$. It now uses $\subseteq$, matching the Lean, so the identity law (b) is expressible. +- Axiom 2 gained the identity and composition laws as chosen data. Previously the isotony embeddings used downstream were witnesses chosen existentially inside Axiom 3, which had no composition law. +- Axiom 3 (Minkowski and curved) used to introduce its own isotony family and injectivity. It now only asserts commutation using the Axiom 2 family. The per-site coherence hypotheses were removed, for example from curved von Neumann isotony, the curved von Neumann net and net equivalence. +- Minkowski Axiom 3 was previously stated as commutation of the images $\iota_{\mathbf{B}}$ in a quasilocal algebra. It is now stated in a common containing diamond, and the old form is the equivalent `lmm:local-commutativity-iff-quasilocal`. +- Axiom 4 previously carried `QuasilocalCompleteness`, a mathematical existence claim. That tag was withdrawn. Axiom 4 is now encoded as the bridge principle `ObservableCorrespondence`, and the existence content became `thrm:quasilocal-algebra-exists`. +- `HaagKastlerNet` used to bundle `QuasilocalCompleteness` as a field. The field was removed, and the net's canonical $\mathfrak{U}$ is now built from `exists_quasilocalAlgebra`. +- `thrm:quasilocal-algebra-exists` once had its `\lean`/`\leanfile` tags withdrawn because `Nonempty (QuasilocalAlgebra U i)` was false. Two mismatches were repaired. First, `ι` was indexed over all subsets and is now restricted to Alexandrov-basis sets. Second, the carrier was pinned to `Type 0` and is now tied to `Type u`. The intended fix of a free `Type*` failed to elaborate. +- A third universe pin was found and removed: `HaagKastlerNet` had no universe parameter. `CovariantQuasilocalAlgebra` was then removed, and `nonempty_haagKastlerNet` is stated at universe 0. +- The quasilocal-completion node once claimed that the complete C*-norm is unique, citing `StarAlgEquiv.norm_map`, which does not support the claim. The clause was dropped. +- An earlier blueprint version claimed that any two C*-norms on a $*$-algebra coincide. This is false: $\mathbb{C}[F_2]$ has distinct full and reduced norms. +- The `StarModule ℂ` field was missing from an earlier version of `lmm:completion-of-cstar-normed-star-algebra`. +- `lmm:quasilocal-colimit-union-of-insertions` was split out because an earlier one-paragraph proof of `thrm:quasilocal-algebra-exists` used it without citation. +- The supporting results of the quasilocal-algebra definition were promoted from informal Chapter 6.1/6.2 discussion to blueprint declarations. A former mismatch between the blueprint's formalisation markings and the Lean was resolved. +- The colimit-then-completion route was chosen over the closed-$*$-subalgebra route (`StarSubalgebra.cstarAlgebra`). The existing dense-extension material (`dense_adjoin_iUnion_range_ι`, `exists_starAlgHom_extend_of_dense`) stayed valid as consumers. + +## Totals + +Rows: 79, plus the `introduction.tex` "no findings" row. Each row is counted once, under its first-listed category. + +| category | haag-kastler-axioms | …-in-curved-spacetime | general-covariance | gns-construction-details | introduction | total | +|---|---|---|---|---|---|---| +| change-notice | 10 | 4 | 1 | 0 | 0 | 15 | +| history | 16 | 4 | 1 | 0 | 0 | 21 | +| process | 17 | 1 | 0 | 0 | 0 | 18 | +| retraction (D3) | 7 | 3 | 0 | 0 | 0 | 10 | +| rationale (D4) | 3 (+1 secondary) | 0 (+1 secondary) | 0 | 0 | 0 | 3 (+2) | +| version-dated (D6) | 9 (+2 secondary) | 0 | 0 | 0 | 0 | 9 (+2) | +| blog (D5) | 2 | 0 | 0 | 1 | 0 | 3 | +| positional-keep (D1, not listed) | ~6 | 2 | 0 | ~15 | 1 | ~24 | + +Actions: delete 12; delete + to-CHANGELOG 11; rewrite 42; rewrite (optional) 3; rewrite (or delete) 1; rewrite + to-CHANGELOG 9; keep (writer's call) 1. +Rows inside a statement or proof: most of them. Prose outside environments: `haag-kastler-axioms.tex` 353–367 and 784–786, and `gns-construction-details.tex:506`. diff --git a/notes/agents/inventory-1.0/B-blueprint-ch10-spectral-spacetime.md b/notes/agents/inventory-1.0/B-blueprint-ch10-spectral-spacetime.md new file mode 100644 index 0000000..5447db8 --- /dev/null +++ b/notes/agents/inventory-1.0/B-blueprint-ch10-spectral-spacetime.md @@ -0,0 +1,67 @@ +# Inventory B: backward-looking wording in sec10 spectral / Stone / spacetime + +Scope: `blueprint/src/sections/sec10/{spectral-theorems,unbounded-spectral-theorems,stones-theorem,spacetime}.tex`. Read-only inventory (2026-10-08) per plan `notes/agents/plan-release-1.0-present-tense-2026-10-08.md` (D1-D6). Positional references (D1) are counted, not listed. + +| file:line | phrase | category | action | replacement | +|---|---|---|---|---| +| stones-theorem.tex:208 | "This is the instantiation used in the existing Lean proof of \texttt{Physicslib4.AQFT.exp\_generator\_unique}" (inside proof) | process | rewrite | "This is the instantiation used in the Lean proof of \texttt{Physicslib4.AQFT.exp\_generator\_unique} (\texttt{Physicslib4/AQFT/PositiveEnergy.lean})." (drop "existing") | +| spacetime.tex:33 | "and a chart-local formulation quantifying over \emph{constant} model vectors had no route to it at all, since $V_x$ and $W_x$ vary" (inside statement) | rationale | rewrite | "A chart-local formulation quantifying over \emph{constant} model vectors gives no route to it, since $V_x$ and $W_x$ vary with the point." (present tense; implicit reference to the earlier chart-local field) | +| spacetime.tex:1365 | "This lemma is already formalized, as \texttt{Physicslib4.Spacetime.alexandrovBasis\_directed}, and so are the two point-existence helpers it consumes" (inside proof) | process | delete | — (the `\lean{}` and `\leanok` already record this; if kept: "The two point-existence helpers are \texttt{exists\_common\_past} and \texttt{exists\_common\_future}.") | +| spacetime.tex:1638 | "It has to be proved by hand; that obligation is no longer left implicit here but is discharged by the separate nodes" (inside proof) | change-notice | rewrite | "It has to be proved by hand, and is discharged by the separate nodes \ref{lmm:mfderiv-symm-cancel-left} and \ref{lmm:mfderiv-symm-cancel-right}." | +| spacetime.tex:1746 | "Since that obligation is now the bundle-section condition recorded in \ref{def:spacetime}" | change-notice | rewrite | "Since that obligation is the bundle-section condition recorded in \ref{def:spacetime}, the assembly is done entirely in the bundle-section idiom, ..." (drop "now") | +| spacetime.tex:1760 | "\emph{The label name is historical.} It reads \texttt{pullback-metric-smooth-in-charts} because the smoothness field ... was once a chart-local $\mathtt{ContDiffWithinAt}$ condition." (inside statement) | history | delete | — (label itself unchanged; whole paragraph to CHANGELOG) | +| spacetime.tex:1776 | "\emph{The route, now pinned down.} This was previously recorded as an open API question. It is no longer open:" (inside proof) | history | rewrite | "\emph{The route.} Every smoothness step is supplied by Mathlib, and what remains is two mechanical local identities. The chain is:" | +| spacetime.tex:1778-1780 | "(\texttt{Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean:241}) ... (\texttt{.../Tangent.lean:518}) ... (\texttt{.../Pullback.lean:423}) ... (\texttt{:122}) ... (\texttt{:170})" (inside proof) | version-dated | rewrite | Keep the file paths, drop the `:NNN` line numbers (they pin a particular Mathlib revision). | +| spacetime.tex:1782 | "Two \emph{local algebraic} helpers were indeed needed and had to be written by hand ... both were written as \texttt{have}s" (inside proof) | process | rewrite | "Two \emph{local algebraic} helpers are proved by hand as \texttt{have}s inside the single proof; neither is a smoothness statement." Then the rest of the paragraph in present tense ("is proved by", "is established as an eventual equality"). | +| spacetime.tex:1782 | "One practical warning, recorded because it cost a formalization attempt: those last two lemmas live in the \texttt{Bundle.Trivialization} namespace" (inside proof) | process | rewrite | "Note that those last two lemmas live in the \texttt{Bundle.Trivialization} namespace, not \texttt{Trivialization}: in \texttt{Mathlib/Topology/VectorBundle/Basic.lean} the \texttt{end Pretrivialization} closes only the inner namespace." (also drop "the block at line 169": version-dated) | +| spacetime.tex:1784 | "Two corrections to what was written here before. First, \texttt{ContMDiff.clm\_comp} is \emph{not} the only precomposition statement ... the candidate list below was retained as a record" (inside proof) | retraction | delete | — (D3: delete whole paragraph; content of the first correction is already stated at 1780. Introduce the bullets 1786-1788 with: "On the goal side the reduction uses:") | +| spacetime.tex:1790 | "One thing to record so that it is not attempted: \texttt{contMDiffAt\_hom\_bundle} is \emph{not} a possible target shape" (inside proof) | process | rewrite | "\texttt{contMDiffAt\_hom\_bundle} is \emph{not} a possible target shape for $x \mapsto d\psi_x$ itself: ..." | +| spacetime.tex:1792 | "No intermediate top-level lemma was needed: the two local identities above are discharged inline" (inside proof) | process | rewrite | "No intermediate top-level lemma is needed: the two local identities above are discharged inline, inside the single proof, and all three ingredients are Mathlib-backed." | +| spacetime.tex:1818 | "is the existing $\mathtt{Isometry.PreservesFutureOrientation}$, and the two-sided form is what the single-metric ... already uses; the definition is hoisted here" (inside statement) | process | rewrite | "The single-metric case ... is $\mathtt{Isometry.PreservesFutureOrientation}$, and the two-sided form is the one \ref{lmm:isometry-preserves-basis-sets} uses; it is stated here so that the lemmas below can cite it rather than restate it." | +| spacetime.tex:1821 | "and the smoothness statement is now a single step" | change-notice | rewrite | "and the smoothness statement is a single step." | +| spacetime.tex:1823 | "This is the main structural gain of making the bundle-section form primitive. In the earlier chart-local formulation the smoothness argument was a \emph{round trip} ... now gone outright ... now pinned down" | rationale | rewrite | "\emph{Design note: why the smoothness fields are bundle-section conditions.} With a chart-local smoothness field the argument would be a round trip between two idioms, and Mathlib has no lemma packaging the $\mathrm{tangentCoordChange}$ round trip (\texttt{continuousOn\_tangentCoordChange} gives only continuity). With the bundle-section form the time-orientation chain below reduces entirely to Mathlib, and so does smoothness of $x \mapsto d\psi_x$ (\ref{lmm:pullback-metric-smooth-in-charts})." Old-version narrative to CHANGELOG. | +| spacetime.tex:1834 | "This node was always stated in bundle-section terms, and it is now consumed directly" (inside statement) | change-notice | rewrite | "This node is stated in bundle-section terms and is consumed directly: the hypothesis $hV$ is \emph{literally} the \texttt{smooth} field of \ref{def:time-orientable}, ..." | +| spacetime.tex:1963 | "This node exists to replace a hand-wave." (inside proof) | history | rewrite | "This node is needed because the reverse inclusions in \ref{lmm:cross-metric-chronological-future-image} and \ref{lmm:cross-metric-chronological-past-image} apply \ref{lmm:cross-metric-isometry-preserves-chronology} to $\psi^{-1}$, ..." (rest of sentence unchanged) | +| spacetime.tex:1999 | "which is what the repository template cited below actually uses" (inside proof) | process | rewrite | "as in the single-metric proof cited below" | +| spacetime.tex:2001 | "Do not re-derive this: the repository already contains the single-metric form ... \texttt{IsometryCausality.lean:43} ... is already proved as ... \texttt{Curves.lean:119} and should be cited rather than reproved." (inside proof) | process | rewrite | "The single-metric form of this statement is \texttt{Physicslib4.Spacetime.Isometry.mfderivWithin\_comp\_diffeo}, whose proof carries out the same four steps; the cross-metric statement differs only in the target metric, since the identity mentions no metric. The unique-differentials input is \texttt{Physicslib4.Spacetime.Path.uniqueDiffOn\_parameterSpace} (\ref{lmm:path-parameter-unique-diff})." (drop file line numbers) | +| spacetime.tex:2015 | "Again this should be assembled from the existing template rather than rederived: ... \texttt{IsometryCausality.lean:70} ... are copied verbatim from that template" (inside proof) | process | rewrite | "The single-metric version of this construction is \texttt{Physicslib4.Spacetime.Isometry.pushforwardPath}; its \texttt{nonvanishing} field is proved the same way (rewrite with \texttt{mfderivWithin\_comp\_diffeo}, then ... \texttt{injective}), and the remaining fields, none of which mentions a metric, are the same." | +| spacetime.tex:2067 | "Take the skeleton from the repository rather than inventing one: ... \texttt{IsometryCausality.lean:270,294} ... which is the tempting but wrong route" (inside proof) | process | rewrite | "The single-metric forms \texttt{...Isometry.chronologicalFuture\_image\_subset} and \texttt{...chronologicalFuture\_image} are the same argument with one metric. The proof uses neither \texttt{Set.image\_subset\_iff} nor \texttt{Equiv.image\_eq\_preimage}-style rewriting: the $\subseteq$ half destructures ... " (drop line numbers and "tempting but wrong") | +| unbounded-spectral-theorems.tex:80 | "The result we actually need is Hall's Theorem A.52, which Section~\ref{sctn:spectral-theorems} now states as a citable result" | change-notice | rewrite | "The result we need is Hall's Theorem A.52, stated in Section~\ref{sctn:spectral-theorems} as Theorem~\ref{thrm:hall-a.52}." | +| unbounded-spectral-theorems.tex:273 | "The one consequence to keep in mind is for later additions rather than for anything above. ... Any result added later that does need an orthogonal complement" (inside statement) | process | rewrite | "Nothing in this section uses orthogonality in $\mathbf{H}\times\mathbf{H}$: ... are never invoked. A result that needs an orthogonal complement, an orthogonal decomposition of $\mathbf{H}\times\mathbf{H}$, or the self-adjointness of $A^*A$ must be stated over the $L^2$ product rather than the plain one." (low priority; forward-looking, not historical) | +| unbounded-spectral-theorems.tex:2 | "It is a prerequisite for handling these unbounded operators within the rest of the AQFT work that motivated this development." | blog | rewrite | "It is a prerequisite for handling these unbounded operators in the rest of this chapter, for instance in Stone's Theorem (Section~\ref{sctn:stones-theorem})." (series-of-posts framing) | +| spectral-theorems.tex:2 | "extensive use of this theorem will be made in subsequent work." | blog | rewrite | "This theorem sits at the core of much of AQFT, and is used throughout Sections~\ref{sctn:unbounded-spectral-theorems} and~\ref{sctn:stones-theorem}." | +| spectral-theorems.tex:93 | "Retained as a compound reference to ... which now state these two unrelated notations separately. Citations of this anchor remain valid; new citations should prefer" (inside statement) | change-notice | rewrite | "A compound reference to Definition~\ref{def:identity-operator} and Definition~\ref{def:indicator-function}, which state these two unrelated notations separately. Citations should prefer whichever of the two is actually needed." (label, `\lean`, `\uses` unchanged) | + +## To CHANGELOG + +- spacetime.tex:1760 — the label `lmm:pullback-metric-smooth-in-charts` dates from when the smoothness field of `def:spacetime` was a chart-local `ContDiffWithinAt` condition; the label was kept because `thrm:pullback-is-spacetime` cites it. +- spacetime.tex:1823 — the smoothness fields of `Spacetime` and `TimeOrientation` were switched from a chart-local formulation to the bundle-section (`ContMDiff` section) form; this removed the accepted `tangentCoordChange` round-trip obligation from the time-orientation chain. +- spacetime.tex:1776/1784 — the Mathlib route for smoothness of `x ↦ dψ_x` (pullback metric) was an open API question, later settled via `ContMDiffAt.mfderiv_const` and `clm_precomp`/`clm_comp`; an earlier note wrongly claimed `ContMDiff.clm_comp` was Mathlib's only precomposition lemma (retraction). +- spacetime.tex:1638 — the `mfderiv`/`symm` round-trip cancellation was left implicit, then split out as `lmm:mfderiv-symm-cancel-left` / `-right`. +- spacetime.tex:1963 — `lmm:cross-metric-isometry-symm` was added to replace a hand-wave in the reverse inclusions of the chronological-future/past image lemmas. +- spectral-theorems.tex:93 — `def:identity-and-indicator` was split into `def:identity-operator` and `def:indicator-function`; the old anchor is kept as a compound reference. +- unbounded-spectral-theorems.tex:80 — Hall's Theorem A.52 was promoted to a citable result (`thrm:hall-a.52`) in the bounded spectral section. + +## Totals + +- Rows: 27 (spacetime.tex 21, unbounded-spectral-theorems.tex 3, spectral-theorems.tex 2, stones-theorem.tex 1). +- By category: process 12, change-notice 6, history 3, rationale 2, blog 2, retraction 1, version-dated 1. +- By action: rewrite 24, delete 3 (spacetime.tex:1365, 1760, 1784); 7 CHANGELOG bullets. +- Inside statement: 6 (spacetime.tex:33, 1760, 1818, 1834; spectral-theorems.tex:93; unbounded-spectral-theorems.tex:273). Inside proof: 15 (spacetime.tex 14, stones-theorem.tex 1). +- Positional references kept under D1 (counted, not listed; approximate grep count of "recall", "we now …", "as before", "previously proved/established", "above", etc.): spectral-theorems.tex 95, unbounded-spectral-theorems.tex 87, spacetime.tex 18, stones-theorem.tex 4. +- No Lean/Mathlib version strings in the four files. The only version-like items are Mathlib/repo source **line numbers** (spacetime.tex:1778-1782, 2001, 2015, 2067), flagged in their rows. +- The three "Formalization note" paragraphs (spectral-theorems.tex:3131; unbounded-spectral-theorems.tex:2278, 2327) are present tense with no history, so they are kept. +- No "blog post" wording; no "(new)" or "new layer" markers in these four files. + +## Additional findings (Stage 3 re-read) + +Full read-through (2026-10-09) of `spectral-theorems.tex` (all 5834 lines) and `unbounded-spectral-theorems.tex` lines 1480–3281, looking for temporal wording that a grep would miss. + +| file:line | phrase | category | action | replacement | +|---|---|---|---|---| +| spectral-theorems.tex:25 | "It is the convention used throughout this section and its sequel." (inside statement of `def:inner-product`, commentary) | blog | rewrite | "It is the convention used throughout this section and Section~\ref{sctn:unbounded-spectral-theorems}." | +| spectral-theorems.tex:1103 | "The next result requires the Hilbert-space self-duality theorem, which we state first." (left behind when `thrm:hall-a.52` was moved up to :319; the theorem is no longer stated next) | history (stale after restructure) | rewrite | "The next result uses the \textbf{Riesz Theorem}~(\ref{thrm:hall-a.52}) stated above." | +| spectral-theorems.tex:2426 | "Its analogue for normal operators is proved in the sequel." (inside statement of `prpstn:hall-7.7`, commentary) | blog | rewrite | "Its analogue for normal operators is Part 2 of Lemma~\ref{lmm:hall-10.25} in Section~\ref{sctn:unbounded-spectral-theorems}." | +| spectral-theorems.tex:5833 | "a tool which will often be used." (closing line of the section) | blog | rewrite | "a tool used again in Section~\ref{sctn:unbounded-spectral-theorems}." | + +Checked and kept: unbounded-spectral-theorems.tex:1846 "exactly the pattern Lemma~… and Proposition~… were introduced earlier to avoid" (positional, refers to earlier text, D1); :1848 "plain polynomials in $\lambda$ no longer suffice" (mathematical contrast between the self-adjoint and normal cases, not a change between versions); :1852, :1921 "not yet available to us" (positional). No version-dated tool claims and no Mathlib source line numbers in either file. The three "Formalization note" paragraphs read (spectral-theorems.tex:3131; unbounded-spectral-theorems.tex:2278, 2327) are present tense and stay. diff --git a/notes/agents/inventory-1.0/C-blueprint-ch0-9.md b/notes/agents/inventory-1.0/C-blueprint-ch0-9.md new file mode 100644 index 0000000..d3fa0e9 --- /dev/null +++ b/notes/agents/inventory-1.0/C-blueprint-ch0-9.md @@ -0,0 +1,48 @@ +# Inventory C: blueprint Chapters 0–9, content, macros, print/web (backward-looking wording) + +Read-only inventory, 2026-10-08. Scope: `blueprint/src/sections/sec0`–`sec9`, `blueprint/src/content.tex`, `blueprint/src/macros/*.tex`, `blueprint/src/print.tex`, `blueprint/src/web.tex`. Proposals are exact old → new wording for item-by-item approval. + +| file:line | exact old text (full sentence) | category | action | exact new text | +|---|---|---|---|---| +| content.tex | (no hits; chapter/`\input` skeleton only) | — | none | — | +| macros/common.tex, macros/print.tex, macros/web.tex, print.tex, web.tex | (no hits; template/LaTeX comments only, no version strings, no blog wording) | — | none | — | +| sec0/abstract.tex | (no hits) | — | none | — | +| sec1/introduction.tex, sec1/original-haag-kastler-axioms.tex | (no hits) | — | none | — | +| sec2/* (4 sections + introduction) | (no hits; "a new topology" at alexandrov:6 means "another topology", and "had not confronted this earlier" at alexandrov:8 refers to the history of physics, not to this document) | — | none | — | +| sec3/introduction.tex:1 | Next let us consider Axiom 1 (Local Algebras) which states | positional-keep | keep | — (count: 1) | +| sec3/regions-of-measurement.tex:34,46,58 | "We chose regions …" (34); footnote "…which we none-the-less present later." (46); "So, all of this implies that our original choice … was the right one." (58) | positional-keep | keep | — (count: 3; "original choice" refers to the choice made at line 20 of the same section, not to an earlier version) | +| sec4/introduction.tex:1 | Now let us consider Axiom 2 (Isotony) which states | positional-keep | keep | — (count: 1) | +| sec4/gns-construction.tex:4,21 | "…the ``GNS construction'', which we now describe." (4); "(Again, without a unit …)" (21) | positional-keep | keep | — (count: 2) | +| sec4/isotony.tex:2,4,8,30 | "we can now examine isotony" (2); "As mentioned when we introduced the GNS construction" (4); "Consider again our main theme" (8); "as one will recall" (30) | positional-keep | keep | — (count: 4) | +| sec4/common-unit.tex:10 | footnote "Again, technically, …" | positional-keep | keep | — (count: 1) | +| sec5/introduction.tex:1 | Let us now consider Axiom 3 (Local Commutativity) which states | positional-keep | keep | — (count: 1) | +| sec5/completely-spacelike.tex | (no hits) | — | none | — | +| sec5/quasilocal-algebra.tex:2,30 | "The second point that requires clarification is a bit more subtle." (2); "…the quasilocal algebra $\mathfrak{U}$ of the next chapter contains every $\mathfrak{U}(\mathbf{B})$, …" (30) | positional-keep | keep | — (count: 2; the "formulation … is preferred because …" passage at 32–35 is already present-tense design rationale) | +| sec5/quasilocal-algebra.tex:37 | Clarification. | process (stray fragment) | delete | — (delete). Not temporal wording; it is a one-word leftover line after the section's last paragraph that reads as an editing note. Flagged for the user only; delete only if the user agrees. | +| sec6/introduction.tex, completion-of-the-set-theoretic-union.tex, set-theoretic-union.tex | (no hits apart from positional "Next let's consider Axiom 4" at introduction:1) | positional-keep | keep | — (count: 1) | +| sec6/all-observables-of-interest.tex:8,24 | "As we've seen, given a state $\omega$ we can use the GNS construction …" (8); "Furthermore, our slight modification of Axiom 2 (Isotony) implies that $\mathfrak{U}$ is unital, …" (24) | positional-keep | keep | — (count: 2; "our slight modification" refers to Section~\ref{sctn:common-unit}, not to a document revision) | +| sec7/introduction.tex:1,9 | "Next let us consider Axiom 5 (Lorentz Covariance)" (1); "This axiom is the most straightforward axiom of all that we have encountered." (9) | positional-keep | keep | — (count: 2) | +| sec7/inhomogeneous-lorentz-group.tex, action-of-…-identity-component.tex | (no hits; "This original formulation of Axiom 5" refers to the 1964 paper) | — | none | — | +| sec8/introduction.tex:1 | Finally we will examine Axiom 6 (Primitivity) | positional-keep | keep | — (count: 1) | +| sec8/faithful-representations.tex, faithful-and-irreducible-representations.tex | (no hits; "in later versions of the axioms presented by Haag" at f-a-i:17 is literature history, not document history) | — | none | — | +| sec9/introduction.tex:1 | As we've recounted the axioms of AQFT in Minkowski spacetime, we are now in a position to generalize this to curved spacetime, i.e. ``Lorentzian spacetime''. | positional-keep | keep | — (count: 1) | +| sec9/prologue.tex:12 | In particular, as we have seen previously, the required structure follows from the theorem (Theorem 2.69 from \href{https://doi.org/10.1007/978-3-319-91755-9}{Lee}) | blog (dangling reference: this theorem appears nowhere earlier in the blueprint, so "seen previously" can only point to an earlier blog post of the series) | rewrite | In particular, the required structure follows from the theorem (Theorem 2.69 from \href{https://doi.org/10.1007/978-3-319-91755-9}{Lee}) | +| sec9/prologue.tex:23,52 | "In the case of Minkowski spacetime we introduced sets of the form … showed that they are open … Furthermore, we showed that the Alexandrov topology is equivalent to the Euclidean topology …" (23, refers to Section~\ref{sctn:alexandrov-topology-on-minkowski-space}); "The previous theorem implies that for the more general case we are dealing with now on $M$, …" (52) | positional-keep | keep | — (count: 3) | +| sec9/axiom-1-local-algebras.tex:2 | With the prologue complete, we are now in a position to state the axioms of AQFT on Lorentzian spacetime. | positional-keep | keep | — (count: 1) | +| sec9/axiom-2-isotony.tex | (no hits) | — | none | — | +| sec9/axiom-3-local-commutativity.tex:2,19 | "So far the axioms have differed little from those of AQFT in Minkowski spacetime." (2); "… (Section~\ref{sctn:quasilocal-algebra}) …" (19) | positional-keep | keep | — (count: 2) | +| sec9/axiom-4-local-algebra.tex:18 | As shown in earlier in this blueprint, this axiom is essentially the statement that there exist ``observables'' that are not local observables, but such ``observables'' are ``experimentally indistinguishable'' from local observables and thus can be ignored. | positional-keep | keep (optional typo fix) | — (count: 1). Optional, not temporal: "As shown in earlier in this blueprint" has a stray "in"; a precise positional form would be "As shown in Section~\ref{sctn:all-observables-of-interest}, this axiom is essentially …". "changes slightly from its analog" / "the reason for the change" at line 2 compare the Minkowski and Lorentzian axioms, not document versions: no hit. | +| sec9/axiom-5-isometric-covariance.tex:2 | Now we present the final, and most interesting, axiom in the case of Lorentzian spacetimes. | positional-keep | keep | — (count: 1) | +| sec9/axiom-5-isometric-covariance.tex:18 | The Lean formalization works with the latter description: it intersects the identity component with the (explicitly orientation-preserving) subgroup, because the inclusion of the identity component into the orientation-preserving isometries relies on a Myers--Steenrod-type rigidity result not yet available in Mathlib. | version-dated | rewrite | The Lean formalization works with the latter description: it intersects the identity component with the (explicitly orientation-preserving) subgroup, because the inclusion of the identity component into the orientation-preserving isometries relies on a Myers--Steenrod-type rigidity result that Mathlib does not provide. | + +## To CHANGELOG + +- None required. No change notice, history or retraction was found in Chapters 0–9, so nothing removed here needs a CHANGELOG entry. (The two rewrites drop a dangling blog-series cross-reference and the word "yet"; neither records project history.) + +## Totals + +- Files read: 34 `.tex` under `sec0`–`sec9` (there is no `proposal/` directory under `blueprint/src/sections/`), plus `content.tex`, `macros/common.tex`, `macros/print.tex`, `macros/web.tex`, `print.tex`, `web.tex`: 40 files, 821 lines. +- Proposed rewrites: 2 (1 blog at sec9/prologue.tex:12; 1 version-dated at sec9/axiom-5-isometric-covariance.tex:18). +- Flagged, not temporal: 1 stray fragment "Clarification." (sec5/quasilocal-algebra.tex:37); 1 optional typo fix (sec9/axiom-4-local-algebra.tex:18). +- change-notice 0, history 0, process 0 (besides the stray fragment), retraction 0, rationale 0, explicit blog/post/series wording 0, Lean/Mathlib version strings 0. +- positional-keep: 30 (sec3: 4, sec4: 8, sec5: 3, sec6: 3, sec7: 2, sec8: 1, sec9: 9). diff --git a/notes/agents/inventory-1.0/D-lean.md b/notes/agents/inventory-1.0/D-lean.md new file mode 100644 index 0000000..a4740f4 --- /dev/null +++ b/notes/agents/inventory-1.0/D-lean.md @@ -0,0 +1,80 @@ +# Inventory D: Lean docstrings and comments + +Scope: comments and docstrings in every `.lean` file under `Physicslib4/` and `Physicslib4.lean` (excluding `scratch_*`). Read-only inventory per `notes/agents/plan-release-1.0-present-tense-2026-10-08.md` (D1–D6). Line numbers at commit a663229; paths in the table are relative to `Physicslib4/`. `**Restriction:**` lines and "Blueprint reference:" lines are kept (project convention) unless they narrate history. Version claims checked against `.lake/packages/mathlib` (pinned v4.34.1). + +| file:line | exact quoted phrase | category | action | replacement | +|---|---|---|---|---| +| AQFT/HaagKastler/CovariantState.lean:12 | "This file begins the scaffolding for *covariant states* on a Haag-Kastler net over Minkowski spacetime." | process | rewrite | "This file defines *covariant families of local states* on a Haag-Kastler net over Minkowski spacetime." | +| AQFT/HaagKastler/LocalAlgebras.lean:92 | "**Unitality.** In `Mathlib v4.31.0-rc1`, `CStarAlgebra` is *defined* as the class of *unital* (complex) C\*-algebras" | version-dated | rewrite (claim still true at v4.34.1: `class CStarAlgebra extends NormedRing …`, `NonUnitalCStarAlgebra` separate, `Mathlib/Analysis/CStarAlgebra/Classes.lean`) | "**Unitality.** Mathlib's `CStarAlgebra` is the class of *unital* (complex) C\*-algebras:" (rest of paragraph unchanged) | +| AQFT/HaagKastler/LocalCommutativity.lean:43 | "Axiom 3 is equivalent to commutation in some quasilocal algebra, the form used by earlier versions." | history | rewrite + to-CHANGELOG | "Axiom 3 is equivalent to commutation in some quasilocal algebra." | +| AQFT/HaagKastler/LocalCommutativity.lean:109 | "This was the form of Axiom 3 in earlier versions of the blueprint; by `LocalCommutativity.commute_ι` the commutation then holds in every quasilocal algebra." | history | rewrite + to-CHANGELOG | "By `LocalCommutativity.commute_ι` the commutation then holds in every quasilocal algebra." | +| AQFT/HaagKastler/Net.lean:31 | "What its consumers needed from that axiom was the *existence* of a quasilocal algebra, and that is now a theorem, `exists_quasilocalAlgebra`" | history / change-notice | rewrite + to-CHANGELOG | "The structure does **not** bundle Axiom 4. The existence of a quasilocal algebra is a theorem, `exists_quasilocalAlgebra` (`thrm:quasilocal-algebra-exists`), which builds the algebra from the net alone; `HaagKastlerNet.quasilocal` is defined from it." (keep the following "Axiom 4 proper … bridge principle" sentence) | +| AQFT/HaagKastler/Net.lean:41 | "or further axioms; those will be added as separate structure fields in subsequent files when they are formalised." | process (and inaccurate: blueprint §10.6 abandons Axiom 6) | rewrite | "The structure does not bundle Axiom 6 (Primitivity), which the sharpened axioms do not adopt." | +| AQFT/HaagKastler/Net.lean:56 | "together with proofs of Axioms 2-5 (`def:isotony`, `def:local-commutativity`, `def:quasilocal-completeness`, `def:lorentz-covariance`)." | history (stale: no Axiom 4 field remains) | rewrite | "together with proofs of Axioms 2, 3 and 5 (`def:isotony`, `def:local-commutativity`, `def:lorentz-covariance`)." | +| AQFT/HaagKastler/Net.lean:70 | "the same size restriction that `QuasilocalAlgebra.carrier` was just freed from, reimposed at the bundling level." | history | rewrite | "and the universe polymorphism of `QuasilocalAlgebra.carrier` would be lost at the bundling level." | +| AQFT/HaagKastler/Net.lean:127 | "The net therefore carries no quasilocal-completeness field: what consumers of the former Axiom 4 actually needed was this existence theorem, not a physical bridge principle." | history | rewrite + to-CHANGELOG | "The net therefore carries no quasilocal-completeness field: the existence of `𝔘` is a theorem, and Axiom 4 is a physical bridge principle (`ObservableBridge.lean`)." | +| AQFT/HaagKastler/Net.lean:317 | "This must precede `trivialQuasilocalAlgebra`, which is now indexed by it." | change-notice | rewrite | "This must precede `trivialQuasilocalAlgebra`, which is indexed by it." | +| AQFT/HaagKastler/Net.lean:332 | "It no longer supplies its own `inclusion` family; the cocone condition `ι_inclusion` is stated against the Axiom 2 family `trivialLocalNetIsotony`." | change-notice | rewrite | "The cocone condition `ι_inclusion` is stated against the Axiom 2 family `trivialLocalNetIsotony`." | +| AQFT/HaagKastler/ObservableBridge.lean:35 | "in fact needs the mathematics that was historically conflated with it, namely the existence of the quasilocal algebra" | history (borderline: may mean the literature; reads as project history) | rewrite | "in fact needs a mathematical fact, the existence of the quasilocal algebra (`thrm:quasilocal-algebra-exists`, formalized as `exists_quasilocalAlgebra`), not the physical correspondence." | +| AQFT/HaagKastler/QuasilocalAlgebra.lean:16 | "As previously proven, this set-theoretic union is a normed *-algebra. Also, as previously proven," | positional-keep | keep | — (blockquote of the blueprint; if Stage 3 edits the blueprint sentence, update the quote to match) | +| AQFT/HaagKastler/QuasilocalAlgebra.lean:32 | "Mathlib (as of `v4.31.0-rc1`) has no canonical C*-algebraic direct-limit / amalgamated-completion construction" | version-dated | rewrite (still true at v4.34.1: `DirectLimit` only in `Mathlib/Algebra/Colimit`, `Order`, `ModelTheory`; no `CStarRing`/`CStarAlgebra` instance on `UniformSpace.Completion`; `GelfandNaimarkSegal.lean` completes only a pre-inner-product space) | "Mathlib has no C*-algebraic direct-limit or amalgamated-completion construction for a family of C*-algebras:" (rest of sentence unchanged) | +| AQFT/HaagKastler/QuasilocalAlgebra.lean:150 | "This structure formerly carried its own `inclusion` family here, duplicating Axiom 2's. It is now parametrised by the Axiom 2 datum `i` and consumes `i.map` instead," | history + change-notice | rewrite + to-CHANGELOG | "The structure is parametrised by the Axiom 2 datum `i` and uses `i.map`, so there is a single isotony family in the development and the cocone condition relates `ι` to *that* family." | +| AQFT/HaagKastler/QuasilocalIntertwiner.lean:17 | "# Towards the intertwiner on the generated subalgebra … This file begins assembling the densely-defined intertwiner … The remaining step - defining the intertwiner … - will use" | process (stale: the file completes the construction, `intertwiner`, `quasilocalLift`, `action`, `IsInvariantState`, GNS covariance) | rewrite | "# The quasilocal lift of the covariance action. This file defines the densely-defined intertwiner `ι_B a ↦ ι_{L·B}(α_L a)` on the dense local `*`-subalgebra, extends it to `β_L` (`quasilocalLift`, `HaagKastlerNet.action`), and studies invariant states and their covariant GNS representations." | +| AQFT/HaagKastler/QuasilocalIntertwiner.lean:657 | "This is a necessary precursor to, but not yet, a *vacuum* representation: … which is not available here." | process (stale: spectrum condition is in `VacuumState.lean`) | rewrite | "A *vacuum* representation additionally requires the spectrum condition (positivity of the energy-momentum spectrum); see `HaagKastlerNet.IsVacuumState`." | +| AQFT/HaagKastler/QuasilocalObservable.lean:30 | "This file no longer defines a `QuasilocalCompleteness` predicate, and despite its name … The predicate that used to live here was … That claim is now a theorem, … and is gone." | history + change-notice | rewrite + to-CHANGELOG | "Despite its name, this file does not formalise Axiom 4. The existence of a quasilocal algebra is a theorem, `exists_quasilocalAlgebra` (`thrm:quasilocal-algebra-exists`), proved by building the algebra from the net alone, so no hypothesis asserting it is needed." | +| AQFT/HaagKastler/VacuumState.lean:179 | "so a concrete vacuum state no longer depends on a free predicate." | change-notice (wording) | rewrite | "so a concrete vacuum state depends on no free predicate." | +| AQFT/HaagKastlerCurved/GeometricCovariance.lean:22 | "Compared with Minkowski, the abstract `LorentzianSpacetime` interface does not provide basis-set preservation (`M.IsBasisSet (g · B₁)`), so it enters as the explicit hypothesis" | history (stale: `isBasisSet_smul` is now an interface field, `Spacetime.lean:115`) | rewrite | "Basis-set preservation `M.IsBasisSet (g · B₁)` is supplied by the interface field `M.isBasisSet_smul`, as elsewhere in the curved development (e.g. `localVonNeumann_mono`)." | +| AQFT/HaagKastlerCurved/LocalVonNeumann.lean:80 | "and that is now the composition law of Axiom 2, available as `commIsotony_comp`. Formerly the embeddings in play were the witnesses chosen inside Axiom 3, … had to be assumed as a separate hypothesis `hcoh` at every site." | change-notice + history | rewrite + to-CHANGELOG | "No coherence hypothesis is needed: the embedding `𝔘(B₁) → 𝔘(B)` factors through `𝔘(B₂)` by the composition law of Axiom 2, `commIsotony_comp`." | +| AQFT/HaagKastlerCurved/Net.lean:159 | "Previously this was chosen (`Classical.choose`) from the Axiom 3 existence witness, which is why it carried no composition law … It is now literally the Axiom 2 family," | history + change-notice | rewrite + to-CHANGELOG | "This is the Axiom 2 family itself, so `commIsotony_self` and `commIsotony_comp` below hold for every net." | +| AQFT/HaagKastlerCurved/Net.lean:182 | "This is the coherence that was previously carried as an ad hoc hypothesis at every site factoring a three-fold inclusion `B₁ ⊆ B₂ ⊆ B`; it now holds for every net, including the trivial one." | history + change-notice | rewrite + to-CHANGELOG | "This coherence holds for every net, including the trivial one, so no site factoring a three-fold inclusion `B₁ ⊆ B₂ ⊆ B` needs it as a hypothesis." | +| AQFT/HaagKastlerCurved/Spacetime.lean:28 | "Following the *axioms-first* strategy, this file does **not** construct that object. … A concrete `LorentzianSpacetime` produced from the eventual differential-geometric construction will instantiate this interface;" | process (stale: `Spacetime.LorentzianSpacetime` and `Concrete.lean` exist) | rewrite | "This file does **not** construct that object; it isolates the *interface* that the five axioms use: … The geometric bundle `Physicslib4.Spacetime.LorentzianSpacetime` instantiates this interface via `toAbstractIdentityComponent` (`Concrete.lean`); the axioms and their consequences transfer verbatim." (also add `isBasisSet_smul` to the bullet list) | +| AQFT/HaagKastlerCurved/Spacetime.lean:85 | "The full geometric content (smooth 4-manifold, Lorentzian metric, nowhere-vanishing time-orientation field, Hausdorff Alexandrov topology) is deferred; a concrete construction instantiates this interface." | process (stale; next paragraph names the construction) | rewrite | "The full geometric content (smooth 4-manifold, Lorentzian metric, nowhere-vanishing time-orientation field, Hausdorff Alexandrov topology) lives in the geometric bundle described below." | +| AQFT/KMS.lean:38 | "KMS states are automatically `α`-invariant; that and other consequences are left for later development." | process (stale: `IsKMSState.invariant`, `invariant_of_pos` are in this file) | rewrite | "KMS states are automatically `α`-invariant: `IsKMSState.invariant` under the strip-Liouville principle, which holds for `β > 0` (`IsKMSState.invariant_of_pos`)." | +| AQFT/KMS.lean:81 | "but not the holomorphic gluing across a line that the periodic extension needs, so this principle is isolated here as an explicit hypothesis rather than proved." | process (stale: `stripLiouville_of_pos` proves it) | rewrite | "but not the holomorphic gluing across a line that the periodic extension needs. That gluing is proved in `HorizontalLineRemovable.lean`, and `stripLiouville_of_pos` proves the principle for `β > 0`." (Mathlib claim checked: no Schwarz reflection in v4.34.1) | +| AQFT/KMS.lean:222 | "with no external analytic hypothesis: the strip-Liouville principle is now a theorem (`stripLiouville_of_pos`) for `β > 0`." | change-notice | rewrite | "with no external analytic hypothesis: the strip-Liouville principle holds for `β > 0` (`stripLiouville_of_pos`)." | +| Analysis/CStarCompletion.lean:39 | "and — once `CStarRing` is in place — isometry of the involution" / l.208 "every parent is now in place" | positional-keep | keep | — (refers to order within the file) | +| Analysis/HorizontalLineRemovable.lean:10 | "# Towards horizontal-line removability (Morera-based)" … "That theorem is the missing prerequisite for the strip Schwarz reflection" | process | rewrite | "# Horizontal-line removability (Morera-based)" … "That theorem is the prerequisite for the strip Schwarz reflection used in the KMS invariance proof (`StripLiouville`)." | +| Analysis/StripPeriodicExtension.lean:55 | "The half-plane topology helpers (…) now live in `Physicslib4.Analysis.HorizontalLineRemovable` alongside the general gluing lemma." | history (moved-code notice) | delete | — (delete) | +| GNS/Amplification.lean:28 | "a genuine von Neumann algebra result that Mathlib does not currently provide. It is recorded as deferred." | version-dated (implicit "currently") + process | rewrite (still true at v4.34.1: no amplification/tensor-commutant theorem in Mathlib) | "a von Neumann algebra result that Mathlib does not provide." (if the omission is deliberate, record it as a `**Restriction:**` line instead of "deferred") | +| GNS/Basic.lean:32 | "Mathlib does not yet provide a packaged `State` type for C*-algebras, so we introduce one here." | version-dated (implicit "yet") | rewrite (still true at v4.34.1: no `State` structure in `Mathlib/Analysis`) | "Mathlib has no packaged `State` type for C*-algebras, so one is introduced here." | +| GNS/Construction.lean:37 | "The Hilbert space `H` is existentially quantified in `Type` (rather than `Type*`) … the precise universe placement is left to the eventual proof." | process (stale: `gns_construction.{u}` quantifies `H : Type u` and is proved) | rewrite | "The Hilbert space `H` is existentially quantified in `A`'s universe `u`: the GNS space is constructed as a completion of a quotient of `A`, so it lives there." | +| GNS/PureStateExists.lean:29 | "the latter does not resolve in the current Mathlib due to a real/complex module diamond on the dual space. … Both are recorded as follow-ups;" | version-dated + process (partly false at v4.34.1: `#synth IsScalarTower ℝ ℂ (A →L[ℂ] ℂ)` succeeds; `LocallyConvexSpace ℝ (WeakDual ℂ A)` still fails to synthesize; `simp` cannot prove `(t • φ + ψ) a = t • φ a + ψ a` on `WeakDual`) | rewrite | "Concluding the *existence of a pure state* by Krein-Milman needs `LocallyConvexSpace ℝ (WeakDual ℂ A)`, which Mathlib does not synthesize, and evaluation lemmas such as `(t • φ + ψ) a = t • φ a + ψ a` for `WeakDual`, which Mathlib does not provide. The compactness result below is the reusable part." | +| GNS/RadonNikodym.lean:12 | "# Towards the GNS Radon-Nikodym correspondence" | process (mild; the file proves only the boundedness crux) | rewrite | "# Boundedness of the GNS Radon-Nikodym form" | +| GNS/UnitaryRepresentation.lean:171 | "The group laws `U (g' * g) = U g' * U g` and `U 1 = 1` are now carried by `U` itself (`map_mul`/`map_one`), so they no longer appear as separate hypotheses" | change-notice (wording; really a comparison with the unbundled form) | rewrite | "The group laws `U (g' * g) = U g' * U g` and `U 1 = 1` are carried by `U` itself (`map_mul`/`map_one`), so, unlike in `exists_gns_unitary_of_invariant`, they are not separate hypotheses on `γ` or clauses on `U`." | +| Spacetime/Basic.lean:35 | "Mathlib (at `v4.31.0-rc1`) does not provide a packaged \"Lorentzian manifold\" or \"pseudo-Riemannian metric\" type. The closest thing — `PseudoRiemannianMetric` — lives in the downstream `PhysLean` library" | version-dated (claim still true at v4.34.1: no "Lorentzian"/"pseudo-Riemannian" anywhere in Mathlib; but the PhysLean sentence is superseded by this project's own `Geometry.PseudoRiemannianMetric`) | rewrite | "Mathlib provides Riemannian metrics (`Bundle.ContMDiffRiemannianMetric`) but no Lorentzian or pseudo-Riemannian metric type, so the definition is unbundled into Mathlib primitives:" … (append) "`Physicslib4.Geometry.PseudoRiemannianMetric` is derived from it by `Spacetime.toPseudoRiemannianMetric`." | +| Spacetime/Basic.lean:170 | "The previous chart-local `ContDiffWithinAt` formulation had no route to it, since Mathlib provides no lemma bridging the two forms in either direction." | rationale (history-framed) | rewrite (D4) | "A chart-local `ContDiffWithinAt` formulation would have no route to it, since Mathlib provides no lemma bridging the two forms in either direction." | +| Spacetime/CausalStructure.lean:29 | "Mathlib does not currently package \"smooth vector field\" as a single named type." | version-dated (implicit "currently") | rewrite (still true at v4.34.1: `Mathlib/Geometry/Manifold/VectorField/` works with bare `Π x, TangentSpace I x`) | "Mathlib has no single named type for smooth vector fields." | +| Spacetime/CausalStructure.lean:172 | "The previous chart-local double-`mfderiv` formulation required a hand-built bridge in both directions, since Mathlib relates `tangentCoordChange` to neither." | rationale (history-framed) | rewrite (D4) | "A chart-local double-`mfderiv` formulation would need a hand-built bridge in both directions, since Mathlib relates `tangentCoordChange` to neither." | +| Spacetime/IsometryCausality.lean:19 | "This file begins the basis-set-preservation chain for Axiom 5 …: an isometry should carry trips to trips, … The first step is the **pushforward of a smooth path**" | process (stale: the file completes the chain, `alexandrovBasis_image`, `orientedIdentityComponent`, `isBasisSet_smul`) | rewrite | "This file proves basis-set preservation for Axiom 5 (`def:isometric-covariance-in-curved-spacetime`): a future-orientation-preserving isometry carries trips to trips, hence chronological futures and pasts, hence Alexandrov diamonds, to their images (`alexandrovBasis_image`, `isBasisSet_smul`)." (and extend "Main definitions") | +| Spacetime/IsometryCausality.lean:124 | "The remaining step toward Axiom 5 is to show that identity-component isometries satisfy this property (a connectedness argument), which is recorded as future work." | process | rewrite | "Whether every identity-component isometry has this property is not decided here; `orientedIdentityComponent` includes it as a condition." (candidate for a `**Restriction:**` line on `orientedIdentityComponent`; not a wording change) | +| Spacetime/IsometryCausality.lean:192 | "sidestepping the (unprovable with the current C⁰ topology) statement that every identity-component isometry preserves orientation." | version-dated wording ("current") | rewrite | "sidestepping the statement that every identity-component isometry preserves orientation, which the C⁰ topology used here does not give." | +| Spacetime/IsometryCausality.lean:454 | "the geometric input behind Axiom 5's action `𝔘(𝐁) → 𝔘(φ(𝐁))`, now unconditional." | change-notice | rewrite | "the geometric input behind Axiom 5's action `𝔘(𝐁) → 𝔘(φ(𝐁))`, with no further hypothesis." | +| Spacetime/LorentzCone.lean:33 | "proving it from the future-pointing condition alone requires the positive-definiteness of the spacelike complement …, which is not available from the pointwise `LorentzianAt` data; we therefore take the sign as an explicit hypothesis." | rationale (stale: `bilin_neg_of_inner_t_neg` in `LorentzOrthogonal.lean`, which imports this file, proves the sign from `LorentzianAt`) | rewrite (D4) | "For two timelike vectors future-pointing with respect to a common timelike `t` this sign holds (`bilin_neg_of_inner_t_neg`, `LorentzOrthogonal.lean`); the lemmas here take the sign as an explicit hypothesis so that they need no time orientation." | +| Spacetime/Minkowski.lean:881 | "### Forward direction: scaffolding for `chronologicalFuture ⊆ minkowskiForwardCone`" | process | rewrite | "### Forward direction: `chronologicalFuture ⊆ minkowskiForwardCone`" | +| Spacetime/Pullback.lean:163 | "The label name is historical: the statement is entirely in the bundle-section idiom and nothing chart-local remains." | history | rewrite | "Despite the label, the statement is in the bundle-section idiom and involves no charts." | + +Positional references not given their own row (keep, D1): `GNS/Irreducibility.lean:293` "by the previous lemma"; `Spacetime/Basic.lean:133` "available to the later `contMDiff` field"; `AQFT/HaagKastler/QuasilocalColimit.lean:18` "later completed". Present-tense "not in Mathlib" claims that carry no date or "yet/currently" (e.g. `Analysis/CStarCompletion.lean:24`, `AQFT/KMS.lean:101`, `Analysis/CStarCompletion.lean:216`, `AQFT/HaagKastler/QuasilocalColimit.lean:316`) were spot-checked against v4.34.1, are still true, and need no change. No `**Restriction:**` lines and no "blog" wording exist in the Lean sources. + +Not wording, but found while reading (for the Stage 5 writer or the user): `AQFT/HaagKastler/Net.lean:56` lists `def:quasilocal-completeness` among the bundled axioms although no Axiom 4 field exists; `Spacetime/IsometryCausality.lean:192` (`orientedIdentityComponent`) is a deliberate restriction that has no `**Restriction:**` line. + +## To CHANGELOG + +- Minkowski Axiom 3 was formerly stated as commutation in some quasilocal algebra; it is now stated in a common containing diamond, with `localCommutativity_iff_exists_commute_ι` proving the two forms equivalent (from `LocalCommutativity.lean:43,109`). +- `HaagKastlerNet` formerly bundled Axiom 4 as quasilocal completeness, `QuasilocalCompleteness := Nonempty (QuasilocalAlgebra U i)`, defined in `QuasilocalObservable.lean`. That predicate was removed once `exists_quasilocalAlgebra` (`thrm:quasilocal-algebra-exists`) proved the existence of the quasilocal algebra from the net alone. Axiom 4 is now the bridge principle in `ObservableBridge.lean` (from `Net.lean:31,127`, `QuasilocalObservable.lean:30`, `ObservableBridge.lean:35`). +- `QuasilocalAlgebra` formerly carried its own `inclusion` family, duplicating Axiom 2's; it is now parametrised by the Axiom 2 `Isotony` datum, and `trivialQuasilocalAlgebra` was re-indexed accordingly (from `QuasilocalAlgebra.lean:150`, `Net.lean:317,332`). +- `QuasilocalAlgebra.carrier` and `HaagKastlerNet` were made universe-polymorphic (from `Net.lean:70`). +- Curved spacetime: `commIsotony` was formerly chosen by `Classical.choose` from the Axiom 3 witness, with no composition law, so `localVonNeumann_mono` and other three-fold-inclusion sites carried a coherence hypothesis `hcoh`. It is now the Axiom 2 family, so `commIsotony_comp` holds for every net (from `HaagKastlerCurved/Net.lean:159,182`, `HaagKastlerCurved/LocalVonNeumann.lean:80`). +- The `isBasisSet_smul` field was added to the abstract curved `LorentzianSpacetime` interface, so basis-set preservation is no longer an explicit hypothesis in the curved geometric-covariance results (from `HaagKastlerCurved/GeometricCovariance.lean:22`). +- The `Spacetime` metric smoothness and `TimeOrientation.smooth` fields moved from a chart-local (`ContDiffWithinAt`, double-`mfderiv`) form to Mathlib's bundle-section idiom; the blueprint label `lmm:pullback-metric-smooth-in-charts` keeps its old name (from `Spacetime/Basic.lean:170`, `CausalStructure.lean:172`, `Pullback.lean:163`). +- The strip-Liouville principle in `KMS.lean` was first an explicit hypothesis and is now proved for `β > 0` (`stripLiouville_of_pos`), which makes KMS invariance unconditional (from `KMS.lean:38,81,222`). +- The half-plane topology helpers moved from `StripPeriodicExtension.lean` to `HorizontalLineRemovable.lean` (from `StripPeriodicExtension.lean:55`). +- The version-dated Mathlib remarks were written against `v4.31.0-rc1`; the project now pins v4.34.1 (from `LocalAlgebras.lean:92`, `QuasilocalAlgebra.lean:32`, `Spacetime/Basic.lean:35`). + +## Totals + +- Files in scope: 111 `.lean` files under `Physicslib4/` (excluding `scratch_*`) plus `Physicslib4.lean`, which has no comments. All 265 `/-!` blocks were read, as were all seed-grep hits in comments (≈ 9,976 comment lines scanned). +- Rows: 48. Of these, 46 are actions (45 rewrite, 1 delete) in 28 files, and 2 are positional-keep rows. A further 3 positional references are listed above without rows. +- By category (primary): history 15, process 14, version-dated 8, change-notice 6, rationale 3, retraction 0, blog 0, positional-keep 2 rows (≈ 8 instances). +- Flagged to-CHANGELOG: 9 rows, giving the 10 bullets above. +- Version-dated claims (D6): 3 explicit `v4.31.0-rc1` strings plus 5 implicit ("yet", "currently", "current"). At v4.34.1, 7 are still true and are restated undated. `GNS/PureStateExists.lean:29` is partly false: `IsScalarTower ℝ ℂ (A →L[ℂ] ℂ)` now synthesizes, but `LocallyConvexSpace ℝ (WeakDual ℂ A)` still does not, so it is rewritten to the current situation. +- Distribution: AQFT/HaagKastler 18 actions, AQFT/HaagKastlerCurved 6, AQFT/KMS 3, Analysis 2, GNS 6, Spacetime 11, Spectral/Geometry/Operators 0. diff --git a/notes/agents/inventory-1.0/E-home-page-readme.md b/notes/agents/inventory-1.0/E-home-page-readme.md new file mode 100644 index 0000000..edb0892 --- /dev/null +++ b/notes/agents/inventory-1.0/E-home-page-readme.md @@ -0,0 +1,96 @@ +# Inventory E: home page and README (read-only, 2026-10-08) + +Scope: `home_page/**/*.md`, `home_page/**/*.html`, `home_page/_config.yml`, `README.md`. Section pages: front matter and overview prose above "## Items", plus grep of the item lists. + +| file:line | exact quoted phrase | category | action | replacement | +|---|---|---|---|---| +| home_page/index.md:68 | "**Recently completed: Stone's Theorem.** The new [§10.4](sec10-4-stone.html) (Definition 289 through Theorem 329, pp. 236–249) proves Stone's Theorem" | change-notice | replace | replace by Highlights (D8) | +| home_page/index.md:68 | "and four new §10.3 nodes supply what it needs" | change-notice | replace | replace by Highlights (D8) | +| home_page/index.md:68 | "positive energy (the spectrum condition behind vacuum and ground states) is now stated with a genuine unbounded generator" | change-notice | replace | replace by Highlights (D8) | +| home_page/index.md:68 | "The former bounded-generator restriction is gone, and the project records no remaining restrictions." | history | replace | replace by Highlights (D8); if a status sentence is wanted elsewhere: "The project records no `**Restriction:**` lines." | +| home_page/index.md:70 | "**Recently completed: smoothness of the inverse musical isomorphism.** Lemma 358 (§10.5, p. 255), the last unformalised node, states" | change-notice | replace | replace by Highlights (D8) (not one of the four D8 highlights; drop) | +| home_page/index.md:72 | "**Recently completed: the von Neumann density theorem.** Theorem 506 ... is now proved." | change-notice | replace | replace by Highlights (D8) (not one of the four D8 highlights; drop) | +| home_page/index.md:72 | "following Murphy, Lemma 4.1.4, in the new §10.6.2 (Lemmas 496–505, Definition 499)" | change-notice | replace | replace by Highlights (D8) | +| home_page/index.md:72 | "Mathlib has the strong operator topology (`PointwiseConvergenceCLM`) and the double commutant property ... but not the density theorem itself" | version-dated | replace | replace by Highlights (D8); undated Mathlib-content claim, goes with the block | +| home_page/index.md:76 | "rests on a Myers–Steenrod-type rigidity result not yet in Mathlib" | version-dated | rewrite | "rests on a Myers–Steenrod-type rigidity result that the project does not formalise." | +| home_page/index.md:66 | "There is one place where the Lean is deliberately shaped differently from the prose; it is flagged in the blueprint text itself and collected here so that it is not discovered by surprise." | rationale | keep | present tense already; keep | +| home_page/index.md:86-93 | "## Contributing" (no version line present) | version-dated | add | D6 web line: "This project targets Lean and Mathlib v4.34.1, as pinned by `lean-toolchain` and `lakefile.toml`." (only version string on the web pages) | +| home_page/axioms.md:35 | "Three changes to the axioms are worth calling out for readers coming from an earlier version of this blueprint:" | change-notice | rewrite | → Design notes (D8). Heading "## Design notes" and lead: "Three design choices in the axioms are worth noting:" | +| home_page/axioms.md:37 | "**Isotony now supplies its embeddings as data.**" | change-notice | rewrite | → Design notes (D8). "**Isotony supplies its embeddings as data.**" | +| home_page/axioms.md:37 | "and Axiom 5 (Definitions 507 and 632) now states its coherence condition for the same family" | change-notice | rewrite | → Design notes (D8). "and Axiom 5 (Definitions 507 and 632) states its coherence condition for the same family" | +| home_page/axioms.md:37 | "and it removes the coherence side-hypotheses that curved-spacetime statements about nested regions previously had to carry." | history | rewrite | → Design notes (D8). "and it means that curved-spacetime statements about nested regions carry no coherence side-hypotheses." | +| home_page/axioms.md:38 | "Definition 485 now requires completely spacelike local algebras to commute in every local algebra" | change-notice | rewrite | → Design notes (D8). "Definition 485 requires completely spacelike local algebras to commute in every local algebra" | +| home_page/axioms.md:38 | "The former statement, commutation in the quasilocal algebra, is now Lemma 487 (`...localCommutativity_iff_exists_commute_ι`), proved equivalent." | history | rewrite | → Design notes (D8). "Commutation in the quasilocal algebra is an equivalent form, Lemma 487 (`Physicslib4.AQFT.HaagKastler.localCommutativity_iff_exists_commute_ι`)." | +| home_page/axioms.md:39 | "**Axiom 4 has been split.** The mathematical claim that a quasilocal algebra exists is now Theorem 490" | change-notice | rewrite | → Design notes (D8). "**Axiom 4 is a bridge principle; the quasilocal algebra is a theorem.** That a quasilocal algebra exists is Theorem 490" | +| home_page/axioms.md:39 | "what remains as Axiom 4 (Definition 489) is the bridge principle relating physical observables to quasilocal ones" | history | rewrite | → Design notes (D8). "Axiom 4 (Definition 489) is the bridge principle relating physical observables to quasilocal ones" | +| home_page/axioms.md:11 | "Axiom 6 (Primitivity) from the original 1964 Haag–Kastler paper is not carried into the sharpened axiom set" | rationale | keep | refers to the 1964 paper, not a project version; keep | +| home_page/axioms.md:33 | "**General Covariance ...** is deliberately *not* a sixth axiom." | rationale | keep | present-tense design rationale; keep (could move under Design notes) | +| home_page/guide.md:29 | "this axiom is ultimately abandoned in the sharpened formulation, following later presentations by Haag himself" | rationale | keep | literature history, not project history; optional: "this axiom is not part of the sharpened formulation, following later presentations by Haag himself" | +| home_page/guide.md:32-34 | "The lower numbers, 1 through 12, appear in these chapters:" followed by "The lower numbers, 1 through 12, label supporting theorems" | process | delete | — (delete) line 32 (duplicated lead-in, editing leftover; not temporal) | +| home_page/guide.md:38 | "running from Definition 13 through Definition 678" | process | rewrite | "from Definition 13 through Definition 677" (index.md:32 and guide.md:16 say 677; consistency fix, not temporal) | +| home_page/sec10-3-unbounded.md:19 | "Added for §10.4. The spectral measure of a self-adjoint operator is named (Definition 286)" | change-notice | rewrite | "These items supply what §10.4 needs. The spectral measure of a self-adjoint operator is named (Definition 286)" | +| home_page/sec10-3-unbounded.md:19 | "Earlier in the section, a self-adjoint operator is shown to have no proper symmetric extension (Lemma 189)" | positional-keep | keep | — | +| home_page/sec10-3-unbounded.md:17 | "Combined with the previous stage, this gives the Spectral Theorem for Bounded Normal Operators" | positional-keep | keep | — | +| home_page/sec10-5-spacetime.md:12 | "(Mathlib itself has only a Riemannian Levi-Civita connection and no geodesics)" | version-dated | rewrite | "(the pseudo-Riemannian Levi-Civita connection and geodesics are constructed in this project)" — or delete the parenthesis | +| home_page/sec10-5-spacetime.md:15 | "A new layer. Pseudo-Riemannian metrics (Definition 354) are smooth" | change-notice | delete | — (delete) "A new layer." | +| home_page/sec10-5-spacetime.md:19 | "Upward-directedness is what the quasilocal colimit of §10.6.1 later consumes." | positional-keep | keep | — | +| home_page/sec10-5-spacetime.md:22 | "with the two round-trip cancellation identities that Mathlib does not supply for a global `Diffeomorph` proved by hand (Lemmas 437–439)" | version-dated | rewrite | "with the two round-trip cancellation identities for a global `Diffeomorph` proved directly (Lemmas 437–439)" | +| home_page/sec10-6-haag-kastler.md:14 | "Axiom 2 (Isotony, Definition 468) now supplies the family of unital \*-monomorphisms" | change-notice | rewrite | "Axiom 2 (Isotony, Definition 468) supplies the family of unital \*-monomorphisms" | +| home_page/sec10-6-haag-kastler.md:14 | "equivalent to commutation in some quasilocal algebra, the form used by earlier versions of this blueprint (Lemma 487)" | history | rewrite | "equivalent to commutation in some quasilocal algebra (Lemma 487)" | +| home_page/sec10-6-haag-kastler.md:14 | "**Axiom 4 is now split in two.**" | change-notice | delete | — (delete); following sentence already states the bridge principle in present tense | +| home_page/sec10-6-haag-kastler.md:14 | "The mathematical content previously conflated with it is separated out as a theorem: every local net satisfying Axiom 2 admits a quasilocal algebra" | history | rewrite | "The mathematical content is a theorem: every local net satisfying Axiom 2 admits a quasilocal algebra" | +| home_page/sec10-6-haag-kastler.md:14 | "the blueprint records why the shortcut of realising $$\mathfrak{U}$$ as a closed \*-subalgebra of an ambient C\*-algebra is rejected" | rationale | keep | present tense already; keep | +| home_page/sec10-6-haag-kastler.md:15 | "A new subsection of general operator theory for a unital \*-homomorphism" | change-notice | rewrite | "A subsection of general operator theory for a unital \*-homomorphism" | +| home_page/sec10-6-haag-kastler.md:15 | "Mathlib lacks the density theorem, so it is proved here following Murphy, Lemma 4.1.4." | version-dated | rewrite | "The density theorem is proved here following Murphy, Lemma 4.1.4." | +| home_page/sec10-6-haag-kastler.md:15 | "turns this into the density theorem (Theorem 506), now fully proved." | change-notice | rewrite | "turns this into the density theorem (Theorem 506)." | +| home_page/sec10-6-haag-kastler.md:15 | "$$\pi_\omega(\mathfrak{U})$$ is strongly dense in $$\pi_\omega(\mathfrak{U})$$" | process | rewrite | "... strongly dense in $$\pi_\omega(\mathfrak{U})''$$" (typo: bicommutant primes missing; not temporal) | +| home_page/sec10-6-haag-kastler.md:16 | "whose coherence condition is now stated for the Axiom 2 isotony family itself" | change-notice | rewrite | "whose coherence condition is stated for the Axiom 2 isotony family itself" | +| home_page/sec10-6-haag-kastler.md:19 | "A new block organising the theory of inclusions" | change-notice | rewrite | "Organises the theory of inclusions" | +| home_page/sec10-6-haag-kastler.md:22 | "A new block. Cyclicity pulls back along a surjective \*-homomorphism (Lemma 556)" | change-notice | delete | — (delete) "A new block." | +| home_page/sec10-6-haag-kastler.md:25 | "is automatically covariance-compatible (Lemma 588, new)" | change-notice | rewrite | "is automatically covariance-compatible (Lemma 588)" | +| home_page/sec10-7-curved.md:12 | "Local Commutativity (Definition 629, which now **consumes** the Axiom 2 family rather than choosing its own witnesses)" | change-notice | rewrite | "Local Commutativity (Definition 629, which **consumes** the Axiom 2 family rather than choosing its own witnesses)" | +| home_page/sec10-7-curved.md:12 | "The change to Axioms 2 and 3 has a visible consequence downstream:" | change-notice | rewrite | "This form of Axioms 2 and 3 has a visible consequence downstream:" | +| home_page/sec10-7-curved.md:12 | "and that factorisation is now the composition law of Axiom 2, so **the coherence hypotheses that earlier versions carried at each such site are gone**—curved isotony" | history | rewrite | "and that factorisation is the composition law of Axiom 2, so **no coherence hypothesis is needed at any such site**—curved isotony" | +| home_page/sec10-7-curved.md:12 | "the coherence of the stabiliser action with the isotony embeddings is no longer a hypothesis there, being condition (3) of Axiom 5" | change-notice | rewrite | "the coherence of the stabiliser action with the isotony embeddings is not a hypothesis there: it is condition (3) of Axiom 5" | +| home_page/sec10-8-general-covariance.md:12 | "Two definitions, and the newest structural addition to the blueprint." | change-notice | rewrite | "Two definitions." | +| home_page/_config.yml:3 | "This config file is meant for settings that affect your whole blog" | blog | rewrite | "This config file holds settings that affect the whole site" (Jekyll boilerplate comment; not rendered, but D5 forbids "blog" wording) | +| home_page/_config.yml:24 | "baseurl: \"\" # the subpath of your site, e.g. /blog" | blog | rewrite | "baseurl: \"\" # the subpath of the site, e.g. /docs" (comment only) | +| home_page/_config.yml:31 | "remote_theme: pages-themes/cayman@v0.2.0" | version-dated | keep | configuration, not documentation (D6 exempts configuration); keep | +| home_page/_config.yml:23 | "description: by KellyJDavis" | process | keep | rendered tagline; not temporal. Optional consistency with index.md front matter: "by Kelly J Davis" | +| home_page/_includes/mathjax.html:14 | "MathJax 3 from the jsDelivr CDN (the old cdn.mathjax.org has been retired)." | history | rewrite | "MathJax 3 from the jsDelivr CDN." (HTML comment; not rendered) | +| home_page/404.html | (no hits) | — | none | — | +| home_page/_layouts/default.html | (no hits) | — | none | — | +| README.md:48-50 | "Requires [Lean 4](...) and [Mathlib4](...)." (no version stated) | version-dated | add | D6 code line: "Requires Lean 4 and Mathlib, both at v4.34.1, as pinned by `lean-toolchain` and `lakefile.toml`." (only version string in README) | +| README.md:13 | "## Current Focus: AQFT in Minkowski and Lorentzian Spacetime" | process | keep | present tense; optional: "## AQFT in Minkowski and Lorentzian Spacetime" | +| README.md:15 | "The current work formalises **Algebraic Quantum Field Theory (AQFT)**" | process | rewrite | "physicslib4 formalises **Algebraic Quantum Field Theory (AQFT)**" | +| README.md:61 | "The blueprint is the canonical guide to what has been stated, what has been proved, and what remains open." | process | rewrite | "The blueprint is the canonical guide to what is stated and what is proved." (every Chapter 10 node is formalised; nothing remains open) | +| README.md:63 | "to find items not yet linked to Lean proofs." | process | rewrite | "to see how each item is linked to its Lean declarations." | +| README.md:73 | "Maintained by [Kelly J Davis](https://github.com/kellyjdavis). Started June 2026." | history | rewrite | "Maintained by [Kelly J Davis](https://github.com/kellyjdavis)." (start date to CHANGELOG) | +| README.md:29 | "The repository is therefore designed to grow. Future work may include, for example:" | rationale | keep | forward-looking scope, not backward-looking; keep | + +Notes: +- Section-page item lists (below "## Items") have no hits for "(new)", "new", "previously", "now", "formerly", "no longer", "earlier", "version", "not yet" or version strings. All hits are in the overview prose. +- §10.1, §10.2 and §10.4 overview prose: no temporal wording. +- No version string (Lean, Mathlib, `v4.`) appears anywhere in `home_page/*.md` or `README.md` today. D6 therefore needs two additions (index.md "Contributing", README "Getting Started"), not removals. The only version strings in scope are `cayman@v0.2.0` (config, keep) and `mathjax@3` (CDN URL, keep). +- Rows tagged `process` with "not temporal" are editorial defects found along the way (a duplicated line in guide.md, Definition 678 vs 677, missing `''` in sec10-6), not backward-looking wording. + +## To CHANGELOG + +- Stone's Theorem (§10.4, Definition 289 to Theorem 329) and the four §10.3 nodes it uses (Lemma 189, Definitions 286–287, Lemma 288) are added. Positive energy (Theorem 603) moves from a bounded generator to an unbounded self-adjoint generator, and the bounded-generator `**Restriction:**` is removed, leaving none (index.md:68). +- Lemma 358 (smoothness of the inverse musical isomorphism), the last unformalised node, is formalised (index.md:70). +- The von Neumann density theorem (Theorem 506) is proved, with §10.6.2 (Lemmas 496–505, Definition 499) added. Mathlib did not have it at the time (index.md:72; sec10-6:15). +- The Levi-Civita connection and geodesics layer (§10.5, items 354–369) is added (sec10-5:15). +- Isotony (Axiom 2) supplies its embeddings as data. Axiom 3 consumes that family, and Axiom 5's coherence condition is restated for it. The curved-spacetime coherence side-hypotheses are removed (axioms.md:37; sec10-6:14,16; sec10-7:12). +- Minkowski Axiom 3 is restated in a common containing diamond. The earlier quasilocal-algebra form becomes Lemma 487 (axioms.md:38; sec10-6:14). +- Axiom 4 is split: quasilocal existence becomes Theorem 490, and Axiom 4 (Definition 489) stays as the bridge principle (axioms.md:39; sec10-6:14). +- New blocks: §10.6.6 relative commutants, §10.6.9 GNS covariance, Lemma 588. §10.8 general covariance is the latest structural addition (sec10-6:19,22,25; sec10-8:12). +- The MathJax CDN moves from cdn.mathjax.org to jsDelivr (mathjax.html:14). +- The project started in June 2026 (README.md:73). + +## Totals + +- Rows: 63 (index.md 11, axioms.md 10, guide.md 3, sec10-3 3, sec10-5 4, sec10-6 13, sec10-7 4, sec10-8 1, _config.yml 4, mathjax.html 1, 404/default.html 2 no-hit, README.md 7). +- By category: change-notice 25, history 9, process 8, version-dated 8, rationale 6, blog 2, positional-keep 3, no-hit 2. +- By action: rewrite 35, replace 8 (all "replace by Highlights (D8)", index.md:68–72), delete 4, add 2 (D6 version lines), keep 12, none 2. +- "→ Design notes (D8)": 8 rows (axioms.md:35–39). +- Retractions: 0. Blog references in rendered text: 0 (2 in `_config.yml` comments). diff --git a/notes/agents/inventory-1.0/README.md b/notes/agents/inventory-1.0/README.md new file mode 100644 index 0000000..908b873 --- /dev/null +++ b/notes/agents/inventory-1.0/README.md @@ -0,0 +1,67 @@ +# Inventory of backward-looking wording (Stage 1 of the 1.0 present-tense plan) + +Date: 2026-10-09. Plan: `../plan-release-1.0-present-tense-2026-10-08.md`. Read-only; no +project file was changed. + +| File | Area | Rows | Notes | +|---|---|---|---| +| `A-blueprint-ch10-hk.md` | Ch. 10: HK axioms (Minkowski, curved), general covariance, GNS, introduction | 79 | 21 history, 18 process, 15 change-notice, 10 retraction, 9 version-dated, 3 rationale, 3 blog; 64 rows in `haag-kastler-axioms.tex`, mostly inside statements/proofs | +| `B-blueprint-ch10-spectral-spacetime.md` | Ch. 10: spectral (bounded, unbounded), Stone, spacetime | 27 | 21 in `spacetime.tex` (pullback / cross-metric part); **coverage gap:** `spectral-theorems.tex` and the second half of `unbounded-spectral-theorems.tex` were only grep-checked | +| `C-blueprint-ch0-9.md` | Ch. 0–9 (user's text) | 2 | 1 blog-origin clause (`sec9/prologue.tex:12`), 1 version-dated (`sec9/axiom-5-isometric-covariance.tex:18`); 30 positional references kept | +| `D-lean.md` | Lean docstrings and comments | 46 | 15 history, 14 process, 8 version-dated, 6 change-notice, 3 rationale; 28 files | +| `E-home-page-readme.md` | Home page and README | 60 | 25 change-notice, 9 history, 8 process, 8 version-dated, 6 rationale, 2 blog (config comments only) | + +About 214 action items in total. Each file ends with a "To CHANGELOG" list and totals. + +## Findings beyond wording (need a decision or a fix in a later stage) + +1. **Stale or false statements in docs** (fix in Stages 3, 5 and 6, as present-tense corrections): + - `haag-kastler-axioms.tex:1620` says `lmm:von-neumann-inter-general` "is not yet formalized", + but the node is `\leanok`. + - `HaagKastler/Net.lean:56` says the net bundles `def:quasilocal-completeness`, but no such field + exists. + - `HaagKastler/Net.lean:41` promises Axiom 6 fields later, but the blueprint abandons Axiom 6. + - `GNS/Construction.lean` says `H : Type`, but the code uses `Type u`. + - `LorentzCone.lean:33` says the cone sign "is not available", but `bilin_neg_of_inner_t_neg` + proves it. + - `HaagKastlerCurved/GeometricCovariance.lean:22` says the interface lacks `isBasisSet_smul`, but + it is a field. + - `GNS/PureStateExists.lean:29`: one of the two "missing instance" claims is now false at + v4.34.1 (`IsScalarTower ℝ ℂ (A →L[ℂ] ℂ)` resolves). + - README lines 61 and 63 ("what remains open", "items not yet linked to Lean proofs"). + - `home_page/guide.md:38` says the items run to "Definition 678". The last item is + Definition 677, an orchestrator error from the Axiom 3 refresh. + - `guide.md:32–34` repeats a sentence. + - `sec10-6-haag-kastler.md:15` is missing the bicommutant `''`. +2. **Docs describing finished work as unfinished:** `QuasilocalIntertwiner` ("the remaining step + will use"), `KMS.lean` ("left for later development"), the curved `Spacetime.lean` ("the eventual + … construction will instantiate this interface"). Rewrite in the present tense. +3. **Formalizer instructions inside blueprint proofs** (`spacetime.tex:2001, 2015, 2067`: "Do not + re-derive this", "Take the skeleton from the repository"). These are process text; the inventory + proposes rewriting them as references. +4. **Version strings:** + - None of the Lean/Mathlib version strings that D6 targets appear in `home_page/` or + `README.md`. D6 needs two *additions* there (index.md "Contributing", README) plus one sentence + in `sec10/introduction.tex`. + - Mathlib source line numbers in the blueprint (`Completion.lean:75`, `ContMDiffMFDeriv.lean:241`, + …) are version-dated. The proposal drops the line numbers and keeps the file paths. +5. **Decisions for the user:** + - **Chapters 0–9 items:** + - `sec9/prologue.tex:12`: delete "as we have seen previously," (the theorem is not earlier in + the blueprint). + - `sec9/axiom-5-isometric-covariance.tex:18`: "not yet available in Mathlib" → "that Mathlib + does not provide". + - `sec5/quasilocal-algebra.tex:37`: a stray one-word line, "Clarification.", which the + inventory suggests deleting. + - `sec9/axiom-4-local-algebra.tex:18`: "As shown in earlier in this blueprint" (stray "in"). + - **A possible missing `**Restriction:**` line** for `orientedIdentityComponent` + (`Spacetime/IsometryCausality.lean:192`). That is a convention question, not wording. + - **Highlights:** two "Recently completed" topics, the von Neumann density theorem and the inverse + musical isomorphism, are not among the four D8 highlights, so they disappear from the landing + page (their section pages keep them). + +## Next + +Stage 2 (CHANGELOG) can start from the "To CHANGELOG" lists. Before Stage 3, re-read +`spectral-theorems.tex` and the second half of `unbounded-spectral-theorems.tex` in full to close +the coverage gap in inventory B. diff --git a/notes/agents/plan-release-1.0-present-tense-2026-10-08.md b/notes/agents/plan-release-1.0-present-tense-2026-10-08.md new file mode 100644 index 0000000..3a1a96f --- /dev/null +++ b/notes/agents/plan-release-1.0-present-tense-2026-10-08.md @@ -0,0 +1,350 @@ +# Plan: remove backward-looking wording for the 1.0 release + +Date: 2026-10-08. Proposed branch: `numina/release-1.0-docs` off `numina/aqft-in-lean`. +Status: **done 2026-10-09 (Stage 8 proposal awaiting approval; no tag, not pushed).** + +## Decisions (user, 2026-10-08) + +- **D1 approved:** keep positional references ("as we previously proved", "recall", "we are now + in a position"). +- **D2 approved:** add `CHANGELOG.md`, with a "Pre-1.0 development notes" section for the + history removed from the docs. +- **D3 not approved, replaced.** A warning, note or remark whose referent is an earlier version + of the project is removed entirely, not restated. This covers "an earlier version of this + blueprint claimed …", and any caution that exists only because something was once wrong. The + reader cannot reach that referent without git history or the CHANGELOG. Mathematical content + that stands on its own and is needed by the surrounding text stays, stated plainly with no + reference to the past. The retraction may be recorded in the CHANGELOG (D2). +- **D4 approved:** design rationale for rejected alternatives stays, rewritten as present-tense + "Design note" text. +- **D5 replaced.** No wording may call the documentation a "blog post", in any tense. The + documentation is referred to as what it is: "this blueprint", "this chapter", "Section~\ref{…}", + or "the project web page" / "the home page" for the website. Sentences that point to a + blog post ("As proven in this blog post", "In a subsequent blog post we will detail …") are + rewritten to point at the corresponding part of the blueprint, or removed. +- **D6 replaced.** All version-dated tool claims are removed ("Mathlib (at `v4.31.0-rc1`) …" and + the like); any claim that is still true is restated undated. Each form of documentation states + the targeted versions in exactly one place: + - **code:** `README.md` (Lean toolchain and Mathlib v4.34.1, as pinned by `lean-toolchain` and + `lakefile.toml`); + - **blueprint:** one sentence in the Chapter 10 introduction (`sec10/introduction.tex`); + - **web:** one line on the home page (`index.md`, in "Contributing"). + + Stage 7 checks by grep that no other version string remains in docstrings, blueprint prose or + home-page text. The Mathlib version strings in `lake-manifest.json`, `lakefile.toml`, + `lean-toolchain` and CI configuration are configuration, not documentation, and are untouched. +- **D7 approved:** `notes/agents/` is out of scope. +- **D8 replaced.** + - The "Recently completed" blocks on `index.md` are replaced by a present-tense "Highlights" + section with new content, not the current text. It has exactly four highlights: + 1. the Haag–Kastler axioms for Minkowski spacetime; + 2. the Haag–Kastler axioms for Lorentzian (curved) spacetime; + 3. the spectral theorem for bounded self-adjoint operators; + 4. the spectral theorem for unbounded self-adjoint operators. + + Each highlight is a short present-tense description with its blueprint nodes and principal Lean + declarations. + - The axioms-page change list becomes "Design notes". + - "(new)" and "a new layer" (and similar) are dropped from the section pages. +- **No v1.0 tag.** Other changes must land before 1.0. Stage 9 is merge only: no tag, and no + push unless asked. + +## Goal + +Present the documentation and code comments as a first-time reader meets them at 1.0. They +should describe what the project *is*, in the present tense, with no narration of how it got +there. This covers the blueprint (all chapters), Lean docstrings and comments, and the home page. + +The change is prose only. No Lean statement, definition, proof, blueprint label, `\lean{}`, +`\uses{}` or `\leanok` changes. + +## What counts as "backward-looking" + +The distinction that matters is temporal versus positional. + +- **Remove or rewrite (temporal).** Text that refers to an earlier *version* of the project, or to + a change between versions: + - change notices: "Recently completed: …", "The new §10.4 …", "(new)", "a new subsection", + "is now a theorem", "now carries / supplies / consumes …", "no longer …"; + - history: "previously carried …", "formerly …", "was withdrawn", "an earlier version of this + blueprint claimed …", "the former Axiom 4", "Two changes … for readers coming from an earlier + version"; + - process narration: "the decision has been taken", "an option still under consideration", + "This node previously carried …". +- **Keep (positional).** References to an earlier *place* in the same text, which are ordinary + mathematical prose: "as we previously proved", "recall that …", "we are now in a position to …". + The grep finds many of these (`spectral-theorems.tex` alone has eight "previously proved"). They + are deliberately left alone. See D1 for an optional tightening. +- **Rewrite in the present tense (rationale).** Design rationale stays, because it is useful to + every reader, but it is stated as a fact about the design, not as a decision story. + - Example: "\emph{The rejected alternative, and why it is rejected.} The alternative was …" + becomes "\emph{Design note: why the quasilocal algebra is constructed rather than assumed.} + One could instead …". + +## Size (measured 2026-10-08) + +A grep for typical temporal phrases ("recently", "previously", "earlier version", "no longer", +"formerly", "withdrawn", "is now", "the new", "an earlier", "the former" and similar) finds about +110 matches in 30 files. Some are positional and stay. + +- **Blueprint:** about 59 matches in 13 files. They concentrate in + `sec10/haag-kastler-axioms.tex` (17), `sec10/spectral-theorems.tex` (9, mostly positional), + `sec10/spacetime.tex` (7), `sec10/unbounded-spectral-theorems.tex` (6) and the curved chapter + (4). Chapters 0 and 9 have a few each, mostly positional. +- **Lean:** about 25 matches in 12 files, mostly `AQFT/HaagKastler/{QuasilocalAlgebra,Net}.lean` + and `AQFT/HaagKastlerCurved/Net.lean`. Examples: "This structure formerly carried its own + `inclusion` family …", "the former Axiom 4". +- **Home page:** about 26 matches in 5 files. Examples: + - `index.md`: "Recently completed: …" (three blocks) and the status prose; + - `axioms.md`: "Three changes to the axioms are worth calling out for readers coming from an + earlier version"; + - `sec10-*.md`: "(new)", "a new layer", "a new subsection". +- **Related time-relative wording:** + - Version-dated tool claims, e.g. `Spacetime/Basic.lean`: "Mathlib (at `v4.31.0-rc1`) does not + provide …", although the project now pins v4.34.1. + - The blog-post origin of the text: Chapter 10 says "As proven in this blog post …" and "In a + subsequent blog post we will detail these axioms". + - "Formalization note" paragraphs, some of which narrate history ("This node previously + carried …"). Others are useful present-tense notes and stay. + +The grep is only a seed. Wording such as "That was withdrawn", "the decision has been taken" or +"is no longer an option" varies too much to match, so Stage 1 is a full read of the affected files. + +## Decisions needed + +**D1. Positional references.** +- (a) **Recommended:** keep "as we previously proved", "recall", "we are now in a position" and + similar. They are standard mathematical writing, not history. +- (b) Also tighten them to explicit cross-references ("by Lemma~\ref{…}") wherever the target is + a labelled node. This means more edits but crisper text. + +**D2. Preserve the history somewhere.** +- (a) **Recommended:** add a top-level `CHANGELOG.md`. Its "Pre-1.0 development notes" section + collects the substantive history removed from the docs, for example: + - Axiom 4 split into the existence theorem and the bridge principle; + - isotony supplying its embeddings as data; + - Axiom 3 restated in a common containing diamond; + - positive energy lifted to unbounded generators; + - Stone's theorem added. + + Returning readers can still find it, and the docs stay clean. A "1.0" entry starts the + changelog proper. +- (b) No changelog; rely on git history. + +**D3. Retracted claims.** Example: "An earlier version of this blueprint claimed that any two +C*-norms on a *-algebra coincide, which is that false statement." +- **Recommended:** keep the mathematical warning in the present tense ("A *-algebra can carry + more than one C*-norm; the full and reduced norms on ℂ[F₂] are an example …"), drop the history, + and record the retraction in the CHANGELOG (D2). + +**D4. Design rationale for rejected alternatives.** +- (a) **Recommended:** keep it as a present-tense "Design note". +- (b) Remove it, leaving only the chosen construction. + +**D5. Blog-post wording.** Two time-relative sentences come from the blog origin: +"As proven in this blog post, these sharpened axioms entail the original axioms …" and "In a +subsequent blog post we will detail these axioms." +- **Recommended:** replace the forward reference with a cross-reference to Chapter 9 or §10.7, + where the curved axioms now live. Keep the link to the blog post only as a citation ("as shown in + [blog post]"), without "this" or "subsequent". +- Stage 1 lists every blog-related sentence for you to approve. + +**D6. Version-dated tool facts.** Example: "Mathlib (at `v4.31.0-rc1`) does not provide …". +- **Recommended:** re-check each claim against the pinned Mathlib. + - Where it is still true: state it undated, but name the pinned version once in the README or + blueprint introduction ("the project builds against Mathlib v4.34.1"). + - Where it is no longer true (for example, the Mathlib v4.34.1 covariant-derivative API): rewrite + to describe the current situation. + +**D7. `notes/agents/`.** Plans, audits and scout memos are inherently historical. Some are +committed, some untracked. +- (a) **Recommended:** out of scope for the rewrite. They are internal working records. Either + keep them, or move them out of the release branch (an `internal` branch, or delete with git + history as the record). Your call on which. +- (b) Rewrite them too. Not recommended, because their whole purpose is history. + +**D8. Home-page structure.** The landing page has "Recently completed" blocks (density theorem, +Stone's theorem, inverse musical isomorphism) and the axioms page has a "changes worth calling out" +list. +- **Recommended:** + - replace the blocks with a present-tense "Highlights" section that describes three or four + notable results as facts, without "recently"; + - turn the axioms-page list into "Design notes" (isotony as data, Axiom 3 in a containing diamond, + Axiom 4 as a bridge principle plus existence theorem), stated as how the axioms are, not how + they changed; + - drop "(new)" and "a new layer" from the section pages; + - the substance moves to `CHANGELOG.md` (D2). + +## Stages + +Each stage is committed on the branch. No Lean code or blueprint statement changes, which is +checked in Stage 7. + +### Stage 1: inventory (read-only) + +- One agent per area (blueprint Chapter 10, blueprint Chapters 0–9, Lean, home page) reads every + file that has a seed match, plus a skim of the remaining files in the area, so that phrasing the + grep cannot catch is found too. +- The output is `notes/agents/inventory-backward-looking-2026-10-08.md`: a table of file:line, the + quoted phrase, a category (change notice / history / process / retraction / rationale / + version-dated / blog / positional-keep) and a proposed action (delete / present-tense rewrite / + keep / to CHANGELOG). +- You review the inventory by category, plus every item in Chapters 0–9, which are your text. + +### Stage 2: CHANGELOG (if D2(a)) + +- Write `CHANGELOG.md` from the inventory items marked "to CHANGELOG", grouped by topic: + axioms, operator theory, spacetime geometry, documentation. Link to the relevant blueprint + labels. +- Present tense for the 1.0 entry; past tense is natural inside the pre-1.0 notes. + +### Stage 3: blueprint, Chapter 10 (writer, then reviewer) + +- Per file, in decreasing order of density: `haag-kastler-axioms.tex`, `spacetime.tex`, + `unbounded-spectral-theorems.tex`, `haag-kastler-axioms-in-curved-spacetime.tex`, + `spectral-theorems.tex`, then the rest. +- Apply the inventory actions: present-tense rewrites, rationale as "Design note", retraction + warnings per D3, blog wording per D5. +- Labels, statements, `\lean`, `\uses` and `\leanok` must not change. +- The reviewer checks that: + 1. no temporal wording remains; + 2. no mathematical content was lost or changed; + 3. no statement or proof text changed apart from history sentences inside proofs; + 4. the "Formalization note" paragraphs that stay are present tense. + +### Stage 4: blueprint, Chapters 0–9 (your text) + +- Proposals only, with exact old → new wording for each item, collected in a memo. +- Applied after your approval, as was done for Chapter 5 in the Axiom 3 plan. +- Positional wording is kept, per D1. + +### Stage 5: Lean docstrings and comments + +- `lean-simplifier`, docstrings and comments only. Mathlib style: describe what the declaration + is and why it is shaped that way, never what it used to be. +- Re-check each version-dated Mathlib claim against `.lake/packages/mathlib` (D6). +- The diff must touch only `/-! … -/`, `/-- … -/` and `--` lines. A script checks this by + comparing the files with comments stripped. + +### Stage 6: home page and other repository docs + +- `index.md`, `axioms.md`, `guide.md` and the section pages, per D8. +- `README.md`: check it, and name the pinned Lean and Mathlib versions once, per D6. +- `home_page/_config.yml` descriptions. +- Rebuild locally with Jekyll and check links, as in earlier refreshes. + +### Stage 7: verification + +- `lake build`, `lake lint`, `checkdecls`, a PDF build (no errors, no overfull lines) and a web + build. +- A comment-stripped diff of `Physicslib4/` against the branch point must be empty: no code + changed. +- A blueprint check that the set of labels and every `\lean` / `\uses` / `\leanok` line is + unchanged since the branch point, by script. +- A final grep with the seed patterns plus an allowlist of the kept positional phrases, so every + remaining match is accounted for. + +### Stage 8: keep it that way + +- Add one rule to `.claude/CLAUDE.md` (your file; proposal only): "Write documentation and comments + in the present tense, describing what is. Record changes in `CHANGELOG.md`, not in the docs." +- Optional: a small CI step that runs the seed grep with the allowlist and fails on new temporal + wording. + +### Stage 9: merge and release + +- Merge into `numina/aqft-in-lean`. +- **Do not tag v1.0** (user decision: other changes come first). Push and the PR to `main` only + when asked. + +## Risks + +- **Losing information.** History that is also substance can be lost, e.g. "the former Axiom 4 + conflated a bridge principle with an existence claim". Mitigation: the inventory marks every + deletion, D2 keeps it in the CHANGELOG, and the Stage 3 reviewer checks for lost content. +- **Chapters 0–9 are your text.** They are proposal-only. +- **False positives.** Positional wording is kept per D1, and the Stage 7 allowlist makes every + kept phrase explicit. + +## Estimate + +- Stage 1: 4 parallel read-only agents. +- Stages 3–6: about 110 seeded items plus whatever the read-through finds. Most are one-sentence + rewrites; perhaps 15 are paragraph-level, such as the home-page blocks, the "rejected + alternative" note and the retracted-claim note. +- Stages 7–8 are mechanical. + +## Progress log + +(empty) +- 2026-10-09, Stage 1 done: five read-only inventories in `notes/agents/inventory-1.0/` + (A–E, about 214 action items; summary and open decisions in `inventory-1.0/README.md`). Coverage gap: + `spectral-theorems.tex` and the second half of `unbounded-spectral-theorems.tex` were only + grep-checked; re-read before Stage 3. Several stale or false doc statements were found (listed in + the README) and will be corrected in the present tense in Stages 3, 5 and 6. +- 2026-10-09, The four user-approved Chapter 5/9 edits applied (20670c2): prologue "as we have seen + previously" removed; "not yet available in Mathlib" → "that Mathlib does not provide"; stray + "Clarification." deleted; "As shown in earlier in this blueprint" → Section~\ref{sctn:all-observables-of-interest}. + Stage 4 therefore has no remaining Chapter 0–9 items. +- 2026-10-09, Stage 2 done: `CHANGELOG.md` (repository root) with "Unreleased" and "Pre-1.0 + development notes", grouped as axioms, quasilocal algebra, operator theory, spacetime geometry, + toolchain, and documentation/web page, built from the five inventories' "To CHANGELOG" lists + (file:line pointers dropped; current labels and Lean names kept). +- 2026-10-09, Stage 3 done: four parallel writers rewrote Chapter 10 (haag-kastler-axioms; curved + + general covariance + GNS + introduction; spacetime + Stone; bounded + unbounded spectral after a + full re-read that found 4 more items). The single blueprint version sentence was added to + `sec10/introduction.tex` (Lean and Mathlib v4.34.1). The stale "not yet formalized" claim was + removed, and a false Mathlib claim at spacetime.tex ≈1772 was corrected. Reviewer REVISE → four + fixes applied (design-note count, two Mathlib paths, "composition", an orphaned sentence). + Checks: no \label/\lean/\uses/\leanok/\begin/\end line changed (git diff check), validate shows + only the 14 pre-existing conv: errors, PDF builds with no errors and no overfull lines, web + builds. Stage 4 has nothing left (Chapters 0–9 were done in 20670c2). +- 2026-10-09, Stage 5 done: three lean-simplifier agents rewrote docstrings and comments in 30 files + (AQFT/HaagKastler + AQFT top level; HaagKastlerCurved, GNS, Analysis, Operators, Spectral; + Spacetime, Geometry). The third agent hit its turn limit during its final grep; the orchestrator + completed that check. Factual corrections: HaagKastlerNet bundles Axioms 2, 3 and 5 (no Axiom 4 + field; Axiom 6 not adopted), GNS `H : Type u`, `isBasisSet_smul` is an interface field, + `IsScalarTower ℝ ℂ (A →L[ℂ] ℂ)` resolves (only `LocallyConvexSpace` is missing), KMS strip- + Liouville is proved, LorentzCone sign lemma exists, stale "towards …" titles fixed. Leftover + "-- (extracted by Fuse golfer)" markers removed everywhere. Checks: a comment-stripped + comparison against HEAD shows code unchanged in all 30 files; no Lean/Mathlib version strings + remain in Physicslib4/; build and lint clean; residue = 3 positional uses (CStarCompletion "the + former" = first of two items; QuasilocalAlgebra quotes the blueprint's "as previously proven"). +- 2026-10-09, Stage 6 done: + - index.md: the three "Recently completed" blocks are replaced by a new "## Highlights" section, + placed before Formalisation status, with exactly the four D8 entries (Minkowski HK axioms; + Lorentzian HK axioms; bounded spectral theorem, Thm 162; unbounded spectral theorem, Thm 285), + each with sections, item numbers and principal Lean names. The Axiom 5 remark is undated. The + single web version line is in Contributing. + - axioms.md: the change list is now "## Design notes" (three present-tense notes). + - guide.md: duplicate lead-in removed; Definition 678 → 677. + - Section pages: all change notices removed ("(new)", "A new layer", "A new block", "now …", + "earlier versions …", "Axiom 4 is now split"); the sec10-6 bicommutant typo is fixed; the + "Mathlib lacks / itself has only / does not supply" remarks are dropped in favour of + project-centric wording. + - mathjax.html and the _config.yml comments are fixed. + - README: present-tense heading and wording, the single code version line (v4.34.1) in Getting + Started, "started June 2026" removed (it is in the CHANGELOG). The forward-looking "Scope" + section is kept. + - Jekyll builds 11 pages with no broken links; all 665 entries check. +- 2026-10-09, Stage 7 done (verification against branch point c0e1c24): + - lake build and lake lint clean. + - Comment-stripped comparison: code unchanged in all 30 changed Lean files. + - Blueprint: the same 662 labels, no `\lean`/`\uses`/`\leanok`/`\label`/`\proves`/`\begin`/`\end` + line changed in any file (proof blocks included). + - PDF has 0 errors, 0 overfull boxes and 0 undefined references; web builds; checkdecls passes; + Jekyll builds 11 pages with no broken links (Stage 6). + - Version strings: exactly three, one per form (sec10/introduction.tex, home_page/index.md, + README.md). + - Final wording search: 23 hits, all positional or logical (e.g. "as we previously proved", + "we are now in a position", "the former … the latter"). + - Fixed: `QuasilocalAlgebra.lean`'s quotation of `def:quasilocal-algebra` was stale ("As + previously proven …"); it now quotes the current statement. + - Noted, not changed: several module docstrings paraphrase their blueprint statement in Lean + notation rather than quoting verbatim. They contain no temporal wording. +- 2026-10-09, Stage 8 done (proposal only): `notes/agents/proposal-present-tense-guard-2026-10-09.md` + contains the CLAUDE.md wording (present tense; versions in three places), the script + `scripts/check_temporal_wording.py` (tested: passes on the branch, fails on planted violations) + and the CI step for lean_action_ci.yml. None of it is applied, pending the user's approval. +- 2026-10-09, Stage 9: merged into numina/aqft-in-lean. No tag, no push. +- 2026-10-09, Stage 8 applied: scripts/check_temporal_wording.py + CI step committed on numina/aqft-in-lean; CLAUDE.md rule added locally (.claude/ is untracked). diff --git a/notes/agents/proposal-present-tense-guard-2026-10-09.md b/notes/agents/proposal-present-tense-guard-2026-10-09.md new file mode 100644 index 0000000..4099b0a --- /dev/null +++ b/notes/agents/proposal-present-tense-guard-2026-10-09.md @@ -0,0 +1,90 @@ +# Proposal: keep the documentation in the present tense (Stage 8 of the 1.0 plan) + +Date: 2026-10-09. Status: **proposal only.** Nothing below is applied. `.claude/CLAUDE.md` is the +user's file, and adding the CI step changes the repository's checks; both need the user's go-ahead. + +## 1. CLAUDE.md rule + +Proposed addition to `.claude/CLAUDE.md`, under "## Intent", after the `**Restriction:**` bullet: + +```markdown +- Write documentation and comments (blueprint prose, Lean docstrings and comments, the home page, + the README) in the present tense, describing what the project is. Do not narrate history: + no "recently completed", "previously", "formerly", "now …", "no longer …", "(new)", or + references to earlier versions, and never call the documentation a blog post. Record changes + in `CHANGELOG.md` instead. References to earlier parts of the same text ("as we previously + proved") are fine. +- State the targeted Lean and Mathlib versions only in `README.md`, `blueprint/src/sections/sec10/introduction.tex` + and `home_page/index.md` ("Contributing"). Elsewhere, claims about what Mathlib provides carry no + version. +``` + +## 2. CI check + +### Script: `scripts/check_temporal_wording.py` (new file) + +It scans `blueprint/src/sections`, `Physicslib4`, `home_page` and `README.md`, skipping +`scratch_*` files. It fails on two things: +- temporal wording, matched against a conservative pattern list that is deliberately narrower than + the Stage 7 audit search, so that positional prose such as "as we previously proved" never + triggers it; +- a `v4.x.y` version string outside the three designated homes. + +Tested on 2026-10-09: it passes on `numina/release-1.0-docs`, and it fails, naming file and line, +on a planted "Recently completed" and a stray "Mathlib v4.31.0". + +```python +#!/usr/bin/env python3 +"""Fail if documentation narrates project history instead of describing the project. + +Scans blueprint prose, Lean comments/docstrings, the home page and the README for wording +that refers to earlier versions of the project. References to earlier places in the same +text ("as we previously proved") are allowed by the allowlist below. +""" +import re, sys, pathlib + +ROOTS = ["blueprint/src/sections", "Physicslib4", "home_page", "README.md"] +EXTS = {".tex", ".lean", ".md", ".html"} +SKIP = re.compile(r"(^|/)(scratch_|_site/)") +PATTERN = re.compile( + r"[Rr]ecently completed|[Ff]ormerly|earlier version|earlier draft|[Ww]as withdrawn" + r"|was once|has since been|is now a theorem|now (carries|supplies|consumes)" + r"|\(new\)|\bnew (layer|block|subsection|node)\b|[Nn]ewest|\bblog\b" + r"|left for later|for the time being|v4\.\d+\.\d+-rc\d|Mathlib \(at" + r"|\bthe former Axiom|has been (removed|replaced|split|renamed)" +) +# Version statements are allowed in exactly these places. +VERSION = re.compile(r"\bv4\.\d+\.\d+\b") +VERSION_HOMES = {"blueprint/src/sections/sec10/introduction.tex", "home_page/index.md", "README.md"} + +def files(): + for r in ROOTS: + p = pathlib.Path(r) + for f in ([p] if p.is_file() else p.rglob("*")): + if f.is_file() and f.suffix in EXTS and not SKIP.search(str(f)): + yield f + +bad = [] +for f in files(): + for n, line in enumerate(f.read_text(encoding="utf-8", errors="replace").splitlines(), 1): + if PATTERN.search(line): + bad.append(f"{f}:{n}: temporal wording: {line.strip()[:120]}") + if VERSION.search(line) and str(f) not in VERSION_HOMES: + bad.append(f"{f}:{n}: version string outside its single home: {line.strip()[:120]}") +print("\n".join(bad) if bad else "OK: no temporal wording or stray version strings.") +sys.exit(1 if bad else 0) +``` + +### CI step: append to `.github/workflows/lean_action_ci.yml`, job `build` + +```yaml + - name: Check documentation is in the present tense + run: python3 scripts/check_temporal_wording.py +``` + +### Notes + +- The pattern list errs on the side of missing things rather than false alarms. Wording it does + not match ("is no longer an option", "the decision has been taken") still depends on review and + the CLAUDE.md rule. +- `notes/agents/` and `CHANGELOG.md` are outside its scope by design: both are historical records. diff --git a/scripts/check_temporal_wording.py b/scripts/check_temporal_wording.py new file mode 100755 index 0000000..1a13771 --- /dev/null +++ b/scripts/check_temporal_wording.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +"""Fail if documentation narrates project history instead of describing the project. + +Scans blueprint prose, Lean comments/docstrings, the home page and the README for wording +that refers to earlier versions of the project. References to earlier places in the same +text ("as we previously proved") are allowed by the allowlist below. +""" +import re, sys, pathlib + +ROOTS = ["blueprint/src/sections", "Physicslib4", "home_page", "README.md"] +EXTS = {".tex", ".lean", ".md", ".html"} +SKIP = re.compile(r"(^|/)(scratch_|_site/)") +PATTERN = re.compile( + r"[Rr]ecently completed|[Ff]ormerly|earlier version|earlier draft|[Ww]as withdrawn" + r"|was once|has since been|is now a theorem|now (carries|supplies|consumes)" + r"|\(new\)|\bnew (layer|block|subsection|node)\b|[Nn]ewest|\bblog\b" + r"|left for later|for the time being|v4\.\d+\.\d+-rc\d|Mathlib \(at" + r"|\bthe former Axiom|has been (removed|replaced|split|renamed)" +) +# Version statements are allowed in exactly these places. +VERSION = re.compile(r"\bv4\.\d+\.\d+\b") +VERSION_HOMES = {"blueprint/src/sections/sec10/introduction.tex", "home_page/index.md", "README.md"} + +def files(): + for r in ROOTS: + p = pathlib.Path(r) + for f in ([p] if p.is_file() else p.rglob("*")): + if f.is_file() and f.suffix in EXTS and not SKIP.search(str(f)): + yield f + +bad = [] +for f in files(): + for n, line in enumerate(f.read_text(encoding="utf-8", errors="replace").splitlines(), 1): + if PATTERN.search(line): + bad.append(f"{f}:{n}: temporal wording: {line.strip()[:120]}") + if VERSION.search(line) and str(f) not in VERSION_HOMES: + bad.append(f"{f}:{n}: version string outside its single home: {line.strip()[:120]}") +print("\n".join(bad) if bad else "OK: no temporal wording or stray version strings.") +sys.exit(1 if bad else 0)