Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions .github/workflows/milestone-5-orbit-scaffold.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Milestone 5 orbit scaffold

on:
workflow_dispatch:
push:
paths:
- 'data/milestone5/**'
- 'schemas/milestone5_orbit_candidate.schema.json'
- 'scripts/milestone5_orbit_scaffold.py'
- 'proof-adapter.json'
- '.github/workflows/milestone-5-orbit-scaffold.yml'
pull_request:
paths:
- 'data/milestone5/**'
- 'schemas/milestone5_orbit_candidate.schema.json'
- 'scripts/milestone5_orbit_scaffold.py'
- 'proof-adapter.json'
- '.github/workflows/milestone-5-orbit-scaffold.yml'

jobs:
milestone-5-orbit-scaffold:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'

- name: Validate JSON files
run: |
python3 -m json.tool data/milestone5/m5_four_prime_baseline.json >/dev/null
python3 -m json.tool schemas/milestone5_orbit_candidate.schema.json >/dev/null
python3 -m json.tool proof-adapter.json >/dev/null

- name: Run Milestone 5 scaffold
run: python3 scripts/milestone5_orbit_scaffold.py

- name: Print Milestone 5 scaffold artifacts
run: |
echo '--- m5_scaffold_result.md ---'
cat reports/milestone5/m5_scaffold_result.md
echo '--- m5_scaffold_summary.json ---'
cat reports/milestone5/m5_scaffold_summary.json
echo '--- m5_scaffold_events.jsonl ---'
cat reports/milestone5/m5_scaffold_events.jsonl

