Skip to content

autosetup: add curated summaries for OZ Arrays, EIP-712 hashing, camelCase extSload - #103

Merged
jar-ben merged 3 commits into
masterfrom
jaroslav/autosetup-curated-universal-summaries
Jul 27, 2026
Merged

autosetup: add curated summaries for OZ Arrays, EIP-712 hashing, camelCase extSload#103
jar-ben merged 3 commits into
masterfrom
jaroslav/autosetup-curated-universal-summaries

Conversation

@jar-ben

@jar-ben jar-ben commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

These library functions use inline assembly (raw mload / keccak) that the
points-to analysis can't scalarize, so autosetup-generated setups that reach them
hit PTA failures and downstream blow-ups. Curated, human-reviewed CVL summaries
give sound, reusable replacements — the same mechanism as the existing
OZ_SafeERC20 / OZ_Math entries.

Changes

  • OZ_Arrays.spec (new) + registry oz_arrays_unsafeMemoryAccess: models Arrays.unsafeMemoryAccess as arr[pos] for the uint256[]/bytes32[]/address[] overloads.
  • EIP712.spec (new) + registry eip712_hashTypedData: deterministic, injective uninterpreted function for solady _hashTypedData / OZ _hashTypedDataV4; injectivity via a single-quantifier left-inverse ghost.
  • extload.template.spec + registry extload names: add camelCase extSload/extSloads alongside the existing lowercase extsload/exttload.

Validation

Both new CVL forms were run through certoraRun.py against a real protocol scene (via-IR off): they typecheck and attach (the Arrays.unsafeMemoryAccess and _hashTypedData PTA warnings clear). function_summaries.json parses; no AutoProver-local test asserts a registry entry-count, and the OZ-Math summary tests still pass.

Dependencies & follow-ups

  • Stacked on the via_ir PR (jaroslav/autosetup-no-inherit-via-ir). The curated internal summaries only attach with viaIR off, so that PR must land first.

@jar-ben
jar-ben requested a review from naftali-g July 26, 2026 06:04
Base automatically changed from jaroslav/autosetup-no-inherit-via-ir to master July 27, 2026 09:47
@jar-ben
jar-ben merged commit 421c2a3 into master Jul 27, 2026
2 checks passed
@jar-ben
jar-ben deleted the jaroslav/autosetup-curated-universal-summaries branch July 27, 2026 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants