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

Investigate SMT timeout in test-arithmetictest-test_wmul_wdiv_inverse_underflow-uint256-uint256-0-spec.k #2314

Open
palinatolmach opened this issue Feb 27, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@palinatolmach
Copy link
Contributor

palinatolmach commented Feb 27, 2024

As identified in #2260, the kontrol/test-arithmetictest-test_wmul_wdiv_inverse_underflow-uint256-uint256-0-spec.k fails in the booster CI job consistently with the smt solver error, which the backend team recommended to interpret as an SMT timeout. It, indeed, stops failing if the SMT timeout (--smt-timeout) is increased to 1.6s. The solver transcripts are attached:
timeout-smtlib.kore.txt
timeout-smtlib.txt
timeout-term.txt

The query causing the timeout looks like this (by @PetarMax, from a Slack discussion):

B : supposed to represent 
    ( 115792089237316195423570985008687907853269984665640564039457584007913129639935 /Word ( ( a *Int b ) /Int 1000000000000000000 ) ) <Int 1000000000000000000
    but not encoded as such

Constraints:

(= false (and (not (= a 0 ) ) (< (div 115792089237316195423570985008687907853269984665640564039457584007913129639935 a ) b ) ) ) 
B
(= true (< 0 a ) ) 
(= true (< 0 b ) )
(= true (< CALLER_ID 1461501637330902918203684832716283019655932542976 ) )
(= true (< ORIGIN_ID 1461501637330902918203684832716283019655932542976 ) )
(= true (< a 115792089237316195423570985008687907853269984665640564039457584007913129639936 ) ) 
(= true (< b 115792089237316195423570985008687907853269984665640564039457584007913129639936 ) ) 
(= true (<= 0 CALLER_ID ) )
(= true (<= 0 NUMBER_CELL ) ) 
(= true (<= 0 ORIGIN_ID ) ) 
(= true (<= 0 a ) ) 
(= true (<= 0 b ) ) 
(= true (<= NUMBER_CELL 57896044618658097711785492504343953926634992332820282019728792003956564819967 ) ) 
(= true (<= b (div 115792089237316195423570985008687907853269984665640564039457584007913129639935 a ) ) ) 
(not (= 0 (div (* a b ) 1000000000000000000 ) ) ) 
(not (= a 0 ) ) ) ) ) ) ) ) ) ) )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants