#lang ivy1.7
type ttt = struct {
a: bool
}
type x_t
interpret x_t -> int
function xx(X: x_t): ttt
after init {
a(xx(0)) := false;
a(xx(1)) := true;
}
invariant ~a(xx(0))
this invariant should be hold but ivy_check not
Isolate this:
The inductive invariant consists of the following conjectures:
test.ivy: line 18: invar3
The following initializers are present:
test.ivy: line 13: init[after2]
Initialization must establish the invariant
test.ivy: line 18: invar3 ... FAIL
searching for a small model... done
[
a(1) = true
a(0) = false
1:x_t = 1
0:x_t = 0
]
init
{
test.ivy: line 14:
a(xx(0)) := false
[
xx(1) = 0
xx(0) = 0
]
test.ivy: line 15:
a(xx(1)) := true
[
xx(1) = 1
xx(0) = 1
]
}
this invariant should be hold but
ivy_checknot