Newer
Older
/* run.config
DONTRUN:
*/
/* run.config_qualif
OPT: -wp-status -wp-prover tip -wp-script dry
*/
/*@
axiomatic Observers {
predicate P(integer x);
}
*/
/*@
requires (x < 1000 && y < 1000 || z < 1000 && t < 1000);
ensures post: P(\result);
assigns \nothing;
*/
int target(unsigned x, unsigned y, unsigned z, unsigned t)
{
return x+y+z+t;
}
/*@
strategy Split: \tactic("Wp.split", \pattern( (A && B) || (C && D) ));
proof Split: post;
*/