diff --git a/.github/workflows/latticra-identity-replay-model3-refined-preregistration.yml b/.github/workflows/latticra-identity-replay-model3-refined-preregistration.yml new file mode 100644 index 00000000..6615ea14 --- /dev/null +++ b/.github/workflows/latticra-identity-replay-model3-refined-preregistration.yml @@ -0,0 +1,21 @@ +name: Latticra Identity-Replay Model-3 Refined Pre-Registration + +on: + pull_request: + push: + branches: + - main + +permissions: + contents: read + +jobs: + check: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 + with: + persist-credentials: false + - name: Run Latticra identity-replay Model-3 refined preregistration guard + run: sh scripts/test-latticra-identity-replay-model3-refined-preregistration.sh diff --git a/docs/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION.md b/docs/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION.md new file mode 100644 index 00000000..a964f929 --- /dev/null +++ b/docs/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION.md @@ -0,0 +1,159 @@ +# Latticra Identity-Replay Model-3 Refined Pre-Registration + +Status: guarded refined Model-3 sector-charge pre-registration +Date: 2026-05-29 CDT +Scope: target-blind sector-resolved topological charge and family-monotonicity pre-registration before any refined Model-3 prediction runner. + +## Purpose + +The first Model-3 prediction law was rejected by the guarded target table. The rejection analysis did not authorize a stronger claim; it authorized only a narrower next artifact: a refined pre-registration that locks the required law shape before any new prediction runner. + +This artifact records that boundary. It pre-registers the target-blind law requirements for sector-resolved topological charge and family monotonicity. It does not emit mass-ratio predictions, load target ratios, tune against targets, or promote a Higgs checkmate claim. + +## Refined Pre-Registration Checkpoint + +```text +latticra_identity_replay_model3_refined_preregistration_present=1 +pre_registration_id=latticra-identity-replay-model3-refined-sector-charge-preregistration +pre_registration_version=1 +refined_model3_law_id=model3-refined-sector-resolved-topological-charge +refinement_gate_reference=reports/identity_replay_model3_refinement_gate.json +refinement_gate_tool_reference=tools/latticra_identity_replay_model3_refinement_gate.py +pre_registration_tool=tools/latticra_identity_replay_model3_refined_preregistration.py +model3_refinement_gate_receipt_hash_valid=1 +refinement_gate_required_law_property=target_blind_sector_resolved_topological_charge_with_family_monotonicity +required_refined_model3_property=target_blind_sector_resolved_topological_charge_with_family_monotonicity +refined_model3_preregistration_authorized_by_gate=1 +refined_model3_prediction_runner_authorized=0 +refined_model3_capacity_gate_required_before_prediction=1 +pre_registered_before_refined_prediction=1 +target_table_loaded=0 +target_comparison_performed=0 +mass_ratio_predictions_emitted=0 +target_ratio_recovery_evaluated=0 +dynamic_range_capacity_evaluated_against_targets=0 +measured_masses_used_in_law=0 +measured_masses_used_in_kappa=0 +target_ratios_used_in_law=0 +target_order_labels_as_weights_used=0 +particle_features_hand_declared=0 +particle_name_to_sector_mapping_used=0 +particle_name_to_cost_mapping_used=0 +post_target_parameter_tuning_used=0 +target_guided_loss_function_used=0 +single_global_amplifier_forbidden=1 +single_global_amplifier_used=0 +sector_resolved_topological_charge_present=1 +sector_resolved_topological_trace_required=1 +family_monotonicity_constraint_present=1 +family_monotonicity_trace_required=1 +target_blind_dynamic_range_proof_required_before_prediction=1 +minimum_refined_model3_dynamic_range_multiplier_required=5.4744404767584652275663280083338001338306169886721631882430541171586743908036395 +ordering_failure_must_be_addressed=1 +lepton_family_order_inversion_must_be_addressed=1 +low_electroweak_below_electron_must_be_addressed=1 +heavy_sector_underamplification_must_be_addressed=1 +parameter_count=0 +target_count_loaded=0 +parameter_count_less_than_target_count=0 +negative_controls_present=1 +photon_zero_rest_mass_control_required=1 +gluon_zero_rest_mass_control_required=1 +next_required_artifact=refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner +candidate_promoted=0 +mass_ratio_recovery_claimed=0 +standard_model_replacement_claimed=0 +higgs_denied=0 +higgs_checkmate_claimed=0 +higgs_only_causal_closure_challenged=1 +simulation_proven=0 +reality_simulation_claimed=0 +physics_bound_by_simulative_concepts_claimed=0 +scientific_claim_promoted=0 +refined_model3_pre_registration_receipt_hash_generated=1 +``` + +## Boundary Rules + +The refined law may use only substrate-derived trace structure: + +```text +state_space_definition=unlabeled replay quotient graph with local branch, coalescence, orientation, and observer-closure incidence +local_update_operator=target-blind replay update over quotient-neighborhood incidence; no particle-name dispatch and no target-ratio loss +observer_projection=projection to quotient-stable identity traces, sector charge, and family-order certificates without target-table loading +identity_quotient=identity classes are grouped only by substrate trace invariants, not by Standard Model particle labels or measured mass order +distance_metric=lexicographic replay obstruction distance: quotient depth, branch-coalescence obstruction, orientation inversion, and observer-closure cost +sector_charge_components=quotient_depth_charge,branch_coalescence_charge,orientation_inversion_charge,observer_closure_charge +family_monotonicity_rule=within any derived sector, replay-family order must be monotone in nested quotient depth and obstruction count before target evaluation +``` + +Forbidden inputs remain: + +```text +measured_particle_masses +target_mass_ratios +target_order_labels_as_weights +particle_name_to_sector_mapping +particle_name_to_cost_mapping +post_target_parameter_tuning +target_guided_loss_function +single_global_amplifier_only +``` + +## Invocation + +Generate the prior gate receipts first: + +```sh +python3 tools/latticra_identity_replay_model3_runner.py --predict-only \ + > reports/identity_replay_model3_predictions.json +python3 tools/latticra_identity_replay_model3_evaluate.py \ + --predictions reports/identity_replay_model3_predictions.json \ + --targets docs/LATTICRA_IDENTITY_REPLAY_IMPEDANCE_CANDIDATE_PARTICLE_TABLE.md \ + > reports/identity_replay_model3_evaluation.json +python3 tools/latticra_identity_replay_model3_rejection_analysis.py \ + --predictions reports/identity_replay_model3_predictions.json \ + --evaluation reports/identity_replay_model3_evaluation.json \ + > reports/identity_replay_model3_rejection_analysis.json +python3 tools/latticra_identity_replay_model3_refinement_gate.py \ + --analysis reports/identity_replay_model3_rejection_analysis.json \ + > reports/identity_replay_model3_refinement_gate.json +``` + +Then pre-register the refined law boundary: + +```sh +python3 tools/latticra_identity_replay_model3_refined_preregistration.py \ + --refinement-gate reports/identity_replay_model3_refinement_gate.json \ + > reports/identity_replay_model3_refined_preregistration.json +``` + +## Validation + +This lane is guarded by: + +```sh +sh scripts/test-latticra-identity-replay-model3-refined-preregistration.sh +``` + +Expected output: + +```text +latticra_identity_replay_model3_refined_preregistration: ok +``` + +It is also included in the public Higgs chain verifier: + +```sh +make verify-higgs-chain +``` + +## Next Recommended Lane + +```text +Refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner. +``` + +## Non-Claims + +This refined Model-3 pre-registration is not a Latticra mass recovery, not a Standard Model replacement, not a denial of CERN/ATLAS/CMS data, not a denial of the Higgs boson, not a proof that reality is simulated, not physics measurement, not experimental evidence, not a completed particle spectrum derivation, not final checkmate against Higgs, not external oracle evidence, not independent reproduction, not a Standard Model precision-shadow pass, not a new experimental prediction, not scientific claim promotion, not runtime execution, not effect execution, not production readiness, not operating-system completeness, and not public promotion of a final scientific conclusion. diff --git a/docs/status/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION_STATUS.md b/docs/status/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION_STATUS.md new file mode 100644 index 00000000..41900206 --- /dev/null +++ b/docs/status/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION_STATUS.md @@ -0,0 +1,101 @@ +# Latticra Identity-Replay Model-3 Refined Pre-Registration Status + +Status: guarded refined Model-3 pre-registration status +Date: 2026-05-29 CDT +Scope: status checkpoint for the target-blind sector-resolved topological charge pre-registration after Model-3 rejection analysis. + +## Summary + +The refined Model-3 pre-registration lane is present. It is authorized by the Model-3 refinement gate, but it does not authorize a prediction runner by itself. + +The status meaning is narrow: Latticra has recorded the next law boundary required by the Model-3 failure. It has not recovered mass ratios, replaced the Standard Model, denied the Higgs boson, or promoted a scientific claim. + +## Status Fields + +```text +latticra_identity_replay_model3_refined_preregistration_present=1 +pre_registration_id=latticra-identity-replay-model3-refined-sector-charge-preregistration +refined_model3_law_id=model3-refined-sector-resolved-topological-charge +pre_registration_tool=tools/latticra_identity_replay_model3_refined_preregistration.py +refinement_gate_tool_reference=tools/latticra_identity_replay_model3_refinement_gate.py +model3_refinement_gate_receipt_hash_valid=1 +refinement_gate_required_law_property=target_blind_sector_resolved_topological_charge_with_family_monotonicity +required_refined_model3_property=target_blind_sector_resolved_topological_charge_with_family_monotonicity +refined_model3_preregistration_authorized_by_gate=1 +refined_model3_prediction_runner_authorized=0 +refined_model3_capacity_gate_required_before_prediction=1 +pre_registered_before_refined_prediction=1 +target_table_loaded=0 +target_comparison_performed=0 +mass_ratio_predictions_emitted=0 +target_ratio_recovery_evaluated=0 +dynamic_range_capacity_evaluated_against_targets=0 +measured_masses_used_in_law=0 +measured_masses_used_in_kappa=0 +target_ratios_used_in_law=0 +target_order_labels_as_weights_used=0 +particle_name_to_sector_mapping_used=0 +particle_name_to_cost_mapping_used=0 +post_target_parameter_tuning_used=0 +target_guided_loss_function_used=0 +single_global_amplifier_forbidden=1 +single_global_amplifier_used=0 +sector_resolved_topological_charge_present=1 +sector_resolved_topological_trace_required=1 +family_monotonicity_constraint_present=1 +family_monotonicity_trace_required=1 +target_blind_dynamic_range_proof_required_before_prediction=1 +minimum_refined_model3_dynamic_range_multiplier_required=5.4744404767584652275663280083338001338306169886721631882430541171586743908036395 +ordering_failure_must_be_addressed=1 +lepton_family_order_inversion_must_be_addressed=1 +low_electroweak_below_electron_must_be_addressed=1 +heavy_sector_underamplification_must_be_addressed=1 +parameter_count=0 +target_count_loaded=0 +parameter_count_less_than_target_count=0 +negative_controls_present=1 +photon_zero_rest_mass_control_required=1 +gluon_zero_rest_mass_control_required=1 +next_required_artifact=refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner +candidate_promoted=0 +mass_ratio_recovery_claimed=0 +standard_model_replacement_claimed=0 +higgs_denied=0 +higgs_checkmate_claimed=0 +higgs_only_causal_closure_challenged=1 +simulation_proven=0 +reality_simulation_claimed=0 +physics_bound_by_simulative_concepts_claimed=0 +scientific_claim_promoted=0 +refined_model3_pre_registration_receipt_hash_generated=1 +``` + +## Public Meaning + +```text +Latticra has moved from the first Model-3 failure to a guarded refined pre-registration boundary: sector-resolved topological charge and family monotonicity must be derived target-blind before any new prediction runner. +``` + +## Guard Validation + +This status record is guarded by: + +```sh +sh scripts/test-latticra-identity-replay-model3-refined-preregistration.sh +``` + +Expected output: + +```text +latticra_identity_replay_model3_refined_preregistration: ok +``` + +## Next Recommended Lane + +```text +Refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner. +``` + +## Non-Claims + +This status record is not a Latticra mass recovery, not a Standard Model replacement, not a denial of CERN/ATLAS/CMS data, not a denial of the Higgs boson, not a proof that reality is simulated, not physics measurement, not experimental evidence, not a completed particle spectrum derivation, not final checkmate against Higgs, not independent reproduction, not a Standard Model precision-shadow pass, not a new experimental prediction, not scientific claim promotion, not runtime execution, not effect execution, not production readiness, not operating-system completeness, and not public promotion of a final scientific conclusion. diff --git a/scripts/test-latticra-higgs-chain-verifier.sh b/scripts/test-latticra-higgs-chain-verifier.sh index 53757e2e..d2c83e29 100755 --- a/scripts/test-latticra-higgs-chain-verifier.sh +++ b/scripts/test-latticra-higgs-chain-verifier.sh @@ -20,6 +20,10 @@ require_contains() { doc='docs/LATTICRA_HIGGS_CHALLENGE_ONE_PAGE.md' status='docs/status/LATTICRA_HIGGS_CHALLENGE_ONE_PAGE_STATUS.md' +refined_doc='docs/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION.md' +refined_status='docs/status/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION_STATUS.md' +refined_guard='scripts/test-latticra-identity-replay-model3-refined-preregistration.sh' +refined_workflow='.github/workflows/latticra-identity-replay-model3-refined-preregistration.yml' verifier='scripts/verify-latticra-higgs-chain.sh' status_index='docs/status/README.md' docs_hub='docs/README.md' @@ -32,7 +36,7 @@ makefile='Makefile' quality_guard='scripts/test-quality-safety-guards.sh' workflow='.github/workflows/latticra-higgs-chain-verifier.yml' -for file in "$doc" "$status" "$verifier" "$status_index" "$docs_hub" "$root_readme" "$root_status" "$current_status" "$current_direction" "$upcoming_work" "$makefile" "$quality_guard" "$workflow" +for file in "$doc" "$status" "$refined_doc" "$refined_status" "$refined_guard" "$refined_workflow" "$verifier" "$status_index" "$docs_hub" "$root_readme" "$root_status" "$current_status" "$current_direction" "$upcoming_work" "$makefile" "$quality_guard" "$workflow" do require_file "$file" done @@ -54,6 +58,19 @@ do require_contains 'scientific_claim_promoted=0' "$file" done +for file in "$refined_doc" "$refined_status" +do + require_contains 'latticra_identity_replay_model3_refined_preregistration_present=1' "$file" + require_contains 'refined_model3_law_id=model3-refined-sector-resolved-topological-charge' "$file" + require_contains 'refined_model3_prediction_runner_authorized=0' "$file" + require_contains 'target_ratios_used_in_law=0' "$file" + require_contains 'particle_name_to_sector_mapping_used=0' "$file" + require_contains 'single_global_amplifier_used=0' "$file" + require_contains 'mass_ratio_recovery_claimed=0' "$file" + require_contains 'higgs_checkmate_claimed=0' "$file" + require_contains 'simulation_proven=0' "$file" +done + for pattern in \ 'make verify-higgs-chain' \ 'latticra_higgs_chain_verifier: ok' \ @@ -81,7 +98,8 @@ for pattern in \ 'scripts/test-latticra-identity-replay-model2-prediction-failure-analysis.sh' \ 'scripts/test-latticra-identity-replay-model3-topological-amplification-preregistration.sh' \ 'scripts/test-latticra-identity-replay-model3-prediction-runner.sh' \ - 'scripts/test-latticra-identity-replay-model3-rejection-analysis.sh' + 'scripts/test-latticra-identity-replay-model3-rejection-analysis.sh' \ + 'scripts/test-latticra-identity-replay-model3-refined-preregistration.sh' do require_contains "$pattern" "$verifier" done @@ -91,6 +109,7 @@ trap 'rm -rf "$tmp_dir"' EXIT INT HUP TERM sh "$verifier" > "$tmp_dir/verifier.out" require_contains 'latticra_higgs_chain_verifier: ok' "$tmp_dir/verifier.out" require_contains 'verify_higgs_chain:model3_rejection_analysis: ok' "$tmp_dir/verifier.out" +require_contains 'verify_higgs_chain:model3_refined_preregistration: ok' "$tmp_dir/verifier.out" require_contains 'LATTICRA_HIGGS_CHALLENGE_ONE_PAGE_STATUS.md' "$status_index" require_contains 'Higgs Challenge One Page' "$docs_hub" @@ -106,7 +125,10 @@ require_contains 'sh ./scripts/test-latticra-higgs-chain-verifier.sh' "$makefile require_contains 'verify-higgs-chain:' "$quality_guard" require_contains 'latticra-higgs-chain-verifier:' "$quality_guard" require_contains 'Run Latticra Higgs chain verifier guard' "$workflow" +require_contains 'Run Latticra identity-replay Model-3 refined preregistration guard' "$refined_workflow" require_contains 'uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5' "$workflow" require_contains 'persist-credentials: false' "$workflow" +require_contains 'uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5' "$refined_workflow" +require_contains 'persist-credentials: false' "$refined_workflow" printf 'latticra_higgs_chain_verifier_guard: ok\n' diff --git a/scripts/test-latticra-identity-replay-model3-refined-preregistration.sh b/scripts/test-latticra-identity-replay-model3-refined-preregistration.sh new file mode 100644 index 00000000..aabfed4f --- /dev/null +++ b/scripts/test-latticra-identity-replay-model3-refined-preregistration.sh @@ -0,0 +1,155 @@ +#!/usr/bin/env sh +# SPDX-License-Identifier: AGPL-3.0-or-later +set -eu + +fail() { + printf 'latticra identity replay model3 refined preregistration: %s\n' "$1" >&2 + exit 1 +} + +require_file() { + file="$1" + [ -f "$file" ] || fail "missing file: $file" +} + +require_contains() { + pattern="$1" + file="$2" + grep -Fq -- "$pattern" "$file" || fail "missing pattern in $file: $pattern" +} + +doc='docs/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION.md' +status='docs/status/LATTICRA_IDENTITY_REPLAY_MODEL3_REFINED_PREREGISTRATION_STATUS.md' +table='docs/LATTICRA_IDENTITY_REPLAY_IMPEDANCE_CANDIDATE_PARTICLE_TABLE.md' +prediction_tool='tools/latticra_identity_replay_model3_runner.py' +evaluation_tool='tools/latticra_identity_replay_model3_evaluate.py' +analysis_tool='tools/latticra_identity_replay_model3_rejection_analysis.py' +gate_tool='tools/latticra_identity_replay_model3_refinement_gate.py' +pre_registration_tool='tools/latticra_identity_replay_model3_refined_preregistration.py' + +for file in "$doc" "$status" "$table" "$prediction_tool" "$evaluation_tool" "$analysis_tool" "$gate_tool" "$pre_registration_tool" +do + require_file "$file" +done + +for file in "$doc" "$status" +do + require_contains 'latticra_identity_replay_model3_refined_preregistration_present=1' "$file" + require_contains 'pre_registration_id=latticra-identity-replay-model3-refined-sector-charge-preregistration' "$file" + require_contains 'refined_model3_law_id=model3-refined-sector-resolved-topological-charge' "$file" + require_contains 'pre_registration_tool=tools/latticra_identity_replay_model3_refined_preregistration.py' "$file" + require_contains 'refinement_gate_tool_reference=tools/latticra_identity_replay_model3_refinement_gate.py' "$file" + require_contains 'model3_refinement_gate_receipt_hash_valid=1' "$file" + require_contains 'required_refined_model3_property=target_blind_sector_resolved_topological_charge_with_family_monotonicity' "$file" + require_contains 'refined_model3_preregistration_authorized_by_gate=1' "$file" + require_contains 'refined_model3_prediction_runner_authorized=0' "$file" + require_contains 'refined_model3_capacity_gate_required_before_prediction=1' "$file" + require_contains 'target_table_loaded=0' "$file" + require_contains 'target_ratio_recovery_evaluated=0' "$file" + require_contains 'target_ratios_used_in_law=0' "$file" + require_contains 'particle_name_to_sector_mapping_used=0' "$file" + require_contains 'target_guided_loss_function_used=0' "$file" + require_contains 'single_global_amplifier_used=0' "$file" + require_contains 'sector_resolved_topological_charge_present=1' "$file" + require_contains 'family_monotonicity_constraint_present=1' "$file" + require_contains 'target_blind_dynamic_range_proof_required_before_prediction=1' "$file" + require_contains 'minimum_refined_model3_dynamic_range_multiplier_required=5.4744404767584652275663280083338001338306169886721631882430541171586743908036395' "$file" + require_contains 'parameter_count=0' "$file" + require_contains 'next_required_artifact=refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner' "$file" + require_contains 'mass_ratio_recovery_claimed=0' "$file" + require_contains 'higgs_checkmate_claimed=0' "$file" + require_contains 'simulation_proven=0' "$file" + require_contains 'scientific_claim_promoted=0' "$file" + require_contains 'refined_model3_pre_registration_receipt_hash_generated=1' "$file" +done + +for section in '## Purpose' '## Refined Pre-Registration Checkpoint' '## Boundary Rules' '## Invocation' '## Validation' '## Next Recommended Lane' '## Non-Claims' +do + require_contains "$section" "$doc" +done + +for pattern in \ + 'state_space_definition=unlabeled replay quotient graph' \ + 'sector_charge_components=quotient_depth_charge,branch_coalescence_charge,orientation_inversion_charge,observer_closure_charge' \ + 'measured_particle_masses' \ + 'single_global_amplifier_only' +do + require_contains "$pattern" "$doc" +done + +if grep -Eq '105[.]658|1776[.]93|80369[.]2|91188[.]0|125200|172560|337691[.]496' "$pre_registration_tool"; then + fail "refined Model-3 pre-registration tool must not hardcode measured masses or target-ratio outcomes" +fi + +python3 -m py_compile "$gate_tool" "$pre_registration_tool" + +tmp_dir="$(mktemp -d "${TMPDIR:-/tmp}/latticra-model3-refined-preregistration.XXXXXX")" +trap 'rm -rf "$tmp_dir"' EXIT INT HUP TERM +prediction_json="$tmp_dir/model3_prediction.json" +evaluation_json="$tmp_dir/model3_evaluation.json" +analysis_json="$tmp_dir/model3_rejection_analysis.json" +gate_json="$tmp_dir/model3_refinement_gate.json" +pre_registration_json="$tmp_dir/model3_refined_preregistration.json" + +python3 "$prediction_tool" --predict-only > "$prediction_json" +python3 "$evaluation_tool" --predictions "$prediction_json" --targets "$table" > "$evaluation_json" +python3 "$analysis_tool" --predictions "$prediction_json" --evaluation "$evaluation_json" > "$analysis_json" +python3 "$gate_tool" --analysis "$analysis_json" > "$gate_json" +python3 "$pre_registration_tool" --refinement-gate "$gate_json" > "$pre_registration_json" + +for pattern in \ + '"latticra_identity_replay_model3_refined_preregistration_present": 1' \ + '"pre_registration_id": "latticra-identity-replay-model3-refined-sector-charge-preregistration"' \ + '"refined_model3_law_id": "model3-refined-sector-resolved-topological-charge"' \ + '"model3_refinement_gate_receipt_hash_valid": 1' \ + '"required_refined_model3_property": "target_blind_sector_resolved_topological_charge_with_family_monotonicity"' \ + '"refined_model3_preregistration_authorized_by_gate": 1' \ + '"refined_model3_prediction_runner_authorized": 0' \ + '"refined_model3_capacity_gate_required_before_prediction": 1' \ + '"target_table_loaded": 0' \ + '"target_ratios_used_in_law": 0' \ + '"particle_name_to_sector_mapping_used": 0' \ + '"single_global_amplifier_used": 0' \ + '"sector_resolved_topological_charge_present": 1' \ + '"family_monotonicity_constraint_present": 1' \ + '"minimum_refined_model3_dynamic_range_multiplier_required": "5.4744404767584652275663280083338001338306169886721631882430541171586743908036395"' \ + '"parameter_count": 0' \ + '"next_required_artifact": "refined Model-3 target-blind dynamic-range capacity gate before any prediction-only runner"' \ + '"mass_ratio_recovery_claimed": 0' \ + '"higgs_checkmate_claimed": 0' \ + '"simulation_proven": 0' \ + '"refined_model3_pre_registration_receipt_hash": "sha256:' \ + '"refined_model3_pre_registration_receipt_hash_generated": 1' +do + require_contains "$pattern" "$pre_registration_json" +done + +python3 - "$gate_json" "$pre_registration_json" <<'PY' +import json +import sys + +with open(sys.argv[1], encoding="utf-8") as handle: + gate = json.load(handle) +with open(sys.argv[2], encoding="utf-8") as handle: + prereg = json.load(handle) + +assert gate["refined_model3_preregistration_authorized"] == 1 +assert gate["refined_model3_prediction_runner_authorized"] == 0 +assert prereg["model3_refinement_gate_receipt_hash_valid"] == 1 +assert prereg["refined_model3_preregistration_authorized_by_gate"] == 1 +assert prereg["refined_model3_prediction_runner_authorized"] == 0 +assert prereg["target_table_loaded"] == 0 +assert prereg["target_ratios_used_in_law"] == 0 +assert prereg["particle_name_to_sector_mapping_used"] == 0 +assert prereg["single_global_amplifier_used"] == 0 +assert prereg["sector_resolved_topological_charge_present"] == 1 +assert prereg["family_monotonicity_constraint_present"] == 1 +assert prereg["parameter_count"] == 0 +assert prereg["candidate_promoted"] == 0 +assert prereg["mass_ratio_recovery_claimed"] == 0 +assert prereg["higgs_checkmate_claimed"] == 0 +assert prereg["simulation_proven"] == 0 +assert "not_refined_model3_prediction" in prereg["non_claims"] +PY + +printf 'latticra_identity_replay_model3_refined_preregistration: ok\n' diff --git a/scripts/verify-latticra-higgs-chain.sh b/scripts/verify-latticra-higgs-chain.sh index e418ace8..8eb9789f 100755 --- a/scripts/verify-latticra-higgs-chain.sh +++ b/scripts/verify-latticra-higgs-chain.sh @@ -28,5 +28,6 @@ run_guard model2_failure_analysis scripts/test-latticra-identity-replay-model2-p run_guard model3_preregistration scripts/test-latticra-identity-replay-model3-topological-amplification-preregistration.sh run_guard model3_prediction scripts/test-latticra-identity-replay-model3-prediction-runner.sh run_guard model3_rejection_analysis scripts/test-latticra-identity-replay-model3-rejection-analysis.sh +run_guard model3_refined_preregistration scripts/test-latticra-identity-replay-model3-refined-preregistration.sh printf 'latticra_higgs_chain_verifier: ok\n' diff --git a/tools/latticra_identity_replay_model3_refined_preregistration.py b/tools/latticra_identity_replay_model3_refined_preregistration.py new file mode 100644 index 00000000..8816e1a2 --- /dev/null +++ b/tools/latticra_identity_replay_model3_refined_preregistration.py @@ -0,0 +1,249 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: AGPL-3.0-or-later +"""Pre-register refined Model-3 sector-resolved topological charge work.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +from pathlib import Path +from typing import Iterable + +from latticra_identity_replay_model3_refinement_gate import ( + REQUIRED_REFINED_PROPERTY, + gate_hash, +) + + +LAW_ID = "model3-refined-sector-resolved-topological-charge" +PRE_REGISTRATION_ID = ( + "latticra-identity-replay-model3-refined-sector-charge-preregistration" +) + + +def canonical_hash(payload: dict[str, object], omitted_keys: Iterable[str]) -> str: + canonical_payload = dict(payload) + for key in omitted_keys: + canonical_payload.pop(key, None) + canonical = json.dumps(canonical_payload, sort_keys=True, separators=(",", ":")) + return "sha256:" + hashlib.sha256(canonical.encode("utf-8")).hexdigest() + + +def pre_registration_hash(payload: dict[str, object]) -> str: + return canonical_hash( + payload, + ( + "refined_model3_pre_registration_receipt_hash", + "refined_model3_pre_registration_receipt_hash_generated", + ), + ) + + +def load_gate(path: Path) -> dict[str, object]: + with path.open(encoding="utf-8") as handle: + payload = json.load(handle) + if not isinstance(payload, dict): + raise ValueError("Model-3 refinement gate receipt must be a JSON object") + return payload + + +def build_receipt(refinement_gate_path: Path) -> dict[str, object]: + gate = load_gate(refinement_gate_path) + observed_gate_hash = gate.get("model3_refinement_gate_receipt_hash") + recomputed_gate_hash = gate_hash(gate) + gate_hash_valid = int(observed_gate_hash == recomputed_gate_hash) + gate_authorized = int( + gate_hash_valid == 1 + and gate.get("refined_model3_preregistration_authorized") == 1 + and gate.get("refined_model3_required_law_property") + == REQUIRED_REFINED_PROPERTY + and gate.get("single_global_amplifier_forbidden") == 1 + ) + + receipt: dict[str, object] = { + "latticra_identity_replay_model3_refined_preregistration_present": 1, + "pre_registration_id": PRE_REGISTRATION_ID, + "pre_registration_version": 1, + "refined_model3_law_id": LAW_ID, + "refinement_gate_reference": str(refinement_gate_path), + "refinement_gate_tool_reference": ( + "tools/latticra_identity_replay_model3_refinement_gate.py" + ), + "model3_rejection_analysis_reference": gate.get( + "model3_rejection_analysis_reference" + ), + "model3_refinement_gate_receipt_hash": observed_gate_hash, + "model3_refinement_gate_receipt_hash_recomputed": recomputed_gate_hash, + "model3_refinement_gate_receipt_hash_valid": gate_hash_valid, + "refinement_gate_required_law_property": gate.get( + "refined_model3_required_law_property" + ), + "required_refined_model3_property": REQUIRED_REFINED_PROPERTY, + "refined_model3_preregistration_authorized_by_gate": gate_authorized, + "refined_model3_prediction_runner_authorized": 0, + "refined_model3_capacity_gate_required_before_prediction": 1, + "pre_registered_before_refined_prediction": 1, + "target_table_loaded": 0, + "target_comparison_performed": 0, + "mass_ratio_predictions_emitted": 0, + "target_ratio_recovery_evaluated": 0, + "dynamic_range_capacity_evaluated_against_targets": 0, + "measured_masses_used_in_law": 0, + "measured_masses_used_in_kappa": 0, + "target_ratios_used_in_law": 0, + "target_order_labels_as_weights_used": 0, + "particle_features_hand_declared": 0, + "particle_name_to_sector_mapping_used": 0, + "particle_name_to_cost_mapping_used": 0, + "post_target_parameter_tuning_used": 0, + "target_guided_loss_function_used": 0, + "single_global_amplifier_forbidden": 1, + "single_global_amplifier_used": 0, + "sector_resolved_topological_charge_present": 1, + "sector_resolved_topological_trace_required": 1, + "family_monotonicity_constraint_present": 1, + "family_monotonicity_trace_required": 1, + "target_blind_dynamic_range_proof_required_before_prediction": 1, + "minimum_refined_model3_dynamic_range_multiplier_required": gate.get( + "minimum_refined_model3_dynamic_range_multiplier_required" + ), + "prediction_dynamic_range_to_beat": gate.get("prediction_dynamic_range_to_beat"), + "target_dynamic_range_to_span": gate.get("target_dynamic_range_to_span"), + "ordering_failure_must_be_addressed": gate.get( + "ordering_failure_must_be_addressed" + ), + "lepton_family_order_inversion_must_be_addressed": gate.get( + "lepton_family_order_inversion_must_be_addressed" + ), + "low_electroweak_below_electron_must_be_addressed": gate.get( + "low_electroweak_below_electron_must_be_addressed" + ), + "heavy_sector_underamplification_must_be_addressed": gate.get( + "heavy_sector_underamplification_must_be_addressed" + ), + "state_space_definition": ( + "unlabeled replay quotient graph with local branch, coalescence, " + "orientation, and observer-closure incidence" + ), + "local_update_operator": ( + "target-blind replay update over quotient-neighborhood incidence; " + "no particle-name dispatch and no target-ratio loss" + ), + "observer_projection": ( + "projection to quotient-stable identity traces, sector charge, and " + "family-order certificates without target-table loading" + ), + "identity_quotient": ( + "identity classes are grouped only by substrate trace invariants, " + "not by Standard Model particle labels or measured mass order" + ), + "distance_metric": ( + "lexicographic replay obstruction distance: quotient depth, " + "branch-coalescence obstruction, orientation inversion, and " + "observer-closure cost" + ), + "counterfactual_repair_cost_function": ( + "minimal local edits required to preserve an unlabeled projected " + "identity under replay update, lifted by sector charge only after " + "the charge is derived from topology" + ), + "sector_charge_components": [ + "quotient_depth_charge", + "branch_coalescence_charge", + "orientation_inversion_charge", + "observer_closure_charge", + ], + "sector_charge_rule": ( + "sector charge is the ordered tuple of topology-derived obstruction " + "counts; it may separate sectors but may not read target names, " + "target ratios, or measured masses" + ), + "family_monotonicity_rule": ( + "within any derived sector, replay-family order must be monotone in " + "nested quotient depth and obstruction count before target evaluation" + ), + "negative_controls_present": 1, + "photon_zero_rest_mass_control_required": 1, + "gluon_zero_rest_mass_control_required": 1, + "zero_mass_control_rule": ( + "null and gauge-uniform replay traces must keep zero rest-mass " + "controls at zero sector charge unless a non-null obstruction is " + "derived without target labels" + ), + "parameter_count": 0, + "target_count_loaded": 0, + "parameter_count_less_than_target_count": 0, + "forbidden_refined_model3_inputs": gate.get( + "forbidden_refined_model3_inputs", + [ + "measured_particle_masses", + "target_mass_ratios", + "target_order_labels_as_weights", + "particle_name_to_sector_mapping", + "particle_name_to_cost_mapping", + "post_target_parameter_tuning", + "target_guided_loss_function", + "single_global_amplifier_only", + ], + ), + "required_refined_model3_emissions_before_prediction": [ + "state_space_definition", + "local_update_operator", + "observer_projection", + "identity_quotient", + "distance_metric", + "counterfactual_repair_cost_function", + "sector_resolved_topological_trace", + "family_monotonicity_trace", + "target_blind_dynamic_range_capacity_receipt", + "negative_control_receipts", + "non_claims", + ], + "next_required_artifact": ( + "refined Model-3 target-blind dynamic-range capacity gate before " + "any prediction-only runner" + ), + "candidate_promoted": 0, + "mass_ratio_recovery_claimed": 0, + "standard_model_replacement_claimed": 0, + "higgs_denied": 0, + "higgs_checkmate_claimed": 0, + "higgs_only_causal_closure_challenged": 1, + "simulation_proven": 0, + "reality_simulation_claimed": 0, + "physics_bound_by_simulative_concepts_claimed": 0, + "scientific_claim_promoted": 0, + "non_claims": [ + "not_a_standard_model_replacement", + "not_a_higgs_denial", + "not_simulation_proof", + "not_mass_ratio_recovery", + "not_final_checkmate", + "not_refined_model3_prediction", + "not_target_table_evaluation", + "not_scientific_claim_promotion", + ], + } + receipt["refined_model3_pre_registration_receipt_hash"] = ( + pre_registration_hash(receipt) + ) + receipt["refined_model3_pre_registration_receipt_hash_generated"] = 1 + return receipt + + +def main(argv: Iterable[str] | None = None) -> int: + parser = argparse.ArgumentParser() + parser.add_argument( + "--refinement-gate", + required=True, + help="Model-3 refinement gate JSON receipt that authorizes pre-registration", + ) + args = parser.parse_args(list(argv) if argv is not None else None) + receipt = build_receipt(Path(args.refinement_gate)) + print(json.dumps(receipt, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main())