Skip to content

Add not, fix partial writes, parser corrections#73

Merged
protz merged 1 commit intoAeneasVerif:mainfrom
miriampolzer:parser_and_store_fix
Apr 15, 2026
Merged

Add not, fix partial writes, parser corrections#73
protz merged 1 commit intoAeneasVerif:mainfrom
miriampolzer:parser_and_store_fix

Conversation

@miriampolzer
Copy link
Copy Markdown
Collaborator

This is an unchanged copy of the part of #65 that fixed tests. Locally, they are all passing for me now, but as mentioned in the PR there will probably still be some failures in the CI / on other architectures regarding flags that are undefined after the test.

@protz are you happy with these as they are, or would like me to do some changes before merging?

@miriampolzer miriampolzer requested a review from protz April 15, 2026 04:53
@protz protz merged commit 54a6384 into AeneasVerif:main Apr 15, 2026
2 checks passed
Comment thread Kraken/Semantics.lean
ret { s with dmem := s.dmem.insert (.ofBitVec addr) (.ofBitVec (old.toBitVec.replaceLow v)) }
| .none =>
if h: w = .W64 then
-- We know how to perform full writes even though there is not previous
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This differs from bedrock2 semantics. In bedrock2, None means that this address is unmapped and writing to it is forbidden. @andres-erbsen do you want to change this?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(and btw, disagreement over this could be an indicator that we should abstract over it, so that each user can pick the store semantics they prefer, so I shamelessly use this an opportunity to campaign for #60 / #72 😉)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then we'd need three cases, to express known value / unknown value / forbidden address?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In bedrock2, we don't have a third case for "unknown value", and instead use universal quantification.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reverted this part of the change and made some adaptions to the test instead, see #76

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.

3 participants