Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assembly checking with aliasing #1615

Open
andres-erbsen opened this issue Jul 1, 2023 · 0 comments
Open

Assembly checking with aliasing #1615

andres-erbsen opened this issue Jul 1, 2023 · 0 comments

Comments

@andres-erbsen
Copy link
Contributor

0xADE1A1DE/CryptOpt#167

Currently, the assembly checker assumes all inputs and outputs are disjoint. But the functions we are checking are sometimes used with overlapping inputs and outputs, e.g. x = x^2.

  • arbitrary aliasing (array u64 xs px /\ array u64 ys py in separation logic), could be supported by resolving reads against either conjunct and keeping only the matching conjunct on writes
  • we could support equal-or-disjoint pointers by explicitly checking both cases. Or perhaps some encoding like seps (map (fun i => u64 xs[i] (px+8*i) /\ u64 ys[i] (px+8*i)) (range(len xs)) could do it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant