Skip to content
This repository was archived by the owner on Aug 20, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions libexec/klab-prove
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ timeout "$TIMEOUT" "$KLAB_EVMS_PATH/deps/k/k-distribution/target/release/k/bin/k
--smt_prelude "$KLAB_OUT/prelude.smt2" \
--concrete-rules "$(join_by , ${concrete_rules[@]})" \
--z3-tactic "(or-else (using-params smt :random-seed 3) (using-params smt :random-seed 2) (using-params smt :random-seed 1))" \
--deterministic-functions \
"$target_spec" >"$STDOUT" 2>"$STDERR" & kprove_child=$!
wait "$kprove_child"
result=$?
Expand Down
4 changes: 0 additions & 4 deletions resources/rules.k.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -315,10 +315,6 @@ rule ACCTCODE in SetItem( 1 )
rule #if C #then (#if C #then B1 #else B2 #fi) -Int D #else (#if C #then B3 #else B4 #fi) -Int E #fi =>
#if C #then B1 -Int D #else B4 -Int E #fi

// avoid nested #ifte
rule #if C1 #then A #else (B +Int #if C2 #then B2 #else B3 #fi) #fi =>
#if C1 #then A #else B #fi +Int #if (C2 andBool notBool C1) #then B2 #else 0 #fi +Int #if ((notBool C2) andBool (notBool C1)) #then B3 #else 0 #fi

//simplify trivial #ifs
rule #if C1 #then A #else B #fi => A
requires A ==K B
Expand Down