Repository navigation
research: five post-certificate improvements with executed evidence #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
f923e8d
1d5ceee
0a8f009
4c726dd
c3d243f
6d42004
7dc2267
68183d3
9ace2db
dd4cb2e
29debb5
cfd7026
5216c83
267a001
765a744
08df57c
f442226
0ab886b
a91af60
ff3c301
9dbc743
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,66 @@ | ||
| name: Post-certificate research | ||
|
|
||
| on: | ||
| pull_request: | ||
| paths: | ||
| - "graph_synthesis/post_certificates/**" | ||
| - "CURRENT_RESULTS.md" | ||
| - "manuscript/paper-current.*" | ||
| - ".github/workflows/post-certificates.yml" | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - "graph_synthesis/post_certificates/**" | ||
| - "CURRENT_RESULTS.md" | ||
| - "manuscript/paper-current.*" | ||
| - ".github/workflows/post-certificates.yml" | ||
|
|
||
| permissions: | ||
| contents: read | ||
|
|
||
| jobs: | ||
| verify: | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 30 | ||
| env: | ||
| PYTHONDONTWRITEBYTECODE: "1" | ||
| steps: | ||
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 | ||
| with: | ||
| fetch-depth: 0 | ||
| - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 | ||
| with: | ||
| python-version: "3.12" | ||
| - name: Install frozen research dependencies | ||
| run: python -m pip install -r graph_synthesis/post_certificates/requirements.txt | ||
| - name: Verify frozen protocol ancestry | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| protocol=f923e8d41ca5953d9793fadcc3730cfe9fc70b3a | ||
| git merge-base --is-ancestor "$protocol" HEAD | ||
|
CompleteDotTech marked this conversation as resolved.
|
||
| git show "$protocol:graph_synthesis/post_certificates/PROTOCOL.md" | cmp - graph_synthesis/post_certificates/PROTOCOL.md | ||
| - name: Run mechanism tests | ||
| run: python -B -m unittest discover -s graph_synthesis/post_certificates/tests -v | ||
| - name: Reproduce committed machine-readable evidence | ||
| run: python -B -m graph_synthesis.post_certificates.run --check | ||
| - name: Rebuild report, figures and complete manuscript | ||
| run: | | ||
| python -B -m graph_synthesis.post_certificates.report --figures --update-paper | ||
| python -B -m graph_synthesis.render_current_paper --output "$RUNNER_TEMP/post-certificates-paper.pdf" | ||
| - name: Require generated-artifact stability | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| # Verify stable research sources and raster plots. The committed PDF | ||
| # is not overwritten; the SVG generator is deterministic for future replays. | ||
| git diff --exit-code -- \ | ||
| CURRENT_RESULTS.md \ | ||
| graph_synthesis/post_certificates/PROTOCOL.md \ | ||
| graph_synthesis/post_certificates/RESULTS.md \ | ||
| graph_synthesis/post_certificates/results.json \ | ||
| graph_synthesis/post_certificates/summary.csv \ | ||
| graph_synthesis/post_certificates/figures/*.png \ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When a committed SVG is stale or edited without changing its PNG counterpart, the workflow regenerates the SVGs during the Useful? React with 👍 / 👎. |
||
| manuscript/paper-current.md \ | ||
| manuscript/paper-current.html | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| # Execution notes | ||
|
|
||
| The protocol was frozen in commit `f923e8d41ca5953d9793fadcc3730cfe9fc70b3a` before implementation or execution. | ||
|
|
||
| The first complete execution on September 18, 2026 produced H1 not met and H2-H5 met. During pre-PR review, H5's interval-marginal implementation was found to label outward-padded numerical **primal** LP optima as certified endpoints. That is not a sufficient numerical certificate because a feasible primal point does not by itself provide the required outer bound. | ||
|
|
||
| Commit `29debb5fc8df3fd4bc62f1505e50788a78ed8f3d` corrected only the numerical verification layer: HiGHS equality/inequality dual multipliers are projected to the required inequality sign, reduced-cost deficit is conservatively corrected using the unit simplex mass, and an outward padding term is subtracted before the lower dual bound is accepted. The max endpoint is obtained from the verified dual lower bound of the negated objective. Primal feasibility and dual-vs-primal consistency are checked; failures stage as non-certifying [0,1]. | ||
|
|
||
| No hypothesis, seed, generator, comparator, threshold, evidence population or pass/fail rule was changed. The corrected frozen suite was rerun from scratch and retained the same target outcomes and headline metrics. The pre-correction generated artifacts were superseded and are not the evidence cited by the final report. | ||
|
|
||
| A concurrent, unrelated commit landed on the original research branch after the corrected generated commit. The final PR branch was therefore forked exactly from corrected evidence commit `cfd7026746aaf9a41501d59bb8f4448a84c356ac` so unrelated work is neither overwritten nor included. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,120 @@ | ||
| # Frozen protocol: five post-certificate improvements | ||
|
|
||
| Baseline: `9d2e4a60a6c79e616ab1d352cd5da9fe414e6c98` (merged PR #20), inspected September 18, 2026. | ||
|
|
||
| This protocol is committed before implementation or execution. The new hypotheses are motivated by the merged evidence: source-random-effects forecasting improved Brier only 6.39% versus its same-marginal comparator and still lost to the prior feature-risk forecast, while dependence-safe bounds, bipartite flow certificates, repair-invariant queries and local delta maintenance passed their controlled targets. The present suite asks whether the remaining failure boundaries can be narrowed without changing the production graph policy. | ||
|
|
||
| The repository audit covered CURRENT_RESULTS.md plus adaptive, risk-control, reliability, structural, source-structural, assumption-aware, uncertainty, novel-mechanisms, frontier and certificate studies. Related ingredients exist, including relation-level stacking, pairwise-constrained sensitivity analyses, bipartite flow, repair ambiguity and fixed-marginal credal bounds. The exact five tests below were not found in that inventory. This is a repository-scoped experiment distinction, not a worldwide novelty claim. Established calibration, active-information selection, separator conditioning, sensitivity analysis and linear programming have prior art. | ||
|
|
||
| Fresh Jev service calls: **0**. H1 reuses the already authenticated saved-response development/test capture. H2-H5 are controlled algorithmic experiments. No new semantic-accuracy claim, production policy change, human-review claim, external-system superiority claim or independent preregistration claim is authorized. | ||
|
|
||
| All primary targets below are frozen conjunctions. Do not retune a threshold, generator, comparator, tie rule, cap or evaluation population after observing the results. | ||
|
|
||
| ## H1 — Exposure-stratified stacking of source-contamination forecasts | ||
|
|
||
| **Motivation.** Certificate H1 selected a beta-binomial source random-effect model and improved Brier relative to same-marginal independence, but 60/98 nonempty evaluation groups were singletons and the richer pre-existing feature-risk forecast still had lower Brier. Random effects and per-edge feature risk may contain complementary information. | ||
|
|
||
| **Method.** | ||
| - Reuse exactly the certificate input loader: 73 development candidates / 40 source groups and 263 test candidates / 149 source groups, with source-group disjointness enforced. | ||
| - Accepted edges remain base1 SUPPORTS/REFUTES only. | ||
| - Build two development-only leave-one-source-group-out forecasts for each nonempty held-out group: | ||
| 1. the existing feature-risk group forecast from `reliability.calibration`; | ||
| 2. the beta-binomial random-effects forecast fitted without that group. | ||
| - Partition folds by accepted-edge exposure: singleton (`n == 1`) and multi-edge (`n > 1`). | ||
| - Within each stratum, if at least 8 folds are available, select a convex feature weight `w` from `{0.0, 0.1, ..., 1.0}` minimizing development Brier of `w * feature + (1-w) * random_effects`; ties prefer the smaller distance to 0.5, then smaller `w`. Otherwise use the globally selected weight. | ||
| - Refit both constituent models on all development rows and apply the frozen weights to test features/exposures before scoring test labels. | ||
| - No test gold, test-group outcomes or test-derived tuning may enter the fit. | ||
|
|
||
| **Comparators.** Certificate random effects and prior feature-risk forecast, on the identical nonempty test-group denominator. | ||
|
|
||
| **Primary target.** Stacked Brier must be no worse than feature-risk Brier, at least 3% lower than certificate random-effects Brier, and absolute mean bias must be <= 0.03. | ||
|
|
||
| **Required reporting.** Brier, clipped log loss, bias, selected global/stratum weights, fold counts, singleton/multi test counts, paired source-group bootstrap intervals (4,000 draws, seed 20260923), and the unfavorable result if the conjunction fails. | ||
|
|
||
| ## H2 — Greedy acquisition of dependence constraints | ||
|
|
||
| **Motivation.** Certificate H2 proves valid bounds under supplied marginals/joint constraints, but wide intervals can withhold useful admissions. Earlier studies tested fixed pairwise-constraint panels, not a frozen policy for deciding which pairwise intersections are most valuable to obtain. | ||
|
|
||
| **Population.** Reuse the 128 arbitrary-joint random fixtures generated by certificate H2. The supplied full joint distribution is a controlled oracle only; it is not a measured Jev probability. | ||
|
|
||
| **Method.** | ||
| - Start from marginal-only DNF bounds. | ||
| - Candidate observations are all pairwise atom-conjunction probabilities calculated from the fixture's supplied joint table. | ||
| - Budget = 3 pairwise constraints. | ||
| - At each step, evaluate every still-unobserved candidate by adding that exact controlled value and recomputing the certified interval; choose the candidate minimizing interval width. Ties are lexicographic on atom IDs. | ||
| - Comparator: add the first three lexicographic pair constraints, or all available pairs when fewer than three exist. | ||
| - Retain every intermediate interval and selected pair. | ||
|
|
||
| **Primary target.** Zero truth-containment failures; no chosen step may widen its prior interval by >1e-8; mean final width must be <=75% of marginal-only mean width and <=90% of the lexicographic same-budget mean width. | ||
|
|
||
| **Boundary.** This is an oracle value-of-information experiment. It does not establish that the selected intersections are cheaply or accurately estimable in production. | ||
|
|
||
| ## H3 — Separator-conditioned near-bipartite exact optimization | ||
|
|
||
| **Motivation.** Certificate H3 exactly solves large bipartite conflict graphs, while large non-bipartite components still stage. A small supplied odd-cycle-transversal/separator can make the residual graph bipartite. | ||
|
|
||
| **Method.** | ||
| - Input includes nonnegative integer priorities, conflict edges and a supplied separator `S` of at most 4 vertices. | ||
| - Verify that deleting `S` leaves a bipartite graph. Invalid hints stage; they are never trusted silently. | ||
| - Enumerate every independent subset `I` of `S`. Treat `I` as selected, remove all other separator vertices and every residual neighbor of `I`, then solve each remaining residual component with the existing certified bipartite-flow solver. | ||
| - Verify each returned flow certificate. Add the separator utility and select the maximum-utility feasible branch with deterministic lexical tie breaking. | ||
| - This is exact conditional on verified graph input and separator, not a semantic truth guarantee. | ||
|
|
||
| **Small oracle test.** 128 seeded graphs with 6–12 vertices, separator size 1–3 and bipartite residuals; compare with independent exhaustive maximum-weight independent-set enumeration. Include order/duplicate invariance. | ||
|
|
||
| **Large analytic test.** Even cycles of residual size 512, 1024 and 2048 plus one apex separator connected to two adjacent cycle vertices, with cycle weights 1 and apex weight 3. Expected optimum is `n/2 + 2`. The current generic solver must be recorded as comparator, including whether it stages. | ||
|
|
||
| **Primary target.** Zero small-oracle/certificate/invariance failures; solve all three large fixtures at the analytic optimum; current generic solver stages every large fixture; malformed/non-transversal controls stage safely. | ||
|
|
||
| ## H4 — Reusable repair-margin query index | ||
|
|
||
| **Motivation.** Certificate H4 gives correct repair-invariant query answers, but repeated queries repeatedly re-solve forced-in/forced-out optimization problems. For singleton assertions, those optimization margins can be precomputed once. | ||
|
|
||
| **Method.** | ||
| - For a graph whose base optimum is not staged, compute for every vertex `v`: | ||
| - best utility with `v` forced in; | ||
| - best utility with `v` forced out. | ||
| - For tolerance `epsilon`, threshold = optimum - epsilon. | ||
| - Singleton query classification: | ||
| - impossible if forced-in utility < threshold; | ||
| - certain if forced-out utility < threshold; | ||
| - ambiguous otherwise. | ||
| - Preserve a possible witness and, where ambiguous, a counterexample witness. | ||
| - This index explicitly supports singleton queries only; conjunctions continue to use the existing query path. | ||
|
|
||
| **Population.** 128 seeded weighted graphs with 4–10 vertices and finite exact behavior. For every vertex evaluate the distinct epsilon set `{0,1,2,floor(.05*optimum),floor(.10*optimum)}` after removing duplicates/nonpositive excess values. | ||
|
|
||
| **Comparator.** Existing `certificates.graphs.query` on the same singleton query and epsilon. | ||
|
|
||
| **Primary target.** Zero classification/witness mismatches and at least 70% fewer top-level optimization invocations over the repeated-query workload, counting baseline query execution as base + forced-in + forced-out solves and index construction as one base + two per vertex. | ||
|
|
||
| **Boundary.** This is repeated-query work reduction, not database latency or semantic validation. | ||
|
|
||
| ## H5 — Interval-marginal dependence certificates | ||
|
|
||
| **Motivation.** Every dependence-safe study retains the same falsifying control: if a supplied marginal itself is wrong, a mathematically correct point-marginal certificate can still make a false admission. Treating the marginal as an interval can represent bounded premise uncertainty explicitly. | ||
|
|
||
| **Method.** | ||
| - Extend the possible-world LP so each atom probability is constrained by `lower <= P(atom) <= upper` rather than an equality; exact point marginals are the special case lower=upper. | ||
| - Objective remains min/max probability of the monotone DNF. Normalization is exact; interval rows are linear inequalities. | ||
| - Solver failure, infeasible intervals, nonfinite values, lower>upper, or atom-cap excess return an explicit non-certifying [0,1] staged result. | ||
| - Outward numerical padding and primal feasibility checks are required before a bound may certify. | ||
|
|
||
| **Random containment population.** 128 seeded arbitrary joint distributions over 2–6 atoms and 1–6 proofs. For each true atom marginal, construct a seeded interval of radius 0.02–0.10 that contains the true value and a perturbed point estimate inside that interval. Require the true supplied joint fact probability to lie inside the interval-marginal result. | ||
|
|
||
| **False-premise controls.** 20 singleton facts whose actual probability is below 0.95, whose biased point estimate is >=0.97, and whose supplied uncertainty interval contains the actual probability with lower endpoint <0.95. The exact-point method should admit; the interval method should withhold. | ||
|
|
||
| **Primary target.** Zero random truth-containment failures, prevent all 20 designed point-estimate false admissions, and zero malformed/infeasible inputs returning a certifying interval. | ||
|
|
||
| **Required reporting.** Mean point-bound width versus interval-bound width, prevented admissions, staging counts and explicit statement that interval validity itself is a supplied assumption. | ||
|
|
||
| ## Global validation and publication | ||
|
|
||
| - Seed for new controlled generators: 20260923. | ||
| - No network access during benchmark replay. | ||
| - Add unit/adversarial tests for all five mechanisms. | ||
| - Store machine-readable results, summary CSV and five evidence-derived SVG/PNG figure pairs. | ||
| - Update `CURRENT_RESULTS.md` and append an additive section to `manuscript/paper-current.md`; regenerate HTML/PDF using the repository renderer. | ||
| - Preserve all pre-existing experiment artifacts and prior manuscript text byte-for-byte outside the additive section. | ||
| - CI must replay results and fail on generated-artifact drift. | ||
| - Report passes and failures exactly as observed. Do not pool controlled fixture counts into a semantic success rate. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When a PR changes shared implementations such as
certificates/{risk,lineage,graphs}.py,reliability/run.py, oradaptive/run.py, this path filter skips the post-certificate job even thoughpost_certificates/run.pyimports those modules and its committed results depend on their behavior. Such a change can therefore merge with staleresults.jsonand narrative artifacts; include the imported dependency paths (and the archived H1 input paths) in both trigger lists.Useful? React with 👍 / 👎.