Commit 942c52dc authored by Mathias Preiner's avatar Mathias Preiner
Browse files

Fix Barrett benchmarks and move to UFDTNIA.

parent c8315233
(set-info :smt-lib-version 2.6)
(set-logic UFDTLIA)
(set-logic UFDTNIA)
(set-info :source |
From the test suite for the Move Prover, a verifier for smart contracts in the
......@@ -106,11 +106,11 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
(assert (= (|l#$ValueArray| $EmptyValueArray) 0))
(assert (= (|v#$ValueArray| $EmptyValueArray) ($MapConstValue $Error)))
(assert (= $StratificationDepth 4))
(assert (forall ((v1 T@$Value) (v2 T@$Value) ) (! (= ($IsEqual_stratified v1 v2) (or (= v1 v2) (and (and (and (is-$Vector v1) (is-$Vector v2)) (= (|l#$ValueArray| (|v#$Vector| v1)) (|l#$ValueArray| (|v#$Vector| v2)))) (forall ((i Int) ) (=> (and (<= 0 i) (< i (|l#$ValueArray| (|v#$Vector| v1)))) ($IsEqual_level1 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1)) i) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2)) i))))))) :pattern ( ($IsEqual_stratified v1 v2))
(assert (forall ((v1 T@$Value) (v2 T@$Value) ) (! (= ($IsEqual_stratified v1 v2) (or (= v1 v2) (and (and (and ((_ is $Vector) v1) ((_ is $Vector) v2)) (= (|l#$ValueArray| (|v#$Vector| v1)) (|l#$ValueArray| (|v#$Vector| v2)))) (forall ((i Int) ) (=> (and (<= 0 i) (< i (|l#$ValueArray| (|v#$Vector| v1)))) ($IsEqual_level1 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1)) i) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2)) i))))))) :pattern ( ($IsEqual_stratified v1 v2))
)))
(assert (forall ((v1@@0 T@$Value) (v2@@0 T@$Value) ) (! (= ($IsEqual_level1 v1@@0 v2@@0) (or (= v1@@0 v2@@0) (and (and (and (is-$Vector v1@@0) (is-$Vector v2@@0)) (= (|l#$ValueArray| (|v#$Vector| v1@@0)) (|l#$ValueArray| (|v#$Vector| v2@@0)))) (forall ((i@@0 Int) ) (=> (and (<= 0 i@@0) (< i@@0 (|l#$ValueArray| (|v#$Vector| v1@@0)))) ($IsEqual_level2 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@0)) i@@0) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@0)) i@@0))))))) :pattern ( ($IsEqual_level1 v1@@0 v2@@0))
(assert (forall ((v1@@0 T@$Value) (v2@@0 T@$Value) ) (! (= ($IsEqual_level1 v1@@0 v2@@0) (or (= v1@@0 v2@@0) (and (and (and ((_ is $Vector) v1@@0) ((_ is $Vector) v2@@0)) (= (|l#$ValueArray| (|v#$Vector| v1@@0)) (|l#$ValueArray| (|v#$Vector| v2@@0)))) (forall ((i@@0 Int) ) (=> (and (<= 0 i@@0) (< i@@0 (|l#$ValueArray| (|v#$Vector| v1@@0)))) ($IsEqual_level2 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@0)) i@@0) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@0)) i@@0))))))) :pattern ( ($IsEqual_level1 v1@@0 v2@@0))
)))
(assert (forall ((v1@@1 T@$Value) (v2@@1 T@$Value) ) (! (= ($IsEqual_level2 v1@@1 v2@@1) (or (= v1@@1 v2@@1) (and (and (and (is-$Vector v1@@1) (is-$Vector v2@@1)) (= (|l#$ValueArray| (|v#$Vector| v1@@1)) (|l#$ValueArray| (|v#$Vector| v2@@1)))) (forall ((i@@1 Int) ) (=> (and (<= 0 i@@1) (< i@@1 (|l#$ValueArray| (|v#$Vector| v1@@1)))) (= (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@1)) i@@1) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@1)) i@@1))))))) :pattern ( ($IsEqual_level2 v1@@1 v2@@1))
(assert (forall ((v1@@1 T@$Value) (v2@@1 T@$Value) ) (! (= ($IsEqual_level2 v1@@1 v2@@1) (or (= v1@@1 v2@@1) (and (and (and ((_ is $Vector) v1@@1) ((_ is $Vector) v2@@1)) (= (|l#$ValueArray| (|v#$Vector| v1@@1)) (|l#$ValueArray| (|v#$Vector| v2@@1)))) (forall ((i@@1 Int) ) (=> (and (<= 0 i@@1) (< i@@1 (|l#$ValueArray| (|v#$Vector| v1@@1)))) (= (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@1)) i@@1) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@1)) i@@1))))))) :pattern ( ($IsEqual_level2 v1@@1 v2@@1))
)))
(assert (forall ((p T@$Path) (v T@$Value) ) (! (= ($ReadValue_stratified p v) (ite (= 0 (|size#$Path| p)) v ($ReadValue_level1 p (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v)) (|Select_[$int]$int| (|p#$Path| p) 0))))) :pattern ( ($ReadValue_stratified p v))
)))
......@@ -168,46 +168,46 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
)))
(assert (forall ((ta@@5 T@$TypeValue) (v@@10 T@$Value) (i@@4 T@$Value) (j T@$Value) ) (! (= ($Vector_$swap ta@@5 v@@10 i@@4 j) ($Vector ($ValueArray (|Store_[$int]$Value| (|Store_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| i@@4) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| j))) (|i#$Integer| j) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| i@@4))) (|l#$ValueArray| (|v#$Vector| v@@10))))) :pattern ( ($Vector_$swap ta@@5 v@@10 i@@4 j))
)))
(assert (forall ((v1@@2 T@$Value) (v2@@2 T@$Value) ) (=> (and (and (and (is-$Vector v1@@2) (let ((va (|v#$Vector| v1@@2)))
(assert (forall ((v1@@2 T@$Value) (v2@@2 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@2) (let ((va (|v#$Vector| v1@@2)))
(let ((l (|l#$ValueArray| va)))
(and (and (<= 0 l) (<= l $MAX_U64)) (forall ((x Int) ) (! (=> (or (< x 0) (>= x l)) (= (|Select_[$int]$Value| (|v#$ValueArray| va) x) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va) x))
)))))) (and (is-$Vector v2@@2) (let ((va@@0 (|v#$Vector| v2@@2)))
)))))) (and ((_ is $Vector) v2@@2) (let ((va@@0 (|v#$Vector| v2@@2)))
(let ((l@@0 (|l#$ValueArray| va@@0)))
(and (and (<= 0 l@@0) (<= l@@0 $MAX_U64)) (forall ((x@@0 Int) ) (! (=> (or (< x@@0 0) (>= x@@0 l@@0)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@0) x@@0) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@0) x@@0))
))))))) ($IsEqual_stratified v1@@2 v2@@2)) ($IsEqual_stratified ($Hash_sha2_core v1@@2) ($Hash_sha2_core v2@@2)))))
(assert (forall ((v1@@3 T@$Value) (v2@@3 T@$Value) ) (=> (and (and (and (is-$Vector v1@@3) (let ((va@@1 (|v#$Vector| v1@@3)))
(assert (forall ((v1@@3 T@$Value) (v2@@3 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@3) (let ((va@@1 (|v#$Vector| v1@@3)))
(let ((l@@1 (|l#$ValueArray| va@@1)))
(and (and (<= 0 l@@1) (<= l@@1 $MAX_U64)) (forall ((x@@1 Int) ) (! (=> (or (< x@@1 0) (>= x@@1 l@@1)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@1) x@@1) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@1) x@@1))
)))))) (and (is-$Vector v2@@3) (let ((va@@2 (|v#$Vector| v2@@3)))
)))))) (and ((_ is $Vector) v2@@3) (let ((va@@2 (|v#$Vector| v2@@3)))
(let ((l@@2 (|l#$ValueArray| va@@2)))
(and (and (<= 0 l@@2) (<= l@@2 $MAX_U64)) (forall ((x@@2 Int) ) (! (=> (or (< x@@2 0) (>= x@@2 l@@2)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@2) x@@2) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@2) x@@2))
))))))) ($IsEqual_stratified ($Hash_sha2_core v1@@3) ($Hash_sha2_core v2@@3))) ($IsEqual_stratified v1@@3 v2@@3))))
(assert (forall ((v1@@4 T@$Value) (v2@@4 T@$Value) ) (=> (and (and (and (is-$Vector v1@@4) (let ((va@@3 (|v#$Vector| v1@@4)))
(assert (forall ((v1@@4 T@$Value) (v2@@4 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@4) (let ((va@@3 (|v#$Vector| v1@@4)))
(let ((l@@3 (|l#$ValueArray| va@@3)))
(and (and (<= 0 l@@3) (<= l@@3 $MAX_U64)) (forall ((x@@3 Int) ) (! (=> (or (< x@@3 0) (>= x@@3 l@@3)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@3) x@@3) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@3) x@@3))
)))))) (and (is-$Vector v2@@4) (let ((va@@4 (|v#$Vector| v2@@4)))
)))))) (and ((_ is $Vector) v2@@4) (let ((va@@4 (|v#$Vector| v2@@4)))
(let ((l@@4 (|l#$ValueArray| va@@4)))
(and (and (<= 0 l@@4) (<= l@@4 $MAX_U64)) (forall ((x@@4 Int) ) (! (=> (or (< x@@4 0) (>= x@@4 l@@4)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@4) x@@4) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@4) x@@4))
))))))) ($IsEqual_stratified v1@@4 v2@@4)) ($IsEqual_stratified ($Hash_sha3_core v1@@4) ($Hash_sha3_core v2@@4)))))
(assert (forall ((v1@@5 T@$Value) (v2@@5 T@$Value) ) (=> (and (and (and (is-$Vector v1@@5) (let ((va@@5 (|v#$Vector| v1@@5)))
(assert (forall ((v1@@5 T@$Value) (v2@@5 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@5) (let ((va@@5 (|v#$Vector| v1@@5)))
(let ((l@@5 (|l#$ValueArray| va@@5)))
(and (and (<= 0 l@@5) (<= l@@5 $MAX_U64)) (forall ((x@@5 Int) ) (! (=> (or (< x@@5 0) (>= x@@5 l@@5)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@5) x@@5) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@5) x@@5))
)))))) (and (is-$Vector v2@@5) (let ((va@@6 (|v#$Vector| v2@@5)))
)))))) (and ((_ is $Vector) v2@@5) (let ((va@@6 (|v#$Vector| v2@@5)))
(let ((l@@6 (|l#$ValueArray| va@@6)))
(and (and (<= 0 l@@6) (<= l@@6 $MAX_U64)) (forall ((x@@6 Int) ) (! (=> (or (< x@@6 0) (>= x@@6 l@@6)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@6) x@@6) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@6) x@@6))
))))))) ($IsEqual_stratified ($Hash_sha3_core v1@@5) ($Hash_sha3_core v2@@5))) ($IsEqual_stratified v1@@5 v2@@5))))
(assert (forall ((public_key T@$Value) ) (is-$Boolean ($Signature_$ed25519_validate_pubkey public_key))))
(assert (forall ((signature T@$Value) (public_key@@0 T@$Value) (message T@$Value) ) (is-$Boolean ($Signature_$ed25519_verify signature public_key@@0 message))))
(assert (forall ((public_key T@$Value) ) ((_ is $Boolean) ($Signature_$ed25519_validate_pubkey public_key))))
(assert (forall ((signature T@$Value) (public_key@@0 T@$Value) (message T@$Value) ) ((_ is $Boolean) ($Signature_$ed25519_verify signature public_key@@0 message))))
(assert (forall ((v1@@6 T@$Value) (v2@@6 T@$Value) ) (=> ($IsEqual_stratified v1@@6 v2@@6) (= ($BCS_serialize_core v1@@6) ($BCS_serialize_core v2@@6)))))
(assert (forall ((v@@11 T@$Value) ) (= ($BCS_serialize_core_inv ($BCS_serialize_core v@@11)) v@@11)))
(assert (forall ((v@@12 T@$Value) ) (let ((r ($BCS_serialize_core v@@12)))
(and (and (and (is-$Vector r) (let ((va@@7 (|v#$Vector| r)))
(and (and (and ((_ is $Vector) r) (let ((va@@7 (|v#$Vector| r)))
(let ((l@@7 (|l#$ValueArray| va@@7)))
(and (and (<= 0 l@@7) (<= l@@7 $MAX_U64)) (forall ((x@@7 Int) ) (! (=> (or (< x@@7 0) (>= x@@7 l@@7)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@7) x@@7) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@7) x@@7))
)))))) (forall ((i@@5 Int) ) (! (=> (and (<= 0 i@@5) (< i@@5 (|l#$ValueArray| (|v#$Vector| r)))) (and (and (is-$Integer (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) $MAX_U8))) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5))
)))))) (forall ((i@@5 Int) ) (! (=> (and (<= 0 i@@5) (< i@@5 (|l#$ValueArray| (|v#$Vector| r)))) (and (and ((_ is $Integer) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) $MAX_U8))) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5))
))) (> (|l#$ValueArray| (|v#$Vector| r)) 0)))))
(assert (forall ((v@@13 T@$Value) ) (let ((r@@0 ($BCS_serialize_core v@@13)))
(=> (is-$Address v@@13) (= (|l#$ValueArray| (|v#$Vector| r@@0)) $serialized_address_len)))))
(=> ((_ is $Address) v@@13) (= (|l#$ValueArray| (|v#$Vector| r@@0)) $serialized_address_len)))))
(assert (forall ((i@@6 Int) (|l#0| Int) (|l#1| Int) (|l#2| |T@[Int]$Value|) (|l#3| T@$Value) ) (! (= (|Select_[$int]$Value| (|lambda#0| |l#0| |l#1| |l#2| |l#3|) i@@6) (ite (and (>= i@@6 |l#0|) (< i@@6 |l#1|)) (|Select_[$int]$Value| |l#2| i@@6) |l#3|)) :pattern ( (|Select_[$int]$Value| (|lambda#0| |l#0| |l#1| |l#2| |l#3|) i@@6))
)))
(assert (forall ((j@@0 Int) (|l#0@@0| Int) (|l#1@@0| Int) (|l#2@@0| Int) (|l#3@@0| |T@[Int]$Value|) (|l#4| |T@[Int]$Value|) (|l#5| Int) (|l#6| T@$Value) ) (! (= (|Select_[$int]$Value| (|lambda#1| |l#0@@0| |l#1@@0| |l#2@@0| |l#3@@0| |l#4| |l#5| |l#6|) j@@0) (ite (and (>= j@@0 |l#0@@0|) (< j@@0 |l#1@@0|)) (ite (< j@@0 |l#2@@0|) (|Select_[$int]$Value| |l#3@@0| j@@0) (|Select_[$int]$Value| |l#4| (+ j@@0 |l#5|))) |l#6|)) :pattern ( (|Select_[$int]$Value| (|lambda#1| |l#0@@0| |l#1@@0| |l#2@@0| |l#3@@0| |l#4| |l#5| |l#6|) j@@0))
......@@ -243,7 +243,7 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
(let ((inline$$TestCast_aborting_u64_cast_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 10858) 10959)) inline$$CastU64$0$Entry_correct)))
(let ((inline$$TestCast_aborting_u64_cast_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 11089) 10959) inline$$CastU64$0$Entry_correct)))
(let ((inline$$TestCast_aborting_u64_cast_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 10852) 11089) inline$$TestCast_aborting_u64_cast_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 10852) 10858) inline$$TestCast_aborting_u64_cast_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct (=> (and (and (and (is-$Integer x@@8) (>= (|i#$Integer| x@@8) 0)) (<= (|i#$Integer| x@@8) $MAX_U128)) (= (ControlFlow 0 10683) 10852)) inline$$TestCast_aborting_u64_cast_$def_verify$0$anon0_correct)))
(let ((anon0_correct (=> (and (and (and ((_ is $Integer) x@@8) (>= (|i#$Integer| x@@8) 0)) (<= (|i#$Integer| x@@8) $MAX_U128)) (= (ControlFlow 0 10683) 10852)) inline$$TestCast_aborting_u64_cast_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct (=> (= (ControlFlow 0 14487) 10683) anon0_correct)))
PreconditionGeneratedEntry_correct)))))))))))))))))))
))
......@@ -272,7 +272,7 @@ PreconditionGeneratedEntry_correct)))))))))))))))))))
(let ((inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 11358) 11459)) inline$$CastU64$0$Entry_correct@@0)))
(let ((inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 11589) 11459) inline$$CastU64$0$Entry_correct@@0)))
(let ((inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 11352) 11589) inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 11352) 11358) inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct@@0 (=> (and (and (and (is-$Integer x@@9) (>= (|i#$Integer| x@@9) 0)) (<= (|i#$Integer| x@@9) $MAX_U128)) (= (ControlFlow 0 11183) 11352)) inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@0 (=> (and (and (and ((_ is $Integer) x@@9) (>= (|i#$Integer| x@@9) 0)) (<= (|i#$Integer| x@@9) $MAX_U128)) (= (ControlFlow 0 11183) 11352)) inline$$TestCast_aborting_u64_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct@@0 (=> (= (ControlFlow 0 14831) 11183) anon0_correct@@0)))
PreconditionGeneratedEntry_correct@@0)))))))))))))))))))
))
......@@ -301,7 +301,7 @@ PreconditionGeneratedEntry_correct@@0)))))))))))))))))))
(let ((inline$$TestCast_aborting_u8_cast_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 11858) 11959)) inline$$CastU8$0$Entry_correct)))
(let ((inline$$TestCast_aborting_u8_cast_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 12089) 11959) inline$$CastU8$0$Entry_correct)))
(let ((inline$$TestCast_aborting_u8_cast_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 11852) 12089) inline$$TestCast_aborting_u8_cast_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 11852) 11858) inline$$TestCast_aborting_u8_cast_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct@@1 (=> (and (and (and (is-$Integer x@@10) (>= (|i#$Integer| x@@10) 0)) (<= (|i#$Integer| x@@10) $MAX_U64)) (= (ControlFlow 0 11683) 11852)) inline$$TestCast_aborting_u8_cast_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@1 (=> (and (and (and ((_ is $Integer) x@@10) (>= (|i#$Integer| x@@10) 0)) (<= (|i#$Integer| x@@10) $MAX_U64)) (= (ControlFlow 0 11683) 11852)) inline$$TestCast_aborting_u8_cast_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct@@1 (=> (= (ControlFlow 0 15091) 11683) anon0_correct@@1)))
PreconditionGeneratedEntry_correct@@1)))))))))))))))))))
))
......@@ -330,7 +330,7 @@ PreconditionGeneratedEntry_correct@@1)))))))))))))))))))
(let ((inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 12358) 12459)) inline$$CastU8$0$Entry_correct@@0)))
(let ((inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 12589) 12459) inline$$CastU8$0$Entry_correct@@0)))
(let ((inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 12352) 12589) inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 12352) 12358) inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct@@2 (=> (and (and (and (is-$Integer x@@11) (>= (|i#$Integer| x@@11) 0)) (<= (|i#$Integer| x@@11) $MAX_U64)) (= (ControlFlow 0 12183) 12352)) inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@2 (=> (and (and (and ((_ is $Integer) x@@11) (>= (|i#$Integer| x@@11) 0)) (<= (|i#$Integer| x@@11) $MAX_U64)) (= (ControlFlow 0 12183) 12352)) inline$$TestCast_aborting_u8_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct@@2 (=> (= (ControlFlow 0 15389) 12183) anon0_correct@@2)))
PreconditionGeneratedEntry_correct@@2)))))))))))))))))))
))
......@@ -355,7 +355,7 @@ PreconditionGeneratedEntry_correct@@2)))))))))))))))))))
(let ((inline$$TestCast_u64_cast_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 12858) 12959)) inline$$CastU128$0$Entry_correct)))
(let ((inline$$TestCast_u64_cast_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 13089) 12959) inline$$CastU128$0$Entry_correct)))
(let ((inline$$TestCast_u64_cast_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 12852) 13089) inline$$TestCast_u64_cast_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 12852) 12858) inline$$TestCast_u64_cast_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct@@3 (=> (and (and (and (is-$Integer x@@12) (>= (|i#$Integer| x@@12) 0)) (<= (|i#$Integer| x@@12) $MAX_U64)) (= (ControlFlow 0 12683) 12852)) inline$$TestCast_u64_cast_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@3 (=> (and (and (and ((_ is $Integer) x@@12) (>= (|i#$Integer| x@@12) 0)) (<= (|i#$Integer| x@@12) $MAX_U64)) (= (ControlFlow 0 12683) 12852)) inline$$TestCast_u64_cast_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct@@3 (=> (= (ControlFlow 0 15649) 12683) anon0_correct@@3)))
PreconditionGeneratedEntry_correct@@3)))))))))))))))))
))
......@@ -384,7 +384,7 @@ PreconditionGeneratedEntry_correct@@3)))))))))))))))))
(let ((inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon9_Else_correct (=> (and (not true) (= (ControlFlow 0 13358) 13459)) inline$$CastU64$0$Entry_correct@@1)))
(let ((inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon9_Then_correct (=> (= (ControlFlow 0 13589) 13459) inline$$CastU64$0$Entry_correct@@1)))
(let ((inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 13352) 13589) inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon9_Then_correct) (=> (= (ControlFlow 0 13352) 13358) inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon9_Else_correct)))))
(let ((anon0_correct@@4 (=> (and (and (and (is-$Integer x@@13) (>= (|i#$Integer| x@@13) 0)) (<= (|i#$Integer| x@@13) $MAX_U8)) (= (ControlFlow 0 13183) 13352)) inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@4 (=> (and (and (and ((_ is $Integer) x@@13) (>= (|i#$Integer| x@@13) 0)) (<= (|i#$Integer| x@@13) $MAX_U8)) (= (ControlFlow 0 13183) 13352)) inline$$TestCast_u8_cast_incorrect_$def_verify$0$anon0_correct)))
(let ((PreconditionGeneratedEntry_correct@@4 (=> (= (ControlFlow 0 15858) 13183) anon0_correct@@4)))
PreconditionGeneratedEntry_correct@@4)))))))))))))))))))
))
......
(set-info :smt-lib-version 2.6)
(set-logic UFDTLIA)
(set-logic UFDTNIA)
(set-info :source |
From the test suite for the Move Prover, a verifier for smart contracts in the
......@@ -109,11 +109,11 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
(assert (= (|l#$ValueArray| $EmptyValueArray) 0))
(assert (= (|v#$ValueArray| $EmptyValueArray) ($MapConstValue $Error)))
(assert (= $StratificationDepth 4))
(assert (forall ((v1 T@$Value) (v2 T@$Value) ) (! (= ($IsEqual_stratified v1 v2) (or (= v1 v2) (and (and (and (is-$Vector v1) (is-$Vector v2)) (= (|l#$ValueArray| (|v#$Vector| v1)) (|l#$ValueArray| (|v#$Vector| v2)))) (forall ((i Int) ) (=> (and (<= 0 i) (< i (|l#$ValueArray| (|v#$Vector| v1)))) ($IsEqual_level1 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1)) i) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2)) i))))))) :pattern ( ($IsEqual_stratified v1 v2))
(assert (forall ((v1 T@$Value) (v2 T@$Value) ) (! (= ($IsEqual_stratified v1 v2) (or (= v1 v2) (and (and (and ((_ is $Vector) v1) ((_ is $Vector) v2)) (= (|l#$ValueArray| (|v#$Vector| v1)) (|l#$ValueArray| (|v#$Vector| v2)))) (forall ((i Int) ) (=> (and (<= 0 i) (< i (|l#$ValueArray| (|v#$Vector| v1)))) ($IsEqual_level1 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1)) i) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2)) i))))))) :pattern ( ($IsEqual_stratified v1 v2))
)))
(assert (forall ((v1@@0 T@$Value) (v2@@0 T@$Value) ) (! (= ($IsEqual_level1 v1@@0 v2@@0) (or (= v1@@0 v2@@0) (and (and (and (is-$Vector v1@@0) (is-$Vector v2@@0)) (= (|l#$ValueArray| (|v#$Vector| v1@@0)) (|l#$ValueArray| (|v#$Vector| v2@@0)))) (forall ((i@@0 Int) ) (=> (and (<= 0 i@@0) (< i@@0 (|l#$ValueArray| (|v#$Vector| v1@@0)))) ($IsEqual_level2 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@0)) i@@0) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@0)) i@@0))))))) :pattern ( ($IsEqual_level1 v1@@0 v2@@0))
(assert (forall ((v1@@0 T@$Value) (v2@@0 T@$Value) ) (! (= ($IsEqual_level1 v1@@0 v2@@0) (or (= v1@@0 v2@@0) (and (and (and ((_ is $Vector) v1@@0) ((_ is $Vector) v2@@0)) (= (|l#$ValueArray| (|v#$Vector| v1@@0)) (|l#$ValueArray| (|v#$Vector| v2@@0)))) (forall ((i@@0 Int) ) (=> (and (<= 0 i@@0) (< i@@0 (|l#$ValueArray| (|v#$Vector| v1@@0)))) ($IsEqual_level2 (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@0)) i@@0) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@0)) i@@0))))))) :pattern ( ($IsEqual_level1 v1@@0 v2@@0))
)))
(assert (forall ((v1@@1 T@$Value) (v2@@1 T@$Value) ) (! (= ($IsEqual_level2 v1@@1 v2@@1) (or (= v1@@1 v2@@1) (and (and (and (is-$Vector v1@@1) (is-$Vector v2@@1)) (= (|l#$ValueArray| (|v#$Vector| v1@@1)) (|l#$ValueArray| (|v#$Vector| v2@@1)))) (forall ((i@@1 Int) ) (=> (and (<= 0 i@@1) (< i@@1 (|l#$ValueArray| (|v#$Vector| v1@@1)))) (= (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@1)) i@@1) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@1)) i@@1))))))) :pattern ( ($IsEqual_level2 v1@@1 v2@@1))
(assert (forall ((v1@@1 T@$Value) (v2@@1 T@$Value) ) (! (= ($IsEqual_level2 v1@@1 v2@@1) (or (= v1@@1 v2@@1) (and (and (and ((_ is $Vector) v1@@1) ((_ is $Vector) v2@@1)) (= (|l#$ValueArray| (|v#$Vector| v1@@1)) (|l#$ValueArray| (|v#$Vector| v2@@1)))) (forall ((i@@1 Int) ) (=> (and (<= 0 i@@1) (< i@@1 (|l#$ValueArray| (|v#$Vector| v1@@1)))) (= (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v1@@1)) i@@1) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v2@@1)) i@@1))))))) :pattern ( ($IsEqual_level2 v1@@1 v2@@1))
)))
(assert (forall ((p T@$Path) (v T@$Value) ) (! (= ($ReadValue_stratified p v) (ite (= 0 (|size#$Path| p)) v ($ReadValue_level1 p (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v)) (|Select_[$int]$int| (|p#$Path| p) 0))))) :pattern ( ($ReadValue_stratified p v))
)))
......@@ -171,46 +171,46 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
)))
(assert (forall ((ta@@5 T@$TypeValue) (v@@10 T@$Value) (i@@4 T@$Value) (j T@$Value) ) (! (= ($Vector_$swap ta@@5 v@@10 i@@4 j) ($Vector ($ValueArray (|Store_[$int]$Value| (|Store_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| i@@4) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| j))) (|i#$Integer| j) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| v@@10)) (|i#$Integer| i@@4))) (|l#$ValueArray| (|v#$Vector| v@@10))))) :pattern ( ($Vector_$swap ta@@5 v@@10 i@@4 j))
)))
(assert (forall ((v1@@2 T@$Value) (v2@@2 T@$Value) ) (=> (and (and (and (is-$Vector v1@@2) (let ((va (|v#$Vector| v1@@2)))
(assert (forall ((v1@@2 T@$Value) (v2@@2 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@2) (let ((va (|v#$Vector| v1@@2)))
(let ((l (|l#$ValueArray| va)))
(and (and (<= 0 l) (<= l $MAX_U64)) (forall ((x Int) ) (! (=> (or (< x 0) (>= x l)) (= (|Select_[$int]$Value| (|v#$ValueArray| va) x) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va) x))
)))))) (and (is-$Vector v2@@2) (let ((va@@0 (|v#$Vector| v2@@2)))
)))))) (and ((_ is $Vector) v2@@2) (let ((va@@0 (|v#$Vector| v2@@2)))
(let ((l@@0 (|l#$ValueArray| va@@0)))
(and (and (<= 0 l@@0) (<= l@@0 $MAX_U64)) (forall ((x@@0 Int) ) (! (=> (or (< x@@0 0) (>= x@@0 l@@0)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@0) x@@0) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@0) x@@0))
))))))) ($IsEqual_stratified v1@@2 v2@@2)) ($IsEqual_stratified ($Hash_sha2_core v1@@2) ($Hash_sha2_core v2@@2)))))
(assert (forall ((v1@@3 T@$Value) (v2@@3 T@$Value) ) (=> (and (and (and (is-$Vector v1@@3) (let ((va@@1 (|v#$Vector| v1@@3)))
(assert (forall ((v1@@3 T@$Value) (v2@@3 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@3) (let ((va@@1 (|v#$Vector| v1@@3)))
(let ((l@@1 (|l#$ValueArray| va@@1)))
(and (and (<= 0 l@@1) (<= l@@1 $MAX_U64)) (forall ((x@@1 Int) ) (! (=> (or (< x@@1 0) (>= x@@1 l@@1)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@1) x@@1) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@1) x@@1))
)))))) (and (is-$Vector v2@@3) (let ((va@@2 (|v#$Vector| v2@@3)))
)))))) (and ((_ is $Vector) v2@@3) (let ((va@@2 (|v#$Vector| v2@@3)))
(let ((l@@2 (|l#$ValueArray| va@@2)))
(and (and (<= 0 l@@2) (<= l@@2 $MAX_U64)) (forall ((x@@2 Int) ) (! (=> (or (< x@@2 0) (>= x@@2 l@@2)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@2) x@@2) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@2) x@@2))
))))))) ($IsEqual_stratified ($Hash_sha2_core v1@@3) ($Hash_sha2_core v2@@3))) ($IsEqual_stratified v1@@3 v2@@3))))
(assert (forall ((v1@@4 T@$Value) (v2@@4 T@$Value) ) (=> (and (and (and (is-$Vector v1@@4) (let ((va@@3 (|v#$Vector| v1@@4)))
(assert (forall ((v1@@4 T@$Value) (v2@@4 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@4) (let ((va@@3 (|v#$Vector| v1@@4)))
(let ((l@@3 (|l#$ValueArray| va@@3)))
(and (and (<= 0 l@@3) (<= l@@3 $MAX_U64)) (forall ((x@@3 Int) ) (! (=> (or (< x@@3 0) (>= x@@3 l@@3)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@3) x@@3) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@3) x@@3))
)))))) (and (is-$Vector v2@@4) (let ((va@@4 (|v#$Vector| v2@@4)))
)))))) (and ((_ is $Vector) v2@@4) (let ((va@@4 (|v#$Vector| v2@@4)))
(let ((l@@4 (|l#$ValueArray| va@@4)))
(and (and (<= 0 l@@4) (<= l@@4 $MAX_U64)) (forall ((x@@4 Int) ) (! (=> (or (< x@@4 0) (>= x@@4 l@@4)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@4) x@@4) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@4) x@@4))
))))))) ($IsEqual_stratified v1@@4 v2@@4)) ($IsEqual_stratified ($Hash_sha3_core v1@@4) ($Hash_sha3_core v2@@4)))))
(assert (forall ((v1@@5 T@$Value) (v2@@5 T@$Value) ) (=> (and (and (and (is-$Vector v1@@5) (let ((va@@5 (|v#$Vector| v1@@5)))
(assert (forall ((v1@@5 T@$Value) (v2@@5 T@$Value) ) (=> (and (and (and ((_ is $Vector) v1@@5) (let ((va@@5 (|v#$Vector| v1@@5)))
(let ((l@@5 (|l#$ValueArray| va@@5)))
(and (and (<= 0 l@@5) (<= l@@5 $MAX_U64)) (forall ((x@@5 Int) ) (! (=> (or (< x@@5 0) (>= x@@5 l@@5)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@5) x@@5) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@5) x@@5))
)))))) (and (is-$Vector v2@@5) (let ((va@@6 (|v#$Vector| v2@@5)))
)))))) (and ((_ is $Vector) v2@@5) (let ((va@@6 (|v#$Vector| v2@@5)))
(let ((l@@6 (|l#$ValueArray| va@@6)))
(and (and (<= 0 l@@6) (<= l@@6 $MAX_U64)) (forall ((x@@6 Int) ) (! (=> (or (< x@@6 0) (>= x@@6 l@@6)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@6) x@@6) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@6) x@@6))
))))))) ($IsEqual_stratified ($Hash_sha3_core v1@@5) ($Hash_sha3_core v2@@5))) ($IsEqual_stratified v1@@5 v2@@5))))
(assert (forall ((public_key T@$Value) ) (is-$Boolean ($Signature_$ed25519_validate_pubkey public_key))))
(assert (forall ((signature T@$Value) (public_key@@0 T@$Value) (message T@$Value) ) (is-$Boolean ($Signature_$ed25519_verify signature public_key@@0 message))))
(assert (forall ((public_key T@$Value) ) ((_ is $Boolean) ($Signature_$ed25519_validate_pubkey public_key))))
(assert (forall ((signature T@$Value) (public_key@@0 T@$Value) (message T@$Value) ) ((_ is $Boolean) ($Signature_$ed25519_verify signature public_key@@0 message))))
(assert (forall ((v1@@6 T@$Value) (v2@@6 T@$Value) ) (=> ($IsEqual_stratified v1@@6 v2@@6) (= ($BCS_serialize_core v1@@6) ($BCS_serialize_core v2@@6)))))
(assert (forall ((v@@11 T@$Value) ) (= ($BCS_serialize_core_inv ($BCS_serialize_core v@@11)) v@@11)))
(assert (forall ((v@@12 T@$Value) ) (let ((r ($BCS_serialize_core v@@12)))
(and (and (and (is-$Vector r) (let ((va@@7 (|v#$Vector| r)))
(and (and (and ((_ is $Vector) r) (let ((va@@7 (|v#$Vector| r)))
(let ((l@@7 (|l#$ValueArray| va@@7)))
(and (and (<= 0 l@@7) (<= l@@7 $MAX_U64)) (forall ((x@@7 Int) ) (! (=> (or (< x@@7 0) (>= x@@7 l@@7)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@7) x@@7) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@7) x@@7))
)))))) (forall ((i@@5 Int) ) (! (=> (and (<= 0 i@@5) (< i@@5 (|l#$ValueArray| (|v#$Vector| r)))) (and (and (is-$Integer (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) $MAX_U8))) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5))
)))))) (forall ((i@@5 Int) ) (! (=> (and (<= 0 i@@5) (< i@@5 (|l#$ValueArray| (|v#$Vector| r)))) (and (and ((_ is $Integer) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5)) $MAX_U8))) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| r)) i@@5))
))) (> (|l#$ValueArray| (|v#$Vector| r)) 0)))))
(assert (forall ((v@@13 T@$Value) ) (let ((r@@0 ($BCS_serialize_core v@@13)))
(=> (is-$Address v@@13) (= (|l#$ValueArray| (|v#$Vector| r@@0)) $serialized_address_len)))))
(=> ((_ is $Address) v@@13) (= (|l#$ValueArray| (|v#$Vector| r@@0)) $serialized_address_len)))))
(assert (= $TestDefines_R_x 0))
(assert (= $TestDefines_R_type_value ($StructType $TestDefines_R $EmptyTypeValueArray)))
(assert (forall ((i@@6 Int) (|l#0| Int) (|l#1| Int) (|l#2| |T@[Int]$Value|) (|l#3| T@$Value) ) (! (= (|Select_[$int]$Value| (|lambda#0| |l#0| |l#1| |l#2| |l#3|) i@@6) (ite (and (>= i@@6 |l#0|) (< i@@6 |l#1|)) (|Select_[$int]$Value| |l#2| i@@6) |l#3|)) :pattern ( (|Select_[$int]$Value| (|lambda#0| |l#0| |l#1| |l#2| |l#3|) i@@6))
......@@ -255,7 +255,7 @@ as of Dec 17, 2020. Submitted by Clark Barrett <barrett@cs.stanford.edu>.
(let ((inline$$TestDefines_add_$def_verify$0$anon11_Else_correct (=> (not true) (and (=> (= (ControlFlow 0 10234) 10555) inline$$TestDefines_add_$def_verify$0$anon12_Then_correct) (=> (= (ControlFlow 0 10234) 10242) inline$$TestDefines_add_$def_verify$0$anon12_Else_correct)))))
(let ((inline$$TestDefines_add_$def_verify$0$anon11_Then_correct (and (=> (= (ControlFlow 0 10563) 10555) inline$$TestDefines_add_$def_verify$0$anon12_Then_correct) (=> (= (ControlFlow 0 10563) 10242) inline$$TestDefines_add_$def_verify$0$anon12_Else_correct))))
(let ((inline$$TestDefines_add_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 10228) 10563) inline$$TestDefines_add_$def_verify$0$anon11_Then_correct) (=> (= (ControlFlow 0 10228) 10234) inline$$TestDefines_add_$def_verify$0$anon11_Else_correct)))))
(let ((anon0_correct (=> (and (and (is-$Integer x@@8) (>= (|i#$Integer| x@@8) 0)) (<= (|i#$Integer| x@@8) $MAX_U64)) (=> (and (and (and (is-$Integer y) (>= (|i#$Integer| y) 0)) (<= (|i#$Integer| y) $MAX_U64)) (= (ControlFlow 0 10020) 10228)) inline$$TestDefines_add_$def_verify$0$anon0_correct))))
(let ((anon0_correct (=> (and (and ((_ is $Integer) x@@8) (>= (|i#$Integer| x@@8) 0)) (<= (|i#$Integer| x@@8) $MAX_U64)) (=> (and (and (and ((_ is $Integer) y) (>= (|i#$Integer| y) 0)) (<= (|i#$Integer| y) $MAX_U64)) (= (ControlFlow 0 10020) 10228)) inline$$TestDefines_add_$def_verify$0$anon0_correct))))
(let ((PreconditionGeneratedEntry_correct (=> (= (ControlFlow 0 12714) 10020) anon0_correct)))
PreconditionGeneratedEntry_correct)))))))))))))))))))))
))
......@@ -319,12 +319,12 @@ PreconditionGeneratedEntry_correct)))))))))))))))))))))
(let ((inline$$TestDefines_equal_R_$def_verify$0$anon19_Else_correct (=> (not true) (and (=> (= (ControlFlow 0 11060) 11708) inline$$TestDefines_equal_R_$def_verify$0$anon20_Then_correct) (=> (= (ControlFlow 0 11060) 11068) inline$$TestDefines_equal_R_$def_verify$0$anon20_Else_correct)))))
(let ((inline$$TestDefines_equal_R_$def_verify$0$anon19_Then_correct (and (=> (= (ControlFlow 0 11716) 11708) inline$$TestDefines_equal_R_$def_verify$0$anon20_Then_correct) (=> (= (ControlFlow 0 11716) 11068) inline$$TestDefines_equal_R_$def_verify$0$anon20_Else_correct))))
(let ((inline$$TestDefines_equal_R_$def_verify$0$anon0_correct (=> (not false) (and (=> (= (ControlFlow 0 11054) 11716) inline$$TestDefines_equal_R_$def_verify$0$anon19_Then_correct) (=> (= (ControlFlow 0 11054) 11060) inline$$TestDefines_equal_R_$def_verify$0$anon19_Else_correct)))))
(let ((anon0$1_correct (=> (and (forall (($inv_addr Int) ) (! (and (and (and (and (is-$Vector (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr)) (let ((va@@8 (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))))
(let ((anon0$1_correct (=> (and (forall (($inv_addr Int) ) (! (and (and (and (and ((_ is $Vector) (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr)) (let ((va@@8 (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))))
(let ((l@@8 (|l#$ValueArray| va@@8)))
(and (and (<= 0 l@@8) (<= l@@8 $MAX_U64)) (forall ((x@@9 Int) ) (! (=> (or (< x@@9 0) (>= x@@9 l@@8)) (= (|Select_[$int]$Value| (|v#$ValueArray| va@@8) x@@9) $Error)) :pattern ( (|Select_[$int]$Value| (|v#$ValueArray| va@@8) x@@9))
)))))) (= (|l#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) 1)) (and (and (is-$Integer (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) $MAX_U64))) true) :pattern ( (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))
)))))) (= (|l#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) 1)) (and (and ((_ is $Integer) (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) (>= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) 0)) (<= (|i#$Integer| (|Select_[$int]$Value| (|v#$ValueArray| (|v#$Vector| (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))) $TestDefines_R_x)) $MAX_U64))) true) :pattern ( (|Select_[$TypeValueArray,$int]$Value| (|contents#$Memory| $TestDefines_R_$memory) $EmptyTypeValueArray $inv_addr))
)) (= (ControlFlow 0 11722) 11054)) inline$$TestDefines_equal_R_$def_verify$0$anon0_correct)))
(let ((anon0_correct@@0 (=> (is-$Address addr1) (=> (and (is-$Address addr2) (= (ControlFlow 0 10686) 11722)) anon0$1_correct))))
(let ((anon0_correct@@0 (=> ((_ is $Address) addr1) (=> (and ((_ is $Address) addr2) (= (ControlFlow 0 10686) 11722)) anon0$1_correct))))
(let ((PreconditionGeneratedEntry_correct@@0 (=> (= (ControlFlow 0 13207) 10686) anon0_correct@@0)))
PreconditionGeneratedEntry_correct@@0)))))))))))))))))))))))))))))))))))))))
))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment