Closed ehildenb closed 4 years ago
This is blocking an update to KWasm to switch to Bytes type, which is blocking an update to Polkadot repository to take advantage of faster KWasm. Otherwise everything is working fine with the update, except this simple proof.
I've minified the example even further to really focus on the exact problem.
I figured it out. I needed simplification lemmas about the lower bound 0 <=Int VAL1 +Int VAL2
and 0 <=Int VAL <<Int SHIFT
as well as the ones for upper bounds.
I believe this proof should pass, but it doesn't seem to.
File
data.k
(kompile --backend haskell --main-module WASM-DATA --syntax-module WASM-DATA data.k
:And the accompanying proof file (
functions-spec.k
):Running
kprove --directory ./.build/defn/haskell tests/proofs/functions-spec.k --format-failures --def-module FUNCTIONS-LEMMAS
produces output:But simplifying the term is pretty straightforward to do using the
simplification
rules provided.I've attached the kore files produced by
kprove --debug
, and in this tarball (named atxt
file for GitHub) I have added the filecommand
whichkprove --verbose
outputs (so you can runkore-exec
directly).functions-proof.tar.txt