-
Notifications
You must be signed in to change notification settings - Fork 3
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
Support providing different overrides to the original vs. patched target #392
Comments
From @danmatichuk
Proposed next steps
Conclusion: 7/8/24
|
From @danmatichuk Currently between step 1 and Step 2. Cannot carry domain information from step 1 into step2. There's step missing that we need to address. At the point we have a non-trivial equivalence domain with pointer that cannot be re-scoped, we can try to assume particular concrete value for link register.
Alternatively, change stub definition to ignore the buffer that we give it. Hardcode some global value and use that in the stubs to ignore the buffer. Dan decided this is the easiest step to take first. Update 7/10/24:
|
From @danmatichuk The verifier now identifies a potential difference in memory but it's not observable, it's trying to put this in the equivalence domain. However, it cannot properly rescope that variable. However, because the difference isn't observable, it doesn't trigger the mechanism to prompt the user for an assertion. Without the assertion we get an error/warning about how the verifier needed to introduce unsoundness to continue. Without adding equivalence condition, we quickly run into memory separation issues (see #419). We could manually add an assertion (i.e. add an equivalence condition as an assumption) needed to bypass this issue. However, writing consumer stub first likely enables us to leverage infrastructure that lets user add assertions (i.e. add an equivalence condition as an assumption). Next step: Add consumer stub that introduces observable event that checks for size mismatch.
|
From @danmatichuk: Added stub/spec that introduced pre-condition that we needed to prove. PR #409 closes this ticket. This example illustrates there's only so far we can get in trying to infer specifications. In the future, we could introduce more general pattern where user somehow provides functional specification. |
The text was updated successfully, but these errors were encountered: