Repository navigation
Engine: hear two disputes that share no claim as one, their table proved - #194
Draft
deanberris wants to merge 1 commit into
Draft
deanberris wants to merge 1 commit into
deanberris wants to merge 1 commit into
Conversation
Testimony.Logic.Compose: Dispute.sum puts two disputes' parties over both arguments' claims, kept apart (α ⊕ β), with both arguments' meaning postulates. Dispute.sum_defeats proves who defeats whom, for every pair at once: within an argument, who defeated whom before (renaming a claim changes nothing a valuation sees; the other argument's postulates mention none of these claims); across them, no one (all a party holds of the other argument is its postulates, which every party there holds with each claim it rests on, derives or concludes). Dispute.sumFinite builds the solver's table from the two tables already proved. Measured on sola fide and Mark 7 heard as one, 17 parties, 289 cells: the 60 cells from sola fide to Mark 7, searched one by one in the kernel, took 10.6 s and 86 MiB; composed, 6.4 ms (p = 0.008). The whole table composed takes 12.9 ms and its grounded verdict 79 ms. Every benchmark on main matched it. Ledger round 12; docs in logic.md; a two-meetings case in the fixture. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BC49XsbtehCbmJMavF1K5Q
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Testimony.Logic.Composelets two arguments that share no claim be heard as one dispute, without deciding any of its cells again.Dispute.sum: both disputes' parties (ι ⊕ κ), over both arguments' claims kept apart (α ⊕ β), with both arguments' meaning postulates (instHasPostulatesSum).Dispute.sum_defeats:defeats x y ↔ Sum.LiftRel dα.defeats dβ.defeats x y, for every pair at once.models_rename). The other argument's postulates mention none of these claims, so models of the two sides combine (entails_inl_iff/entails_inr_iff). Ranks and strengths carry over unchanged (rankOf_inl,strength_inl).not_attacks_inl_inr). All a party holds about the other argument's claims is that argument's postulates. Every party there holds the same postulates along with each claim it rests on, derives or concludes, so those postulates cannot entail the negation of any such claim.Dispute.sumFinite/Solver.Finite.sum: build the solver's table from the two tables already proved.Everything is proved constructively and checked by the kernel: no
native_decide, no raised heartbeats, and no theorem is weaker than before.Not covered: arguments that share a claim, or whose meanings are linked by a postulate. Those are one argument, and their cells are still decided one by one.
Measured (ledger round 12)
Sola fide's 12 parties and Mark 7's 5, heard as one dispute: 17 parties, 289 cells. Five rounds each, each in its own process:
decide +kernel)main: inscripts/bench-ab.sh origin/main --runs 5, every existing benchmark matched (NO CHANGE).Also
Testimony.Checks.TwoMeetings) exercisesDispute.sum. It sits outside the fixture's namespace, so the checks don't pick it up.logic.md(Disputes), theperformance.mdledger, and the layout row inCLAUDE.md.Gates
All passed: library, tools, arguments and examples builds;
lake lint; axiom audit; kernel replay of all three packages;bibgen/argtex/statusgen/argdoc/exampletex --check;testimony_lint.py;mdbook build.Generated by Claude Code