IVy is a research tool intended to allow interactive development of protocols and their proofs of correctness and to provide a platform for developing and experimenting with automated proof techniques. In particular, IVy provides interactive visualization of automated proofs, and supports a use model in which the human protocol designer and the automated tool interact to expose errors and prove correctness.
Other
77
stars
24
forks
source link
Error in compiling `total order properties` code in examples with ivy1.7 #29
#lang ivy1.7
module total_order_properties(t) = {
property [transitivity] X:t < Y & Y < Z -> X < Z
property [antisymmetry] ~(X:t < Y & Y < X)
property [totality] X:t < Y | X = Y | Y < X
}
isolate id = {
type this
specification {
instantiate total_order_properties(this)
}
}
Compiling the same with ivy_check generates 3 errors.
$ ivy_check id.ivy
Isolate id:
The following properties are to be checked:
id.ivy: line 4: id.transitivity ... FAIL
id.ivy: line 5: id.antisymmetry ... FAIL
id.ivy: line 6: id.totality ... FAIL
The following temporal property is being proved:
id.ivy: line 4: id.transitivity
The following temporal property is being proved:
id.ivy: line 5: id.antisymmetry
The following temporal property is being proved:
id.ivy: line 6: id.totality
Isolate this:
The following properties are assumed as axioms:
id.ivy: line 4: id.transitivity
id.ivy: line 5: id.antisymmetry
id.ivy: line 6: id.totality
error: failed checks: 3
Additionally, when generating a trace of the same, we obtain the following:
$ ivy_check trace=true id.ivy
Isolate id:
The following properties are to be checked:
id.ivy: line 4: id.transitivity ... FAIL
searching for a small model... done
[
@Y = 0
1:id < 0 = true
0:id < 1 = true
0:id < 0 = true
1:id < 1 = false
@Z = 1
@X = 1
]
While executing some of the documented examples in Ivy Leader Election[http://microsoft.github.io/ivy/examples/leader.html], with ivy1.7, I found some errors with
ivy_check
.Compiling the same with
ivy_check
generates 3 errors.Additionally, when generating a trace of the same, we obtain the following: