Vcgen1
include deduction
var p : bool
after init {
p := true
}
export action a(q:bool) = {
p := p | q;
}
invariant p
proof [this] {
tactic vcgen;
proof [initiation] {
apply introNot
apply elimNot with p = p
property (p <-> true) proof {apply elimAndL with q = ~p}
apply elimIffRev with q = true
apply trivial
apply elimAndR with p = p <-> true
};
proof [consecution] {
apply introNot
apply elimNot with p = p
showgoals
}
}