import java.util.LinkedList;
import java.util.List;
import java.math.BigInteger;
public class bigint {
// FIXME - what about ++, --, conversion to \real, op=
public static void main(String... args) {
//@ ghost \bigint b = 20;
//@ ghost \bigint bb = -b;
//@ ghost \bigint zero = 0;
//@ ghost \bigint prod = -400;
//@ assert b + bb == zero;
//@ assert b * bb == prod;
//@ assert b + 0 == b;
//@ assert b > 0;
//@ assert zero == 0L;
//@ set zero = 0L;
//@ assert zero >= 0;
//@ assert 0L + b == b;
//@ assert b * (short)0 == zero;
//@ ghost int i = (int)b;
//@ ghost long l = (long)b;
//@ assert b == zero;
//@ ghost BigInteger bi = bb;
//@ ghost \bigint bbb = bi;
//@ assert bbb == bb;
//@ set bbb = prod + bi;
//@ assert (\lbl BBB bbb) == -420;
BigInteger bx = new BigInteger("123456789012345678901234567890");
//@ ghost \bigint x = new BigInteger("123456789012345678901234567890");
//@ ghost \bigint xx = (\lbl XX x*10);
try {
//@ set bb = bb / zero;
} catch (Exception e) {
e.printStackTrace(System.out);
}
try {
//@ set prod = prod / 0;
} catch (Exception e) {
e.printStackTrace(System.out);
}
//@ set i += 1;
//@ set ++i;
//@ set bbb += 1;
//@ set ++bbb;
//@ set bbb++;
//@ assert (\lbl BBB bbb) == -417;
BigInteger bxx = new BigInteger("123456789012345678901234567890");
//@ assert (\lbl TRUE bx != bxx);
//@ ghost \bigint bix = bx;
//@ assert (\lbl TRUE bix == bxx);
//@ assert (\lbl TRUE ((\bigint)bx) == bxx);
//@ assert (\lbl TRUE bx == (\bigint)bxx);
}
}