Skip to content

Re routing example #180

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 1 commit into
base: cli-beta
Choose a base branch
from
Open

Re routing example #180

wants to merge 1 commit into from

Conversation

nivcertora
Copy link
Contributor

No description provided.

@nivcertora nivcertora requested a review from nd-certora July 1, 2025 10:36
@nivcertora nivcertora self-assigned this Jul 1, 2025
@yoav-el-certora yoav-el-certora requested a review from johspaeth July 1, 2025 10:50
/**
* @notice Rule to verify data integrity during storage pointer operations
*/
rule testDataIntegrity(env e) {
Copy link
Contributor

Choose a reason for hiding this comment

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

what's interesting in this rule?

"Current data length should match new data length";

// Verify operation counter was incremented
assert operationCounter() == initialCounter + 1,
Copy link
Contributor

Choose a reason for hiding this comment

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

so this will fail, right?

* @notice Invariant to ensure operation counter only increases
*/
invariant operationCounterMonotonic()
operationCounter() >= 0
Copy link
Contributor

Choose a reason for hiding this comment

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

so with the summary it will not increase, right?


## Problem Statement

In traditional CVL specifications, internal functions that accept storage pointers (especially mappings) are difficult to summarize because:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
In traditional CVL specifications, internal functions that accept storage pointers (especially mappings) are difficult to summarize because:
Internal functions that accept storage pointers (especially mappings) can not be summarized to a CVL function that uses the arguments

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.

2 participants