void abort() { };
                                                                                                                                                          
                                                                         

/*@ 
    requires ((1 <= cond)) && (cond != 0);
    ensures ((1 <= cond)) && (1);
@*/
void __VERIFIER_assert(int cond) {
  if (!(cond)) {
    ERROR: {/*@ assert(0); */;abort();}
  }
  return;
}
int __VERIFIER_nondet_int();

int main()
{
  unsigned int SIZE=1;
  unsigned int j,k;
  int array[SIZE], menor;
  
  menor = __VERIFIER_nondet_int();

/*@
loop invariant ((((j == 1) && (SIZE == 1)) || ((j == 0) && (SIZE == 1))));
@*/
  for(j=0;j<SIZE;j++) {
       array[j] = __VERIFIER_nondet_int();
       
       if(array[j]<=menor)
          menor = array[j];                          
    }                       
    
    __VERIFIER_assert(array[0]>=menor);    

    return 0;
}