Skip to content

HAssert aggregates - #418

Merged
0xGeorgii merged 1 commit into
mainfrom
355-hassert-aggregates
Aug 17, 2026
Merged

HAssert aggregates#418
0xGeorgii merged 1 commit into
mainfrom
355-hassert-aggregates

Conversation

@0xGeorgii

@0xGeorgii 0xGeorgii commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Closes #355

Confidence Score: 5/5

The PR appears safe to merge; no concrete changed-code defect remained after reviewing the aggregate, binder, codec, and Rocq contract paths.

The producer, shared IR and codec, Rocq printer and stub, and integration fixtures are updated consistently, with no reachable incorrect obligation or build failure established.

Important Files Changed

Filename Overview
core/wasm-codegen/src/hassert/translate.rs Implements aggregate leaf trees, access resolution, symbolic-index witnesses, quantifier alternation, diagnostics, and depth budgeting with extensive focused coverage.
core/hassert/src/ir.rs Adds the explicit universal-quantifier assertion node and its simplifying constructor.
core/hassert/src/codec.rs Adds the stable 0x0B universal-binder tag across validation, symbol collection, encoding, decoding, and depth-limit tests.
core/wasm-to-v/src/hassert_print.rs Prints universal assertion nodes as the verifier's transparent Hall definition and includes them during symbol traversal.
core/wasm-to-v/rocq-stub/wasm_verifier/Assertions.v Extends the vendored Rocq contract stub with the Hall definition used by generated obligations.
tests/src/rocq_typecheck.rs Expands end-to-end Rocq elaboration coverage for aggregate obligations and quantifier alternation.
tests/src/hassert_translation.rs Adds integration assertions for aggregate leaf ordering, indexing, comparisons, diagnostics, and binder structure.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A["Typed specification AST"] --> B["Aggregate shape and scalar-leaf translation"]
  B --> C["HAssert IR<br/>Ex / All / guards / terms"]
  C --> D["inference.hspecs v2 codec"]
  D --> E["wasm-to-v hassert printer"]
  E --> F["Rocq ValidSpec obligation"]
Loading

Reviews (1): Last reviewed commit: "HAssert aggregates" | Re-trigger Greptile

Context used (4)

@0xGeorgii 0xGeorgii self-assigned this Aug 16, 2026
@0xGeorgii 0xGeorgii added the rocq-translation wasm-to-v translation, hassert obligations, and the emitted .v contract label Aug 16, 2026
@codecov

codecov Bot commented Aug 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@0xGeorgii
0xGeorgii merged commit 4052f7a into main Aug 17, 2026
8 checks passed
@0xGeorgii
0xGeorgii deleted the 355-hassert-aggregates branch August 17, 2026 01:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rocq-translation wasm-to-v translation, hassert obligations, and the emitted .v contract

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hassert expressiveness: arrays, struct fields, memory, iteration, aggregate @ (lift P002/P004/P008)

1 participant