Skip to content

Memory Encoding#600

Draft
mira-alford wants to merge 51 commits intoUQ-PAC:mainfrom
mira-alford:main
Draft

Memory Encoding#600
mira-alford wants to merge 51 commits intoUQ-PAC:mainfrom
mira-alford:main

Conversation

@mira-alford
Copy link
Copy Markdown

Introduces the WIP memory encoding feature flag (--memory-encoding) which generates pre and post conditions for:
malloc, strlen, memset, memcpy, free and additional assertions for store/load to check for memory safety issues and better reason about allocations.

Also fixes some bugs I ran into getting this working:

  • quantifiers now take a nested list of lists of triggers instead of a list of triggers (maps correctly onto boogie triggers)
  • CIL visitor was erasing quantifier triggers
  • Hashes between BMapVar (needed for boogie IR) and Basil IR Variables differed, creating duplicate globals in IRToBoogie. Added an extra distinctness check based on variable name in addition to hash.

@mira-alford mira-alford requested a review from ailrst February 11, 2026 04:36
@mira-alford mira-alford marked this pull request as draft February 18, 2026 05:18
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