1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
CORE dfcc-only
main.c
--dfcc main --apply-loop-contracts
^EXIT=0$
^SIGNAL=0$
^\[main.loop_assigns.\d+\] line 24 Check assigns clause inclusion for loop .*: SUCCESS$
^\[main.loop_invariant_base.\d+\] line 24 Check invariant before entry for loop .*: SUCCESS$
^\[main.loop_invariant_step.\d+\] line 24 Check invariant after step for loop .*: SUCCESS$
^\[main.loop_step_unwinding.\d+\] line 24 Check step was unwound for loop .*: SUCCESS$
^\[main.loop_decreases.\d+\] line 24 Check variant decreases after step for loop .*: SUCCESS$
^\[main.assertion.1\] .* assertion 0 <= r && r < 5: SUCCESS$
^\[main.assertion.2\] .* assertion \*\(arr\[r\]\) == pivot: SUCCESS$
^\[main.assertion.3\] .* assertion 0 < r ==> arr0 <= pivot: SUCCESS$
^\[main.assertion.4\] .* assertion 1 < r ==> arr1 <= pivot: SUCCESS$
^\[main.assertion.5\] .* assertion 2 < r ==> arr2 <= pivot: SUCCESS$
^\[main.assertion.6\] .* assertion 3 < r ==> arr3 <= pivot: SUCCESS$
^\[main.assertion.7\] .* assertion 4 < r ==> arr4 <= pivot: SUCCESS$
^\[main.assertion.8\] .* assertion 0 > r ==> arr0 >= pivot: SUCCESS$
^\[main.assertion.9\] .* assertion 1 > r ==> arr1 >= pivot: SUCCESS$
^\[main.assertion.10\] .* assertion 2 > r ==> arr2 >= pivot: SUCCESS$
^\[main.assertion.11\] .* assertion 3 > r ==> arr3 >= pivot: SUCCESS$
^\[main.assertion.12\] .* assertion 4 > r ==> arr4 >= pivot: SUCCESS$
^VERIFICATION SUCCESSFUL$
--
This test checks the invariant contracts on a larger problem --- in this case,
the partition function of quicksort, applied to a fixed-length array.
This serves as a stop-gap test until issues to do with quantifiers and
side-effects in loop invariants are fixed.
|