Skip to content

Read symbolic value at symbolic address #152

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

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open

Conversation

Stevengre
Copy link
Contributor

No description provided.

@Stevengre Stevengre requested a review from tothtamas28 June 24, 2025 10:39
@Stevengre Stevengre self-assigned this Jun 24, 2025
Stevengre and others added 4 commits June 25, 2025 10:44
…ing a boolean wrapper for symbolic writes. This update includes detailed explanations of termination control, reordering for optimization, and write consolidation strategies. Adjusted comments for clarity and improved documentation.
@Stevengre Stevengre changed the base branch from jh/sym-write-mem to master July 3, 2025 05:19
@Stevengre Stevengre changed the base branch from master to jh/sym-write-mem July 3, 2025 05:20
Base automatically changed from jh/sym-write-mem to master July 9, 2025 08:02
Comment on lines +33 to +34
rule pickFront(PICK, #WB(_, _, _, _, B:SparseBytes)) => pickFront(PICK, B)
// omit this condition to make it easy to simplify: requires 0 =/=Int I
Copy link
Contributor

Choose a reason for hiding this comment

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

This would require PICK <=Int I or NUM ==Int 0 I think.

Comment on lines +38 to +39
rule dropFront(DROP, #WB(FLAG, I, V, NUM, B:SparseBytes)) => #WB(FLAG, I -Int DROP, V, NUM, dropFront(DROP, B))
[simplification(45)]
Copy link
Contributor

Choose a reason for hiding this comment

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

Consider DROP > I. In that case, WriteBytes(I -Int DROP, ...) is .SparseBytes.

[simplification(45)]


syntax SparseBytes ::= SparseBytes ">>SparseBytes" Int [function, total]
Copy link
Contributor

Choose a reason for hiding this comment

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

Please document the intended semantics of this symbol.


syntax SparseBytes ::= SparseBytes ">>SparseBytes" Int [function, total]
// It's not correct, but just make this function total
rule B >>SparseBytes _ => B [concrete]
Copy link
Contributor

Choose a reason for hiding this comment

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

This looks dangerous, Why is this rule necessary?

rule B >>SparseBytes _ => B [concrete]
rule #WB(FLAG, I, V, NUM, B:SparseBytes) >>SparseBytes SHIFT => #WB(FLAG, I, (V &Int (2 ^Int (NUM *Int 8)) -Int 1) >>Int (SHIFT *Int 8), NUM, B >>SparseBytes SHIFT)
requires SHIFT >=Int 0 [simplification(45), preserves-definedness]
rule B:SparseBytes >>SparseBytes _ => B [simplification]
Copy link
Contributor

Choose a reason for hiding this comment

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

This also looks unsound.

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