- name: Upload Milestone 5 scaffold artifacts
uses: actions/upload-artifact@v4
with:
name: milestone-5-orbit-scaffold-artifacts
path: reports/milestone5/**
if-no-files-found: error

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +22 to +55
61 changes: 61 additions & 0 deletions data/milestone5/m5_four_prime_baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"schema_version": "bsd.milestone5.four-prime-baseline.v1",
"state": "Milestone 5 scaffold; inherited evidence only",
"validation_marker": "rerun-2026-05-11",
"claim_boundary": [
"This baseline is inherited input for controller-routed Milestone 5 gates.",
"It does not certify rank exactness for unresolved targets.",
"It does not promote any claim or mark any gate as passed."
],
"targets": [
{
"n": 257,
"search_class": "no_second_generator_found",
"baseline": {
"claim_tier": "H-E1-alg",
"alg_rank_method": "explicit_point_HB_selmer4",
"alg_rank_exact_known": false,
"alg_rank_exact": null,
"second_independent_point_certified": false,
"promoted_in_milestone": 4,
"alg_rank_lower": 1,
"alg_rank_upper": 2,
"BSD_used": false,
"parity_used": false,
"sha_finite_assumed": false
},
"P1": {"x_num": 34225, "x_den": 49, "y_num": 5887440, "y_den": 343, "on_curve_verified_inherited": true, "descent_image": [1, 2]},
"historical_search": {"candidates_found": 0, "n_unique_pts_found": 1, "different_descent_examples": []}
},
{
"n": 313,
"search_class": "historical_false_positive_requires_orbit_filter",
"baseline": {"claim_tier": "H-E1-alg", "alg_rank_method": "explicit_point_HB_selmer4", "alg_rank_exact_known": false, "alg_rank_exact": null, "second_independent_point_certified": false, "promoted_in_milestone": 4, "alg_rank_lower": 1, "alg_rank_upper": 2, "BSD_used": false, "parity_used": false, "sha_finite_assumed": false},
"P1": {"x_num": -25, "x_den": 1, "y_num": 1560, "y_den": 1, "on_curve_verified_inherited": true, "descent_image": [-1, -2]},
"historical_search": {"candidates_found": 3, "historical_false_positive": {"Q_x": "97969/25", "torsion_relation": "Q = P1 + (0,0)", "audit_correction": "candidate was in P1 torsion orbit despite different descent image"}}
},
{
"n": 353,
"search_class": "historical_false_positive_requires_orbit_filter",
"baseline": {"claim_tier": "H-E1-alg", "alg_rank_method": "explicit_point_HB_selmer4", "alg_rank_exact_known": false, "alg_rank_exact": null, "second_independent_point_certified": false, "promoted_in_milestone": 4, "alg_rank_lower": 1, "alg_rank_upper": 2, "BSD_used": false, "parity_used": false, "sha_finite_assumed": false},
"P1": {"x_num": -225, "x_den": 1, "y_num": 4080, "y_den": 1, "on_curve_verified_inherited": true, "descent_image": [-1, -2]},
"historical_search": {"candidates_found": 3, "historical_false_positive": {"Q_x": "102017/64", "torsion_relation": "Q = P1 + (-353,0)", "audit_correction": "candidate was in P1 torsion orbit despite different descent image"}}
},
{
"n": 457,
"search_class": "no_second_generator_found",
"baseline": {"claim_tier": "H-E1-alg", "alg_rank_method": "explicit_point_HB_selmer4", "alg_rank_exact_known": false, "alg_rank_exact": null, "second_independent_point_certified": false, "promoted_in_milestone": 4, "alg_rank_lower": 1, "alg_rank_upper": 2, "BSD_used": false, "parity_used": false, "sha_finite_assumed": false},
"P1": {"x_num": 105625, "x_den": 49, "y_num": 33547800, "y_den": 343, "on_curve_verified_inherited": true, "descent_image": [1, 2]},
"historical_search": {"candidates_found": 0, "n_unique_pts_found": 1, "different_descent_examples": []}
}
],
"required_controller_checks": [
"materialize target row and P1 from triggering repo/ref/SHA",
"hash row, P1, candidate, and search bounds as gate inputs",
"verify P1 on E_n: y^2 = x^3 - n^2 x",
"verify candidate on E_n before interpretation",
"compute and record descent image",
"test candidate against P1 torsion orbit before any independence claim",
"record independent/certified-no-result/typed-obstruction output digest"
]
}
3 changes: 3 additions & 0 deletions docs/status/MILESTONE_5_SCAFFOLD_RERUN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Milestone 5 scaffold validation marker

This file triggers validation for the Milestone 5 orbit-membership scaffold PR.
47 changes: 43 additions & 4 deletions proof-adapter.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,32 @@
"sha-nonclaim-boundary"
],
"obstruction_walls": ["certificate_wall", "height_bound_wall"]
},
{
"claim_id": "BSD-M5-004-orbit-membership-scaffold",
"state": "draft",
"severity": "E7",
"substrate": "four-prime M6 follow-up cohort {257, 313, 353, 457}",
"shell_level": "controller-routed candidate filtering scaffold",
"projection": "P1 verification, target classification, torsion-orbit-aware candidate schema, digest-addressed scaffold events",
"statement": "Milestone 5 begins by installing an orbit-membership-aware scaffold for the four unresolved second-generator targets. The scaffold verifies inherited P1 points and classifies target failure modes, but does not certify rank exactness or independence.",
"boundary": [
"Scaffold only; no second independent point is certified.",
"No four-descent gate has executed.",
"No rank exactness claim is made for primes where search returns negative within stated bounds.",
"Any later independence claim must include torsion-orbit membership testing and controller-witnessed input/output digests."
],
"non_claim_refs": [
"bsd.no-full-bsd-proof",
"bsd.no-sha-finiteness-proof",
"bsd.no-unchecked-rank-promotion",
"bsd.no-parity-assumption-promotion",
"bsd.no-m5-rank-exactness-for-negative-search"
],
"owned_gates": [
"m5-orbit-membership-scaffold"
],
"obstruction_walls": ["certificate_wall", "height_bound_wall"]
}
],
"gates": [
Expand Down Expand Up @@ -121,33 +147,46 @@
"kind": "non_claim_check",
"status": "planned",
"expected": "Sha finiteness and BSD-II leading-term claims remain blocked unless explicit certificates exist."
},
{
"gate_id": "m5-orbit-membership-scaffold",
"kind": "test",
"status": "planned",
"command": "python3 scripts/milestone5_orbit_scaffold.py",
"fixture": "data/milestone5/m5_four_prime_baseline.json",
"expected": "Verifies inherited P1 points on curve, classifies all four targets, and emits digest-addressed scaffold events without promoting any rank or independence claim."
}
],
"non_claims": [
{
"non_claim_id": "bsd.no-full-bsd-proof",
"statement": "This adapter does not claim a proof of BSD-I or BSD-II.",
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes"]
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes", "BSD-M5-004-orbit-membership-scaffold"]
},
{
"non_claim_id": "bsd.no-sha-finiteness-proof",
"statement": "This adapter does not claim Tate-Shafarevich finiteness or BSD-II leading-term certification.",
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes", "BSD-SHA-003-tower-bounding-diagnostic"]
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes", "BSD-SHA-003-tower-bounding-diagnostic", "BSD-M5-004-orbit-membership-scaffold"]
},
{
"non_claim_id": "bsd.no-unchecked-rank-promotion",
"statement": "This adapter does not promote rank claims without repo-local descent and SocioSphere gate evidence.",
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes"]
"applies_to": ["BSD-C5-001-consistency-grid", "BSD-M6-002-four-descent-named-primes", "BSD-M5-004-orbit-membership-scaffold"]
},
{
"non_claim_id": "bsd.no-parity-assumption-promotion",
"statement": "This adapter does not promote algebraic-rank claims using parity, BSD, or Sha-finiteness assumptions.",
"applies_to": ["BSD-M6-002-four-descent-named-primes"]
"applies_to": ["BSD-M6-002-four-descent-named-primes", "BSD-M5-004-orbit-membership-scaffold"]
},
{
"non_claim_id": "bsd.no-bsd-ii-leading-term-proof",
"statement": "This adapter does not claim BSD-II leading-term formula certification.",
"applies_to": ["BSD-SHA-003-tower-bounding-diagnostic"]
},
{
"non_claim_id": "bsd.no-m5-rank-exactness-for-negative-search",
"statement": "Milestone 5 scaffold and any negative search within declared bounds do not prove rank exactness or absence of a second generator beyond those bounds.",
"applies_to": ["BSD-M5-004-orbit-membership-scaffold"]
}
]
}
62 changes: 62 additions & 0 deletions schemas/milestone5_orbit_candidate.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/SocioProphet/bsd-proof-program/schemas/milestone5_orbit_candidate.schema.json",
"title": "Milestone 5 orbit-membership candidate record",
"type": "object",
"additionalProperties": false,
"required": [
"n",
"candidate_id",
"candidate_point",
"candidate_source",
"search_bounds",
"checks"
],
"properties": {
"n": {"type": "integer"},
"candidate_id": {"type": "string", "minLength": 1},
"candidate_source": {"type": "string", "enum": ["extended_bound_search", "four_descent", "heegner", "historical_recheck", "manual_fixture"]},
"candidate_point": {
"type": "object",
"additionalProperties": false,
"required": ["x_num", "x_den", "y_num", "y_den"],
"properties": {
"x_num": {"type": "integer"},
"x_den": {"type": "integer", "minimum": 1},
"y_num": {"type": "integer"},
"y_den": {"type": "integer", "minimum": 1}
}
},
"search_bounds": {
"type": "object",
"additionalProperties": true,
"required": ["description"],
"properties": {
"description": {"type": "string", "minLength": 1}
}
},
"checks": {
"type": "object",
"additionalProperties": false,
"required": [
"on_curve_verified",
"descent_image_recorded",
"torsion_orbit_checked",
"in_p1_torsion_orbit",
"independent_candidate"
],
"properties": {
"on_curve_verified": {"type": "boolean"},
"descent_image_recorded": {"type": "boolean"},
"torsion_orbit_checked": {"type": "boolean"},
"in_p1_torsion_orbit": {"type": "boolean"},
"independent_candidate": {"type": "boolean"},
"descent_image": {
"type": "array",
"items": {"type": "integer"}
},
"notes": {"type": "string"}
}
}
}
}
Loading
Loading