Skip to content

Add solver result interfaces - #123

Open
guanqin-123 wants to merge 11 commits into
SVF-tools:mainfrom
guanqin-123:TensorCE
Open

guanqin-123 wants to merge 11 commits into
SVF-tools:mainfrom
guanqin-123:TensorCE

Conversation

@guanqin-123

@guanqin-123 guanqin-123 commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor
  • In #14f31 (14f31de), previous constraint-export work focused on constraint expressions.
    This change exposes shared result interfaces to BaB and branching while retaining concrete dual results for CLIMB replay and tracing.

  • In #96056 (9605645), front-end support full actual per-token with finite-p membership. This change normalises radii and perturbation masks across wrappers and conversion.

  • In #7271e (7271ebe), finite-p bounds support for backend and BaB splits preserve the original input geometry. This change adds prefix caching and optional early stopping while separating forward proofs from backward certificates used for CLIMB replay.

  • In #b1e8b0b0 (b1e8b0b) CLIMB supports differential activation bounding constraint refinements.

  • In #75a8a99 (75a8a99) Fix multi-head attention bounding and \nu bounding in dual approach.

  • In #39b8feb (39b8feb) CLIMB now supports a full encoder-only model with multi-head attention components that includes CV and NLP models.

  • In #8d9d1 (8d9d128) CLIMB optimizes NLP task.

  • In #e2c88 (e2c88d3) Extend CLIMB with split-dependent refresh, core lifting/replay and frontier merge

Expose shared result interfaces to BaB and branching while retaining concrete dual results for CLIMB replay.
@codecov

codecov Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.61908% with 297 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.03%. Comparing base (4a7d3db) to head (e2c88d3).

Files with missing lines Patch % Lines
act/pipeline/verification/torch2act.py 83.66% 41 Missing ⚠️
act/back_end/solver/solver_dual.py 85.88% 35 Missing ⚠️
act/pipeline/verification/utils.py 54.66% 34 Missing ⚠️
act/pipeline/verification/instance.py 47.05% 27 Missing ⚠️
act/back_end/bab/bab.py 87.64% 21 Missing ⚠️
act/back_end/bab/branching/branching.py 78.40% 19 Missing ⚠️
act/back_end/bab/climb.py 95.90% 15 Missing ⚠️
act/back_end/dual_tf/tf_transformer.py 92.89% 14 Missing ⚠️
act/back_end/dual_tf/tf_forward.py 95.26% 8 Missing ⚠️
act/back_end/interval_tf/tf_transformer.py 84.31% 8 Missing ⚠️
... and 19 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #123      +/-   ##
==========================================
+ Coverage   77.61%   82.03%   +4.41%     
==========================================
  Files          95      100       +5     
  Lines       23007    24842    +1835     
==========================================
+ Hits        17858    20380    +2522     
+ Misses       5149     4462     -687     
Flag Coverage Δ
bab 55.29% <65.76%> (+8.20%) ⬆️
backend-float32 55.84% <43.77%> (+5.56%) ⬆️
backend-float64 57.44% <43.77%> (+5.44%) ⬆️
frontend 37.44% <38.94%> (+6.53%) ⬆️
pipeline-fuzz 20.04% <13.17%> (-0.28%) ⬇️
pipeline-verify 42.29% <27.51%> (-1.36%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
act/back_end/bab/node.py 99.45% <100.00%> (+32.93%) ⬆️
act/back_end/cons_exportor.py 54.84% <100.00%> (-1.95%) ⬇️
act/back_end/core.py 97.47% <100.00%> (+0.30%) ⬆️
act/back_end/dual_tf/__init__.py 100.00% <100.00%> (ø)
act/back_end/dual_tf/dual_tf.py 96.18% <100.00%> (+1.18%) ⬆️
act/back_end/dual_tf/tf_smooth.py 97.44% <100.00%> (+0.94%) ⬆️
act/back_end/hybridz_tf/tf_transformer.py 91.22% <100.00%> (+12.61%) ⬆️
act/back_end/interval_tf/tf_attention.py 63.23% <100.00%> (-0.33%) ⬇️
act/back_end/layer_schema.py 90.47% <ø> (ø)
act/back_end/net_factory.py 88.73% <100.00%> (+0.59%) ⬆️
... and 37 more

... and 6 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 4a7d3db...e2c88d3. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Canonicalize shared norms, scalar or per-sample radii, and token selections while preserving creator-facing indices. Check actual finite-p membership and share the INPUT_SPEC parameter layout between validation and emission.

Emit the existing embedding-width metadata and declare it in the schema so current dual bounds retain independent token-ball geometry after flattening.
Add C2 projection, Conv1d, division and square paths with compact token-wise dense bounds.

Preserve symbolic smooth and bilinear composition, optimize MATMUL alpha state, and align reconstruction semantics.
Align native and selected ONNX tensor operations with verifier lanes and fixed model shapes.

Preserve ordered graph operands and recursive JSON metadata with v2 compatibility.

Extend the existing smoke checks for conversion, LP witnesses, and serialization.
Unify instance loading, disjunct aggregation, and exact-Net export across CLI and runner.

Add strict compact checkpoints, equivalent conversion routes, and indexed text queries. Centralize creator construction and use module smoke checks instead of inline CI fixtures.

Add BaB budget and CLIMB controls while preserving search time and certificate replay.
Install the existing Transformers dependency in BaB CI and keep workflow and local dependency declarations on Transformers 4. Preserve the compact tokenizer and numerical smoke assertions.
…erge

Share one strict closed-unsafe boundary across interval, dual, BaB and replay checks; LINEAR_LE and RANGE keep legal equality. The dual CLI cascade now runs UNSAFE_LINEAR properties instead of skipping them.

Add bound_refresh as the single interval and linear refresh owner, using original input geometry and an interval fallback for unsupported graphs. CLIMB accepts split_refresh and split_refresh_linear by replaying retained cores from the required split-free reference with raw backward proofs.

Add exact packed core operations. Frontier merging with cold rebound, one-shot complement bounding, score-only steering and the pre-split propagation gate are explicit flags; existing preset defaults are unchanged. Extend the existing BaB and backend CLI smoke checks.
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