// verifast_options{disable_overflow_check target:ILP32} extern void abort(void); //@ requires integer(&__BLAST_NONDET, ?veri_req___BLAST_NONDET) &*& true; //@ ensures integer(&__BLAST_NONDET, ?veri_ens___BLAST_NONDET) &*& true; void reach_error() //@ requires false; //@ ensures true; {}void assume_abort_if_not(int cond) //@ requires integer(&__BLAST_NONDET, ?veri_req___BLAST_NONDET) &*& true; //@ ensures integer(&__BLAST_NONDET, ?veri_ens___BLAST_NONDET) &*& true; { if(!cond) {abort();} } void __VERIFIER_assert(int cond) //@ requires integer(&__BLAST_NONDET, ?veri_req___BLAST_NONDET) &*& (1 <= cond); //@ ensures integer(&__BLAST_NONDET, ?veri_ens___BLAST_NONDET) &*& ((veri_ens___BLAST_NONDET == veri_req___BLAST_NONDET) && (1 <= cond)); { if (!(cond)) { ERROR: {reach_error();abort();} } return; } int __VERIFIER_nondet_int(); //@ requires integer(&__BLAST_NONDET, ?veri_req___BLAST_NONDET) &*& true; //@ ensures integer(&__BLAST_NONDET, ?veri_ens___BLAST_NONDET) &*& true; int __BLAST_NONDET; int main() //@ requires module(nested9__verifast_instrumented, true) &*& true; //@ ensures (__BLAST_NONDET == __BLAST_NONDET) &*& junk(); { //@ open_module(); int i,j,k,n,l,m; n = __VERIFIER_nondet_int(); m = __VERIFIER_nondet_int(); l = __VERIFIER_nondet_int(); if (!(-1000000 < n && n < 1000000)) return 0; if (!(-1000000 < m && m < 1000000)) return 0; if (!(-1000000 < l && l < 1000000)) return 0; if(3*n<=m+l); else goto END; for (i=0;i