diff --git a/openwave/xperiments/m15_kuchar_relational_time/__init__.py b/openwave/xperiments/m15_kuchar_relational_time/__init__.py index 1e57288b..a138c8fd 100644 --- a/openwave/xperiments/m15_kuchar_relational_time/__init__.py +++ b/openwave/xperiments/m15_kuchar_relational_time/__init__.py @@ -7,9 +7,13 @@ KucharBCJPointwiseConfig, run_kuchar_bcj_pointwise_coverage_study, ) -run_m15_model_study = run_kuchar_bcj_pointwise_coverage_study +from .kuchar_continuum_bcj_causal_m153 import ( + KucharContinuumBCJConfig, + run_kuchar_continuum_bcj_causal_study, +) +run_m15_model_study = run_kuchar_continuum_bcj_causal_study __all__ = [ - "KucharRelationalTimeConfig", "KucharBCJPointwiseConfig", + "KucharRelationalTimeConfig", "KucharBCJPointwiseConfig", "KucharContinuumBCJConfig", "run_kuchar_relational_time_study", "run_kuchar_bcj_pointwise_coverage_study", - "run_m15_model_study", + "run_kuchar_continuum_bcj_causal_study", "run_m15_model_study", ] diff --git a/openwave/xperiments/m15_kuchar_relational_time/formal/continuum_bcj_causal.v1.json b/openwave/xperiments/m15_kuchar_relational_time/formal/continuum_bcj_causal.v1.json new file mode 100644 index 00000000..6f525d83 --- /dev/null +++ b/openwave/xperiments/m15_kuchar_relational_time/formal/continuum_bcj_causal.v1.json @@ -0,0 +1,15 @@ +{ + "schema": "openwave.m15.kuchar-continuum-bcj-causal-ledger.v1", + "model_id": "M15", + "milestone": "M15.3", + "formal_repository": "jagg-ix/entropic-physlib-private", + "formal_branch": "entropic-physlib-linear-full", + "formal_head": "1061988e0c356075562ced1bd88758ba4922375c", + "formal_sources": [ + {"path": "Physlib/QuantumMechanics/ComplexAction/CanonicalTetradGravity/GloballyHyperbolicGreenHadamard.lean", "sha": "bcdef861f5cd3843051a13061adb4e856b686dfe", "theorems": ["MaxwellLaxMilgramGraphData.curvedHOneFour_causalSourceQuotient_phaseSpace", "MaxwellLaxMilgramGraphData.curvedHOneFour_caticha_maxwell_causal_distributional_hadamard_propagation"]}, + {"path": "Physlib/QuantumMechanics/OpenSystems/LiouvilleSecondQuantization.lean", "sha": "9d2c905c940480f1ed570cf0be965d5a9b6c4831", "theorems": ["continuumKernelNormSq_nonneg", "leftPointwise_rightPointwise_commute", "spacePointwiseKernelOperator_hasDenseDomain"]}, + {"path": "Physlib/QFT/ScalarGreenFunctions.lean", "sha": "b985c5442a61615f81ebbaaaea45d165338f344a", "theorems": ["continuum propagator and pointwise kernel aggregate"]} + ], + "openwave_dependencies": ["M15.2", "M14.1", "M14.2"], + "claim_boundaries": {"summability": "explicit model input and tail bound", "hadamard": "analytic premises remain visible", "global_time": "not inferred"} +} diff --git a/openwave/xperiments/m15_kuchar_relational_time/kuchar_continuum_bcj_causal_m153.py b/openwave/xperiments/m15_kuchar_relational_time/kuchar_continuum_bcj_causal_m153.py new file mode 100644 index 00000000..cff396d3 --- /dev/null +++ b/openwave/xperiments/m15_kuchar_relational_time/kuchar_continuum_bcj_causal_m153.py @@ -0,0 +1,62 @@ +"""M15.3 infinite-mode BCJ and causal continuum transport under Kuchaƙ consistency.""" +from __future__ import annotations +from dataclasses import asdict, dataclass +from hashlib import sha256 +import json +from typing import Any, Mapping + +from .kuchar_bcj_pointwise_coverage_m152 import run_kuchar_bcj_pointwise_coverage_study +from openwave.xperiments.m14_continuum_ads_double_copy.causal_green_hadamard_m141 import run_causal_green_hadamard_study +from openwave.xperiments.m14_continuum_ads_double_copy.infinite_bcj_direct_limit_m142 import run_infinite_bcj_direct_limit_study + +MILESTONE = "M15.3" +SCHEMA = "openwave.m15.kuchar-continuum-bcj-causal.v1" +FORMAL_HEAD = "1061988e0c356075562ced1bd88758ba4922375c" + +@dataclass(frozen=True) +class KucharContinuumBCJConfig: + require_hadamard: bool = True + require_tail_bound: bool = True + require_generalized_gauge_invariance: bool = True + +def _canon(value: Mapping[str, Any]) -> str: + return json.dumps(value, sort_keys=True, separators=(",", ":"), default=str) + +def _passed(result: Mapping[str, Any]) -> bool: + acceptance = result.get("acceptance", {}) + return bool(result.get("passed", False)) and all(bool(v) for v in acceptance.values()) + +def canonical_payload(config: KucharContinuumBCJConfig | None = None) -> dict[str, Any]: + c = KucharContinuumBCJConfig() if config is None else config + return {"schema": SCHEMA, "model_id": "M15", "milestone": MILESTONE, "configuration": asdict(c), "formal_head": FORMAL_HEAD, "lineage_dependencies": ["M15.2", "M14.1", "M14.2"], "study_api": "openwave.xperiments.m15_kuchar_relational_time.kuchar_continuum_bcj_causal_m153:run_kuchar_continuum_bcj_causal_study"} + +def fingerprint(payload: Mapping[str, Any]) -> str: + return sha256(_canon(payload).encode()).hexdigest() + +def run_kuchar_continuum_bcj_causal_study(config: KucharContinuumBCJConfig | None = None) -> dict[str, Any]: + c = KucharContinuumBCJConfig() if config is None else config + finite_pointwise = run_kuchar_bcj_pointwise_coverage_study() + causal = run_causal_green_hadamard_study() + infinite = run_infinite_bcj_direct_limit_study() + coverage = { + "finite_and_pointwise_bcj": _passed(finite_pointwise), + "retarded_advanced_green": _passed(causal), + "pauli_jordan_homogeneous_transport": _passed(causal), + "positive_frequency_hadamard_probe": _passed(causal), + "square_summable_infinite_bcj": _passed(infinite), + "quantitative_tail_control": _passed(infinite), + "weighted_generalized_gauge_invariance": _passed(infinite), + "direct_system_fixed_mode_preservation": _passed(infinite), + } + acceptance = { + "m152_finite_pointwise_coverage_passes": coverage["finite_and_pointwise_bcj"], + "causal_green_hadamard_campaign_passes": _passed(causal), + "infinite_bcj_direct_limit_campaign_passes": _passed(infinite), + "continuum_transport_is_causal": coverage["retarded_advanced_green"], + "hadamard_gate_is_present": (not c.require_hadamard) or coverage["positive_frequency_hadamard_probe"], + "tail_bound_gate_is_present": (not c.require_tail_bound) or coverage["quantitative_tail_control"], + "gauge_invariance_gate_is_present": (not c.require_generalized_gauge_invariance) or coverage["weighted_generalized_gauge_invariance"], + "all_declared_infinite_and_continuum_surfaces_are_covered": all(coverage.values()), + } + payload = canonical_payload(c) + return {**payload, "task": MILESTONE, "coverage": coverage, "dependency_fingerprints": {"m152": finite_pointwise.get("fingerprint"), "m141": causal.get("fingerprint"), "m142": infinite.get("fingerprint")}, "acceptance": acceptance, "passed": all(acceptance.values()), "fingerprint": fingerprint(payload), "decision": {"continuum_limit_requires_explicit_summability": True, "green_hadamard_inputs_remain_visible": True, "kuchar_global_time_not_inferred": True}} diff --git a/openwave/xperiments/m15_kuchar_relational_time/research/zil/m15_kuchar_continuum_bcj_causal_m153.zc b/openwave/xperiments/m15_kuchar_relational_time/research/zil/m15_kuchar_continuum_bcj_causal_m153.zc new file mode 100644 index 00000000..5064a521 --- /dev/null +++ b/openwave/xperiments/m15_kuchar_relational_time/research/zil/m15_kuchar_continuum_bcj_causal_m153.zc @@ -0,0 +1,6 @@ +model:m15.3#requires@model:m15.2. +model:m15.3#reuses@model:m14.1. +model:m15.3#reuses@model:m14.2. +model:m15.3#checks@claim:square-summable-infinite-bcj-series-has-quantitative-tail-control. +model:m15.3#checks@claim:causal-green-pauli-jordan-and-hadamard-transport-remain-compatible. +model:m15.3#forbids@claim:global-hyperbolicity-alone-supplies-all-analytic-inputs. diff --git a/tests/test_m15_kuchar_continuum_bcj_causal_m153.py b/tests/test_m15_kuchar_continuum_bcj_causal_m153.py new file mode 100644 index 00000000..ecf750f2 --- /dev/null +++ b/tests/test_m15_kuchar_continuum_bcj_causal_m153.py @@ -0,0 +1,6 @@ +from openwave.xperiments.m15_kuchar_relational_time.kuchar_continuum_bcj_causal_m153 import run_kuchar_continuum_bcj_causal_study + +def test_m153(): + result = run_kuchar_continuum_bcj_causal_study() + assert result["passed"] + assert len(result["acceptance"]) == 8