/* Generated by Frama-C */
#include "pthread.h"
#include "sched.h"
#include "signal.h"
#include "stddef.h"
#include "stdint.h"
#include "stdio.h"
#include "time.h"
extern  __attribute__((__FC_BUILTIN__)) int __e_acsl_sound_verdict;

int main(void)
{
  int __retres;
  __e_acsl_memory_init((int *)0,(char ***)0,8UL);
  int x = -3;
  int y = 2;
  long z = 2L;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data = {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data,"x",0,x);
    __gen_e_acsl_assert_data.blocking = 1;
    __gen_e_acsl_assert_data.kind = "Assertion";
    __gen_e_acsl_assert_data.pred_txt = "-3 == x";
    __gen_e_acsl_assert_data.file = "arith.i";
    __gen_e_acsl_assert_data.fct = "main";
    __gen_e_acsl_assert_data.line = 10;
    __e_acsl_assert(-3 == x,& __gen_e_acsl_assert_data);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data);
  }
  /*@ assert -3 == x; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_2 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_2,"x",0,x);
    __gen_e_acsl_assert_data_2.blocking = 1;
    __gen_e_acsl_assert_data_2.kind = "Assertion";
    __gen_e_acsl_assert_data_2.pred_txt = "x == -3";
    __gen_e_acsl_assert_data_2.file = "arith.i";
    __gen_e_acsl_assert_data_2.fct = "main";
    __gen_e_acsl_assert_data_2.line = 11;
    __e_acsl_assert(x == -3,& __gen_e_acsl_assert_data_2);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_2);
  }
  /*@ assert x == -3; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_3 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_3.blocking = 1;
    __gen_e_acsl_assert_data_3.kind = "Assertion";
    __gen_e_acsl_assert_data_3.pred_txt = "0 != ~0";
    __gen_e_acsl_assert_data_3.file = "arith.i";
    __gen_e_acsl_assert_data_3.fct = "main";
    __gen_e_acsl_assert_data_3.line = 12;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_3);
  }
  /*@ assert 0 != ~0; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_4 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_4,"x",0,x);
    __gen_e_acsl_assert_data_4.blocking = 1;
    __gen_e_acsl_assert_data_4.kind = "Assertion";
    __gen_e_acsl_assert_data_4.pred_txt = "x + 1 == -2";
    __gen_e_acsl_assert_data_4.file = "arith.i";
    __gen_e_acsl_assert_data_4.fct = "main";
    __gen_e_acsl_assert_data_4.line = 14;
    __e_acsl_assert(x + 1L == -2L,& __gen_e_acsl_assert_data_4);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_4);
  }
  /*@ assert x + 1 == -2; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_5 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_5,"x",0,x);
    __gen_e_acsl_assert_data_5.blocking = 1;
    __gen_e_acsl_assert_data_5.kind = "Assertion";
    __gen_e_acsl_assert_data_5.pred_txt = "x - 1 == -4";
    __gen_e_acsl_assert_data_5.file = "arith.i";
    __gen_e_acsl_assert_data_5.fct = "main";
    __gen_e_acsl_assert_data_5.line = 15;
    __e_acsl_assert(x - 1L == -4L,& __gen_e_acsl_assert_data_5);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_5);
  }
  /*@ assert x - 1 == -4; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_6 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_6,"x",0,x);
    __gen_e_acsl_assert_data_6.blocking = 1;
    __gen_e_acsl_assert_data_6.kind = "Assertion";
    __gen_e_acsl_assert_data_6.pred_txt = "x * 3 == -9";
    __gen_e_acsl_assert_data_6.file = "arith.i";
    __gen_e_acsl_assert_data_6.fct = "main";
    __gen_e_acsl_assert_data_6.line = 16;
    __e_acsl_assert(x * 3L == -9L,& __gen_e_acsl_assert_data_6);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_6);
  }
  /*@ assert x * 3 == -9; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_7 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_7,"x",0,x);
    __gen_e_acsl_assert_data_7.blocking = 1;
    __gen_e_acsl_assert_data_7.kind = "Assertion";
    __gen_e_acsl_assert_data_7.pred_txt = "x / 3 == -1";
    __gen_e_acsl_assert_data_7.file = "arith.i";
    __gen_e_acsl_assert_data_7.fct = "main";
    __gen_e_acsl_assert_data_7.line = 17;
    __e_acsl_assert(x / 3 == -1,& __gen_e_acsl_assert_data_7);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_7);
  }
  /*@ assert x / 3 == -1; */ ;
  {
    __e_acsl_mpz_t __gen_e_acsl_;
    __e_acsl_mpz_t __gen_e_acsl__2;
    int __gen_e_acsl_div_guard;
    __e_acsl_mpz_t __gen_e_acsl_div;
    long __gen_e_acsl__3;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_8 =
      {.values = (void *)0};
    __gmpz_init_set_str(__gen_e_acsl_,"309485009821345068724781055",10);
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_9 =
      {.values = (void *)0};
    __gmpz_init_set_si(__gen_e_acsl__2,0L);
    __gen_e_acsl_div_guard = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                                        (__e_acsl_mpz_struct const *)(__gen_e_acsl__2));
    __gmpz_init(__gen_e_acsl_div);
    /*@ assert E_ACSL: 0xffffffffffffffffffffff != 0; */
    {
      __gen_e_acsl_assert_data_9.blocking = 1;
      __gen_e_acsl_assert_data_9.kind = "Assertion";
      __gen_e_acsl_assert_data_9.pred_txt = "0xffffffffffffffffffffff != 0";
      __gen_e_acsl_assert_data_9.file = "arith.i";
      __gen_e_acsl_assert_data_9.fct = "main";
      __gen_e_acsl_assert_data_9.line = 18;
      __e_acsl_assert(__gen_e_acsl_div_guard != 0,
                      & __gen_e_acsl_assert_data_9);
    }
    __gmpz_tdiv_q(__gen_e_acsl_div,
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_),
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_));
    __gen_e_acsl__3 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div));
    __gen_e_acsl_assert_data_8.blocking = 1;
    __gen_e_acsl_assert_data_8.kind = "Assertion";
    __gen_e_acsl_assert_data_8.pred_txt = "0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1";
    __gen_e_acsl_assert_data_8.file = "arith.i";
    __gen_e_acsl_assert_data_8.fct = "main";
    __gen_e_acsl_assert_data_8.line = 18;
    __e_acsl_assert(__gen_e_acsl__3 == 1L,& __gen_e_acsl_assert_data_8);
    __gmpz_clear(__gen_e_acsl_);
    __gmpz_clear(__gen_e_acsl__2);
    __gmpz_clear(__gen_e_acsl_div);
  }
  /*@ assert 0xffffffffffffffffffffff / 0xffffffffffffffffffffff == 1; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_10 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_10,"x",0,x);
    __gen_e_acsl_assert_data_10.blocking = 1;
    __gen_e_acsl_assert_data_10.kind = "Assertion";
    __gen_e_acsl_assert_data_10.pred_txt = "x % 2 == -1";
    __gen_e_acsl_assert_data_10.file = "arith.i";
    __gen_e_acsl_assert_data_10.fct = "main";
    __gen_e_acsl_assert_data_10.line = 19;
    __e_acsl_assert(x % 2 == -1,& __gen_e_acsl_assert_data_10);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_10);
  }
  /*@ assert x % 2 == -1; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_11 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_11.blocking = 1;
    __gen_e_acsl_assert_data_11.kind = "Assertion";
    __gen_e_acsl_assert_data_11.pred_txt = "-3 % -2 == -1";
    __gen_e_acsl_assert_data_11.file = "arith.i";
    __gen_e_acsl_assert_data_11.fct = "main";
    __gen_e_acsl_assert_data_11.line = 20;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_11);
  }
  /*@ assert -3 % -2 == -1; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_12 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_12.blocking = 1;
    __gen_e_acsl_assert_data_12.kind = "Assertion";
    __gen_e_acsl_assert_data_12.pred_txt = "3 % -2 == 1";
    __gen_e_acsl_assert_data_12.file = "arith.i";
    __gen_e_acsl_assert_data_12.fct = "main";
    __gen_e_acsl_assert_data_12.line = 21;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_12);
  }
  /*@ assert 3 % -2 == 1; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_13 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"x",0,x);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_13,"y",0,y);
    __gen_e_acsl_assert_data_13.blocking = 1;
    __gen_e_acsl_assert_data_13.kind = "Assertion";
    __gen_e_acsl_assert_data_13.pred_txt = "((x * 2 + (3 + y)) - 4) + (x - y) == -10";
    __gen_e_acsl_assert_data_13.file = "arith.i";
    __gen_e_acsl_assert_data_13.fct = "main";
    __gen_e_acsl_assert_data_13.line = 23;
    __e_acsl_assert(((x * 2L + (3L + y)) - 4L) + (x - (long)y) == -10L,
                    & __gen_e_acsl_assert_data_13);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_13);
  }
  /*@ assert ((x * 2 + (3 + y)) - 4) + (x - y) == -10; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_14 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_14.blocking = 1;
    __gen_e_acsl_assert_data_14.kind = "Assertion";
    __gen_e_acsl_assert_data_14.pred_txt = "(0 == 1) == !(0 == 0)";
    __gen_e_acsl_assert_data_14.file = "arith.i";
    __gen_e_acsl_assert_data_14.fct = "main";
    __gen_e_acsl_assert_data_14.line = 25;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_14);
  }
  /*@ assert (0 == 1) == !(0 == 0); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_15 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_15.blocking = 1;
    __gen_e_acsl_assert_data_15.kind = "Assertion";
    __gen_e_acsl_assert_data_15.pred_txt = "(0 <= -1) == (0 > 0)";
    __gen_e_acsl_assert_data_15.file = "arith.i";
    __gen_e_acsl_assert_data_15.fct = "main";
    __gen_e_acsl_assert_data_15.line = 26;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_15);
  }
  /*@ assert (0 <= -1) == (0 > 0); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_16 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_16.blocking = 1;
    __gen_e_acsl_assert_data_16.kind = "Assertion";
    __gen_e_acsl_assert_data_16.pred_txt = "(0 >= -1) == (0 <= 0)";
    __gen_e_acsl_assert_data_16.file = "arith.i";
    __gen_e_acsl_assert_data_16.fct = "main";
    __gen_e_acsl_assert_data_16.line = 27;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_16);
  }
  /*@ assert (0 >= -1) == (0 <= 0); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_17 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_17.blocking = 1;
    __gen_e_acsl_assert_data_17.kind = "Assertion";
    __gen_e_acsl_assert_data_17.pred_txt = "(0 != 1) == !(0 != 0)";
    __gen_e_acsl_assert_data_17.file = "arith.i";
    __gen_e_acsl_assert_data_17.fct = "main";
    __gen_e_acsl_assert_data_17.line = 28;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_17);
  }
  /*@ assert (0 != 1) == !(0 != 0); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_18 =
      {.values = (void *)0};
    __gen_e_acsl_assert_data_18.blocking = 1;
    __gen_e_acsl_assert_data_18.kind = "Assertion";
    __gen_e_acsl_assert_data_18.pred_txt = "(0 != 0) == !(1 != 0)";
    __gen_e_acsl_assert_data_18.file = "arith.i";
    __gen_e_acsl_assert_data_18.fct = "main";
    __gen_e_acsl_assert_data_18.line = 30;
    __e_acsl_assert(1,& __gen_e_acsl_assert_data_18);
  }
  /*@ assert (0 != 0) == !(1 != 0); */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_19 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_19,"y",0,y);
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_20 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_20,"y",0,y);
    __gen_e_acsl_assert_data_20.blocking = 1;
    __gen_e_acsl_assert_data_20.kind = "RTE";
    __gen_e_acsl_assert_data_20.pred_txt = "y != 0";
    __gen_e_acsl_assert_data_20.file = "arith.i";
    __gen_e_acsl_assert_data_20.fct = "main";
    __gen_e_acsl_assert_data_20.line = 31;
    __gen_e_acsl_assert_data_20.name = "division_by_zero";
    __e_acsl_assert(y != 0,& __gen_e_acsl_assert_data_20);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_20);
    __gen_e_acsl_assert_data_19.blocking = 1;
    __gen_e_acsl_assert_data_19.kind = "Assertion";
    __gen_e_acsl_assert_data_19.pred_txt = "4 / y == 2";
    __gen_e_acsl_assert_data_19.file = "arith.i";
    __gen_e_acsl_assert_data_19.fct = "main";
    __gen_e_acsl_assert_data_19.line = 31;
    __e_acsl_assert(4 / y == 2,& __gen_e_acsl_assert_data_19);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_19);
  }
  /*@ assert 4 / y == 2; */ ;
  {
    __e_acsl_mpz_t __gen_e_acsl_z;
    __e_acsl_mpz_t __gen_e_acsl__4;
    __e_acsl_mpz_t __gen_e_acsl_add;
    __e_acsl_mpz_t __gen_e_acsl__5;
    __e_acsl_mpz_t __gen_e_acsl__6;
    int __gen_e_acsl_div_guard_2;
    __e_acsl_mpz_t __gen_e_acsl_div_2;
    long __gen_e_acsl__7;
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_21 =
      {.values = (void *)0};
    __e_acsl_assert_register_long(& __gen_e_acsl_assert_data_21,"z",0,z);
    __gmpz_init_set_si(__gen_e_acsl_z,z);
    __gmpz_init_set_si(__gen_e_acsl__4,1L);
    __gmpz_init(__gen_e_acsl_add);
    __gmpz_add(__gen_e_acsl_add,
               (__e_acsl_mpz_struct const *)(__gen_e_acsl_z),
               (__e_acsl_mpz_struct const *)(__gen_e_acsl__4));
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_22 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_22,"y",0,y);
    __gmpz_init_set_si(__gen_e_acsl__5,y - 123456789123456789L);
    __e_acsl_assert_copy_values(& __gen_e_acsl_assert_data_21,
                                & __gen_e_acsl_assert_data_22);
    __gmpz_init_set_si(__gen_e_acsl__6,0L);
    __gen_e_acsl_div_guard_2 = __gmpz_cmp((__e_acsl_mpz_struct const *)(__gen_e_acsl__5),
                                          (__e_acsl_mpz_struct const *)(__gen_e_acsl__6));
    __gmpz_init(__gen_e_acsl_div_2);
    /*@ assert E_ACSL: y - 123456789123456789 != 0; */
    {
      __gen_e_acsl_assert_data_22.blocking = 1;
      __gen_e_acsl_assert_data_22.kind = "Assertion";
      __gen_e_acsl_assert_data_22.pred_txt = "y - 123456789123456789 != 0";
      __gen_e_acsl_assert_data_22.file = "arith.i";
      __gen_e_acsl_assert_data_22.fct = "main";
      __gen_e_acsl_assert_data_22.line = 34;
      __e_acsl_assert(__gen_e_acsl_div_guard_2 != 0,
                      & __gen_e_acsl_assert_data_22);
      __e_acsl_assert_clean(& __gen_e_acsl_assert_data_22);
    }
    __gmpz_tdiv_q(__gen_e_acsl_div_2,
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl_add),
                  (__e_acsl_mpz_struct const *)(__gen_e_acsl__5));
    __gen_e_acsl__7 = __gmpz_get_si((__e_acsl_mpz_struct const *)(__gen_e_acsl_div_2));
    __gen_e_acsl_assert_data_21.blocking = 1;
    __gen_e_acsl_assert_data_21.kind = "Assertion";
    __gen_e_acsl_assert_data_21.pred_txt = "1 + (z + 1) / (y - 123456789123456789) == 1";
    __gen_e_acsl_assert_data_21.file = "arith.i";
    __gen_e_acsl_assert_data_21.fct = "main";
    __gen_e_acsl_assert_data_21.line = 34;
    /*@ assert Eva: signed_overflow: -2147483648 <= 1 + __gen_e_acsl__7; */
    /*@ assert Eva: signed_overflow: 1 + __gen_e_acsl__7 <= 2147483647; */
    __e_acsl_assert(1 + __gen_e_acsl__7 == 1,& __gen_e_acsl_assert_data_21);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_21);
    __gmpz_clear(__gen_e_acsl_z);
    __gmpz_clear(__gen_e_acsl__4);
    __gmpz_clear(__gen_e_acsl_add);
    __gmpz_clear(__gen_e_acsl__5);
    __gmpz_clear(__gen_e_acsl__6);
    __gmpz_clear(__gen_e_acsl_div_2);
  }
  /*@ assert 1 + (z + 1) / (y - 123456789123456789) == 1; */ ;
  {
    __e_acsl_assert_data_t __gen_e_acsl_assert_data_23 =
      {.values = (void *)0};
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x);
    __e_acsl_assert_register_int(& __gen_e_acsl_assert_data_23,"x",0,x);
    __gen_e_acsl_assert_data_23.blocking = 1;
    __gen_e_acsl_assert_data_23.kind = "Assertion";
    __gen_e_acsl_assert_data_23.pred_txt = "1 - x == -x + 1";
    __gen_e_acsl_assert_data_23.file = "arith.i";
    __gen_e_acsl_assert_data_23.fct = "main";
    __gen_e_acsl_assert_data_23.line = 36;
    __e_acsl_assert(1L - x == - ((long)x) + 1L,& __gen_e_acsl_assert_data_23);
    __e_acsl_assert_clean(& __gen_e_acsl_assert_data_23);
  }
  /*@ assert 1 - x == -x + 1; */ ;
  __retres = 0;
  __e_acsl_memory_clean();
  return __retres;
}


