Prototype spec RFC 0008 quantifiers behind an experimental opt-in flag (ADR-0009) - #25
Conversation
…antifiers (ADR-0009) exists/every/uniform with current-condition-root scoping, structural aggregate-depth-two enforcement, and an order-independent precharged work-accounting candidate (documented on (*evaluator).evaluate; pinned by TestRFC0008WorkChargeModel). Packs using the operators remain invalid under 0.1.0-draft: spec validate is untouched, the extended grammar is unreachable without the flag, and every evaluation carries a draft-prototype marker. Census-shaped equivalence fixtures prove the quantifier packs and their prepared-boolean twins yield identical dispositions. Two adversarial internal verifiers; both blockers and all majors fixed; 13 packages green. Material-decision impact: public-surface, documented-claim; review to be recorded on the pull request. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
… compiled-pointer cache, R5 equivalence fixtures, honest markers Finding 1 (major): units now track processing — pointers charge 1+len(path) to compile (reserved before the scan, cached per authored path) plus per-resolution token bytes; scalar operands charge token length. Regressions: a ~1MiB unresolved inner path over 60,000 elements is refused in 0.07s (unrefused and 8.8s under the old model); a 1,000-digit decimal charges elements x token-length delta. Findings 2-5: uniform's indeterminate-equality rows renamed amendment-* (the RFC's five clauses omit the case; spec amendment proposed separately), R5 prepared/quantifier fixtures added, four-diagnostic-codes and successful-payload wording fixed, duplication-invariance claim restricted to the condition value. Material-decision impact: public-surface, documented-claim; review recorded on the pull request. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cross-vendor adversarial review
Prompt (verbatim)Output (complete, unedited)Not sound as-is: no blocker-severity finding, but one major accounting defect and four minor issues. Findings
Confirmed soundThe current-root threading, empty-pointer behavior, strong three-valued combinations, pinned empty arrays, dominant-only short-circuiting, structural depth through wrappers, and Containment is also sound. Validation, MCP, and conformance-runner packages have no diff. Against a separately built
Dispositions
All |
…andidate jsonEqual is total: numeric equality decided by sign, significant digits, and arbitrary-precision exponent — never by materializing the value; the big.Rat indeterminable arm is gone (this also changes the non-quantifier experimental path shipped in 0.2.0: huge-token equals/in now decide; CHANGELOG'd). uniform is exactly the RFC's five clauses. Preflight now resolves fact pointers and prices selected runtime values (in: per candidate) and evidence-requirement ids — the third accounting candidate, each predecessor retired by a demonstrated attack. New regressions pin selected-value and requirement-id pricing; the formerly quadratic huge-token uniform case is linear and decided. Prompted by the cross-vendor review of the spec-side implementation- experience amendment, which reproduced a live prototype disagreement on 1e999999999 vs 2e999999999. Material-decision impact: public-surface, documented-claim; review recorded on the pull request. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…n pointer steps, ADR containment qualifier The verification pass measured a 92ms-vs-0.16ms permutation asymmetry: uniform's repeated representative comparisons did O(token x members) work under an O(token + members) charge. Fixed both ways — an order-independent (n-1) x max(valueUnits) reread term prices the pass, and values are canonicalized once so comparisons hit the identical- token short-circuit. Empty pointer tokens now charge per step. The reviewer's adversarial case is refused identically in both permutations. Material-decision impact: public-surface, documented-claim; review recorded on the pull request. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cross-vendor adversarial review — run 2 (verification of the post-spec-review repairs)
Prompt (verbatim)Output (complete, unedited)The repairs do not fully converge: one major and two minor findings remain. Findings
Verified
Dispositions — run 2
Context: the |
Material-decision impact: public-surface, documented-claim; review: see the
## Cross-vendor adversarial reviewcomment on this PRWhat this adds
A DRAFT-RFC PROTOTYPE of spec RFC 0008's
exists/every/uniform, reachable only viajudgment-pack experimental evaluate --rfc0008-quantifiers(ADR-0009, opened in this PR per the ADR process). Current-condition-root scoping, structural aggregate-depth-two enforcement, the RFC's pinned truth tables, and a byte-sensitive precharged work-accounting candidate. Containment verified by the cross-vendor review against a separately builtmain: without the flag, all three operators produce byte-identical refusals;spec validate, MCP, and the conformance runner have no diff. Packs using the operators remain invalid under 0.1.0-draft and every successful evaluation carries an explicit draft-prototype marker.What it proved
uniform's five clauses omit resolved-but-indeterminate equality; this runtime extends clause 4 and the spec-side amendment is proposed separately.The record
Cross-vendor review (OpenAI
gpt-5.6-sol) follows as a comment: one major (the accounting attack) and four minors, all accepted and implemented in2f4e064under the change-after-review exception (each linked per finding). Internal same-vendor verification before the cross-vendor pass: two adversarial verifiers, two blockers + four majors absorbed (disclosed for completeness, not regime-qualifying).🤖 Generated with Claude Code