Repository navigation
[TS PBT] Refute compiler-owned local relations and replay full original properties - #590
Open
CaelmBleidd wants to merge 1 commit into
Conversation
This was referenced Oct 16, 2026
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.
PBT can now challenge a sampled numeric relation immediately after one compiler-owned local result is stored.
UsvmDslNumericLocalRefuter.refute(compiled, mapping, concreteCapability, inference, relation)searches the declared domain and original admission with the relation negated at that exact store; it does not negate the original property or execute its suffix symbolically for this auxiliary query.refutation.captureWitness()uses the existing native confirmation and shrinking coordinator. The declared compiler callback compares the computed result with the original numeric input snapshot. The complete original property still runs, and an original failure takes priority over a matched hypothesis refutation. Missing, wrong, repeated or nonnumeric receipts cannot confirm the target; the public witness hook cannot impersonate this callback.The entry and local consumers share their existing machine lifecycle, projection and outcome classification internally. Their before-predicate and after-store triggers remain explicit.
UsvmRelationRefutationStatusreplaces the entry-only enum name; one Kotlin typealias preserves its source spelling, not JVM binary compatibility. Mixed admission followed by an exhausted local query reportsNO_REFUTATION_REACHED, rather than treating a single rejected input as global rejection. Entry mapping consumers now reuse the canonical positional input-binding check as well.Review scope
12 files, +928/-196: production +566/-196 and tests +362. Most removed lines are the entry lifecycle moved into the shared internal runner. The base branch pins #576 plus #584 (including its #580 dependency and canonical input-binding fix), at
7069bca714a020083c998e7c64c53f0b7836644e.This delivers the explicit numeric result consumer for #398. Shared campaign deadline, cancellation and allocation belong to #399. Retained source hashes and compiler transport keep executable-build status
UNVERIFIED; this does not establish transitive executable equivalence.Validation
No experiment or benchmark campaign was run.