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

Lemmas imported in one module are applied in others #442

Open
palinatolmach opened this issue Mar 13, 2024 · 0 comments
Open

Lemmas imported in one module are applied in others #442

palinatolmach opened this issue Mar 13, 2024 · 0 comments
Labels
investigation question Further information is requested

Comments

@palinatolmach
Copy link
Collaborator

For further investigation.

While working on #369, @PetarMax and I noticed that Optimism-specific lemmas that are imported in the PortalTest contract via

kontrol build --require lemmas.k --module-import PortalTest:PAUSABILITY-LEMMAS

are only being imported into PortalTest-VERIFICATION module:

module S2KtestZModPortalTest-VERIFICATION
    imports public S2KtestZModPortalTest-CONTRACT
    imports public PAUSABILITY-LEMMAS
endmodule

but it looks like they’re being used across all tests in Kontrol test suite. For example, AssumeTest.test_assume_false(uint256,uint256) is affected, with

<k>
   ( #addr [ ISZERO ]
   ~> #exec [ ISZERO ]
   ~> #pc [ ISZERO ] => CALL 0 645326474426547203313410069153905908525362434349 0 388 100 388 0
   ~> #pc [ CALL ] )
   ~> #execute
   ~> _CONTINUATION
</k>

getting rewritten to

<k>
   ( .K => CALL 0 645326474426547203313410069153905908525362434349 0 388 100 388 0
   ~> #pc [ CALL ] )
   ~> #execute
   ~> _CONTINUATION
</k>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
investigation question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants