Skip to content

proof: universally-proven conditional laws export a plain-logic companion form#500

Merged
jasisz merged 1 commit into
mainfrom
conditional-lemma-companions
Jun 12, 2026
Merged

proof: universally-proven conditional laws export a plain-logic companion form#500
jasisz merged 1 commit into
mainfrom
conditional-lemma-companions

Conversation

@jasisz

@jasisz jasisz commented Jun 12, 2026

Copy link
Copy Markdown
Owner

First increment of conditional helper lemmas (measured feasibility probe: prompts/conditional-helper-lemmas-probe.md): every when-law with a universal proof in the side build now ships a Prop-form companion next to its twin — premises lowered to plain hypotheses, == conclusions lowered to =, one fixed bridge tactic covering all three measured Bool/Prop seams. Future increments let later laws consume these companions via explicit have (the probe proved the full chain on the 1996 paper's hardest-lemma shapes, including a 39-line core-Lean proof of the floor-stability brick).

Fail-closed by construction

  • The crediting audit is index-driven: it probes exactly the theorem names in the lane index, and companions are never indexed → no path to a forged credit (reviewer attempted collisions and filter games — withheld every time).
  • A companion lives in its twin's module: sabotaged twin → module fails → companion can't compile, import, or outlive it (existing sabotage test extended over the pair; both directions measured).
  • All emitted companions certify within the axiom whitelist on live builds (json ×5, synthetic sign/bridge fixtures, Peano bridge laws).

Gates

  • json lane crediting byte-identical (when_universal 5, exact credited set, counted summary identical across normal/sabotage/revert).
  • Counted builds byte-identical corpus-wide; lane modules differ only by appended companions (+ the content-hash renames that follow by design).
  • cargo test --workspace green (live proof_spec 145); fmt/clippy clean.

Known sharp edge (measured, queued)

A sibling law deliberately named <law>_prop collides with the emitted name and withholds the original credit (never grants) — same pre-existing hazard class as _universal on the baseline (measured both). Collision guard queued for the next increment, which touches lane naming anyway.

🤖 Generated with Claude Code

…nion form

Every when-law that earns a universal proof in the side build now ships
a companion theorem alongside its twin: premises lowered to plain
logical hypotheses (Bool conjunctions split, bare comparisons
un-coerced, == conclusions lowered to equality) via a fixed bridge
tactic, so later proofs can apply the law directly with no Bool/Prop
bridging at the call site.

Crediting is untouched by construction: the audit probes only the
theorem names recorded in the lane index, and companions are never
indexed — there is no path for a companion to count as a credited law.
A companion lives in its twin's module, so a failing twin takes the
companion down with it (the existing sabotage test covers the pair).

All emitted companions certify within the kernel-axiom whitelist on
the live builds (json, the synthetic lane fixtures, the Peano bridge
laws). Counted builds byte-identical; json's universal credit
unchanged.

Known sharp edge (pre-existing class, measured during review): a
sibling law deliberately named <law>_prop — like <law>_universal
before this change — collides with the emitted name and withholds the
original law's credit (fail-closed, never grants); a collision guard
is queued for the lane-imports follow-up.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jasisz jasisz merged commit d65be8d into main Jun 12, 2026
5 checks passed
@jasisz jasisz deleted the conditional-lemma-companions branch June 12, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant