Skip to content

[Epic][TS PBT] Deliver PBT evidence followed by guided USVM search #345

Open
13 of 21 issues completed
Open

Description

@CaelmBleidd

Scope agreed on 2026-10-16

One concrete PBT generation phase is followed by one USVM search phase. No return to random generation is required. Concrete replay and optional shrinking validate a USVM candidate; they are not a second PBT generation phase. This replaces the previous repeated-round acceptance.

Agreed execution model

  1. Run concrete PBT once over the original declared property/support.
  2. Retain its bounded inputs, outcomes, requested observations and admitted source coverage.
  3. Run USVM over the original domain/precondition/property, using that fixed evidence to guide exploration.
  4. Validate USVM candidates by executing the complete original TypeScript oracle; reduce eligible witnesses without changing their target.

Single-input replay/shrinking is validation, not renewed random PBT generation. Empirical relations never become proved contracts. No second PBT round, public cross-round session, returned-input generation, round/revision framework or general scheduler platform is required.

Already in main

Property/domain definitions, fast-check execution, per-property coverage, exact supported c8 if-arm mapping (#409), original domain/precondition/property search (#387), original assertions/joint support (#407), bounded observations (#411), plain-object support (#473), and the Kotlin DSL (#499). Reuse this code.

Keep the implemented open PRs

Work PRs Role
Queue ordering and core coverage selector #538, #526 #526 is merged into main; #538 remains open with green CI. #524 consumes the merged core selector
One-way admitted edge guidance #524 Core two-phase coverage mechanism; original property remains searchable
Native confirmation and named checks #506, #541, #566 Automatic native DSL check identity is implemented in #566; #571 retains confirmed concrete faults before symbolic preparation
Controls, artifacts, CLI, scoped metadata #540, #542, #545, #548 Existing runner retained; #542/#545/#548 CI is repaired and green. #574 adds the public coverage-feedback mode
One-time numeric inference and binding #539, #543, #544, #580, #584, #590, #596 Entry and compiler-owned numeric local bindings are published; #610 keeps valid retained finite samples usable, and #611 checks auxiliary original replay receipts

The scoped path cache is published as #565 (1eaf7754361e) with green CI. Initial-report mapping without retained sessions is preserved in #569 (46fdda2ee within that composition PR), replacing the session-dependent local variant d67c06af5 for the product path. The original checked local commits remain recoverable, and the historical experiment checkout remains pinned and unchanged.

Outside the current project

#481 and PR #549 (cross-round retained property search), plus PR #547 (returned-input neighborhood generation), are outside this delivery. Their unmerged implementation remains recoverable and no required open PR depends on them. #400-#403 are not planned: native generator-choice search, a dedicated multi-execution engine, a command-model framework and context-scoped helper summaries are outside the agreed delivery. Ordinary multi-call properties, existing joint support and bounded same-receiver wrappers remain usable.

These closures do not claim that the old features were completed. Experimental evidence and commits remain recoverable; there is no need to delete unrelated merged engine infrastructure.

Dependency, review and measurement order

  1. Land the small useful changes. Review separately owned [Util] Fix cached priority ordering after insertion #538/[TS PBT] Guide original property search with admitted edge coverage #524 against their exact current parents; [TS] Reuse closest-to-uncovered NURS for external coverage #526 is already merged. The scoped mapping/cache fixes are published. This does not authorize selector-policy changes in this task. Review the replay/control stacks in their existing dependency order. Do not merge from an agent without the owner's separate request.
  2. Review the published public two-phase path. [TS PBT] Run two-phase campaigns with shared budgets and result artifacts #354/[TS PBT] Integrate one PBT evidence phase followed by guided USVM search #355 share one deadline and evidence artifact; [TS PBT] Confirm and shrink witnesses from two-phase property search #353 preserves automatic DSL check identity through native validation. No random PBT generation occurs after the handoff.
  3. Review separate real-program support and preserve its limits. [TS PBT] Preserve runtime limitation reasons in property-search results #555 runtime limitation reporting is published through [TS PBT] Preserve runtime limitation diagnostics in property search #560/[TS PBT] Retain residual unknown-call diagnostics in property results #608. [TS] Retain classes with supported constant computed member names jacodb#447 retains classes with supported constant computed names. [TS] Support array growth and sparse slots #388 owns sparse indexed growth. After each narrow fix, replay the previously frozen failing scenario; create further semantic work only from a remaining reproduction.
  4. Review the published one-time property-observation guidance. [TS PBT] Infer bounded numeric hypotheses once from PBT observations #397/[TS PBT] Bind one-time observed relations to exact symbolic challenges #398's bounded numeric relation/result binding and [TS PBT] Prioritize original-property, uncovered-edge and optional relation goals in one USVM phase #399's original/edge/relation allocation are published and composed in Compose published relation consumers with the public PBT campaign #602/Guide one USVM phase with bounded empirical relation challenges #603, with [TS PBT] Keep complete bounded samples usable for relation guidance #610/Account for checked auxiliary inputs in PBT experiments #611 usability and receipt checks. No repeated inference or cross-round invalidation is required.
  5. Validate and measure. [TS PBT][Checkpoint] Validate the two-phase handoff and assess its measured value #405 checks the one-way public handoff; [TS PBT] Prepare real and artificial benchmarks for the two-phase analysis #356/[TS PBT] Compare two-phase evidence-guided USVM with equal-budget controls #357 provide frozen real/artificial cases, equal total budgets, multiple predeclared seeds, checked per-class coverage and fault outcomes. Keep negative and unsupported results.
  6. Assess the research claim. [TS PBT][Research] Assess and report the two-phase property-guided analysis #404 compares nearest work and writes only claims supported by the measurements.

Historical implementation status: published consumer route (2026-10-16)

Current delivery and evidence status (2026-10-17)

The agreed one-PBT-then-USVM model remains unchanged. Path-selector work is owned separately; this update does not change its policy or tasks. No agent merged a pull request into main.

Published slice PRs Current boundary
Completed symbolic inputs and native evidence #579 Captures bounded successful and failing terminal inputs; raw symbolic failures do not count as confirmed faults or class coverage
Public experiment entry, frontend preflight and checked class replay #581, #583, #585, #586 Four original-property controls, fixed original class statement universe, original/scenario replay and saved receipts; frontend retention is not runtime support
Compact PBT input export and cooperative deadline #588, #594, #597 One original generation phase retains inputs/admission/outcomes and explicit omissions; the existing transport grace fits inside the caller deadline
Explicit larger export #607 (deebfbbbc) Default export 2 MiB / stdout 4 MiB are retained; an explicit export may request up to 64 MiB with matching private stdout allowance, still bounded by 100,000 records
Numeric local capture, binding, refutation and selection #580, #584, #590, #596 Retained compiler output supports a direct numeric local versus original numeric input; source hashes do not reconstruct compiler authority
Dependency composition and optional relation coordinator #602, #603 (44a3f85a5) Infer/select once, challenge each relation at most once, retain an unrestricted original allocation while no original fault is confirmed. A timely original fault stops the campaign and is exposed in canonical confirmation. UNKNOWN relevance needs explicit opt-in
Current engine/frontend and honest residual diagnostics #573, #578, #595, #599, #601, #608 Sparse writes/computed-member identity, declared-accessor safety and source-only gates are separate narrow changes. #608 retains unknown-call reason/callee/source for stopped and fresh-return residuals; a modeled call is not a limitation

#602 includes the previously published numeric stacks (+5015/-51 against its public-campaign parent); it is a composition review, not 5000 lines of newly added coordinator code. Its body lists the five semantic merge resolutions and the dependency review route. #603 is the separate coordinator diff. Review prerequisites and their exact heads first; leave merging to the owner.

Published implementation and remaining review / research

The core one-PBT -> USVM path is implemented in published open PRs. The installed-command publication and caller-deadline fixes are published as #614/#615/#616 under #354/#612/#613, with user-controlled review/merge still pending. Published implementation is not merged-main functionality and does not establish comparative benefit. No repeated-round/session/returned-input framework is required. Selector policy remains separately owned.

Completed actual-budget calibration

Local common assembly 7b184d2a57e01bfee37319d1be7a3a379de1c270 combines the exact published coverage route, current engine/frontend, #603 (44a3f85a5), #607 and #608. Installation and 38 focused integration tests passed. It is a local integration assembly, not merged main functionality.

The first 30-second calibration on original Adder/ring wrappers was ineligible: generic unsupported symbolic calls remained, and the 2 MiB export dropped 9340/10313 PBT inputs. Those receipts remain preserved; they are not erased by the later run.

A support-selected second calibration used real Mailbox FIFO and a separately named indexed-oracle ring wrapper whose source/native parity was checked on 6018 inputs. With 30-second total budgets, seed 37, a 1,000,000 generation quota independent of the capture bound, explicit 100,000-record / 64 MiB export, and charged preparation/native replay, all eight four-control cells completed with zero omissions and zero native mismatches; primary/full-budget eligibility passed. PBT-only retained 8870 and 14404 inputs, with checked class replay taking 1.730 s and 2.259 s. Total accounted time was 24.527 s and 25.715 s. Every mode covered 18/22 Mailbox statements and 11/12 ring statements: the coverage differences were zero.

This calibrates the measurement path for those two 30-second cases. It is one seed, no evidence of superiority, no 60-second capacity validation, and no full-budget relation comparison. Raw artifacts and regenerated CSV are retained locally as pbt-supported-budget-calibration-20261017; the completed development comparison below still does not establish publication-ready superiority.

Historical evidence before the current public assembly

The local 24-cell, one-seed coverage rerun completed with 5,511 checked observations and no native/domain mismatches. PGOrbit's guided 30-second coverage improved from 67 to 78/104; its 120-second coverage stayed 79/104 versus PBT's 102/104. Matrix/SegmentTree did not symbolically execute their selected class. This supports the mapping-performance fix, not a coverage-superiority claim or closure of the public integration tasks.

Activity

  1. changed the title [-][Epic][TS PBT] Integrate fast-check with symbolic execution[/-] [+][Epic][TS PBT] Integrate pluggable PBT engines with symbolic execution[/+] on Aug 22, 2026
  2. changed the title [-][Epic][TS PBT] Integrate pluggable PBT engines with symbolic execution[/-] [+][Epic][TS PBT] Build and evaluate a property-aware PBT–USVM feedback system[/+] on Sep 30, 2026
  3. changed the title [-][Epic][TS PBT] Build and evaluate a property-aware PBT–USVM feedback system[/-] [+][Epic][TS PBT] Deliver PBT evidence followed by guided USVM search[/+] on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions