Skip to content

feat: Z3 verification for bulk memory operations (#58)#66

Merged
avrabe merged 3 commits intomainfrom
feat/z3-bulk-memory-verification
Mar 28, 2026
Merged

feat: Z3 verification for bulk memory operations (#58)#66
avrabe merged 3 commits intomainfrom
feat/z3-bulk-memory-verification

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented Mar 28, 2026

Summary

Add Z3 SMT encoding for bulk memory operations introduced in PR #53:

Operation Z3 Encoding
MemoryFill Fresh unconstrained array (conservative)
MemoryCopy Fresh unconstrained array (conservative)
MemoryInit Fresh unconstrained array (conservative)
DataDrop No-op

Also adds multi-memory detection for bulk ops and FunctionSummary analysis.

Tests: 7 unit tests + 6 integration tests (38 total verification tests, up from 32).

Closes #58

Test plan

  • 378 tests pass (231 lib + 82 opt + 38 verify + others)
  • Clippy clean
  • CI

🤖 Generated with Claude Code

avrabe and others added 3 commits March 28, 2026 08:28
Reduce default iterations 10x (10000→1000 stress, 1000→100 fuzz) so CI
completes within timeout. Add LOOM_EMI_ITERATIONS env var override for
deeper local runs.

Closes #57

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Z3 SMT encoding for MemoryFill, MemoryCopy, MemoryInit, and DataDrop:
- MemoryFill/MemoryCopy/MemoryInit: create fresh unconstrained memory
  array (conservative — any address may have been written)
- DataDrop: no-op (no memory effect)
- Multi-memory bulk ops: conservatively skipped via has_multi_memory_ops

Add FunctionSummary analysis for bulk memory side effects.
Add 7 unit tests + 6 integration tests (38 total verification tests).

Closes #58

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@avrabe avrabe merged commit 00f1143 into main Mar 28, 2026
21 checks passed
@avrabe avrabe deleted the feat/z3-bulk-memory-verification branch March 28, 2026 11:04
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.

Z3 verification for bulk memory operations (MemoryFill/MemoryCopy/MemoryInit)

1 participant