[declare_const] m : int
[declare_const] n : int
[declare_const] p : int
[assert] eq.{1} int (mpq int) (mpq int)
[assert] eq.{1} int m (neg.{1} int int_has_neg m)
[assert] eq.{1} int m (sub.{1} int int_has_sub m n)
[assert] and (eq.{1} int (add.{1} int int_has_add m m) (add.{1} int int_has_add (add.{1} int int_has_add m m) m)) (eq.{1} int (add.{1} int int_has_add (add.{1} int int_has_add m m) m) (add.{1} int int_has_add (add.{1} int int_has_add (add.{1} int int_has_add m m) m) m))
[assert] and (eq.{1} int (mul.{1} int int_has_mul m m) (mul.{1} int int_has_mul (mul.{1} int int_has_mul m m) m)) (eq.{1} int (mul.{1} int int_has_mul (mul.{1} int int_has_mul m m) m) (mul.{1} int int_has_mul (mul.{1} int int_has_mul (mul.{1} int int_has_mul m m) m) m))
[assert] eq.{1} int (mod.{1} int int_has_mod m n) (div.{1} int int_has_div n p)
[assert] eq.{1} int m (abs.{1} int int_decidable_linear_ordered_comm_group m)
[assert] lt.{1} int int_has_lt m n
[assert] and (lt.{1} int int_has_lt m n) (lt.{1} int int_has_lt n p)
[assert] and (and (lt.{1} int int_has_lt m n) (lt.{1} int int_has_lt n p)) (lt.{1} int int_has_lt p p)
[assert] le.{1} int int_has_le m n
[assert] and (le.{1} int int_has_le m n) (le.{1} int int_has_le n p)
[assert] and (and (le.{1} int int_has_le m n) (le.{1} int int_has_le n p)) (le.{1} int int_has_le p p)
[assert] gt.{1} int int_has_lt m n
[assert] and (gt.{1} int int_has_lt m n) (gt.{1} int int_has_lt n p)
[assert] and (and (gt.{1} int int_has_lt m n) (gt.{1} int int_has_lt n p)) (gt.{1} int int_has_lt p p)
[assert] ge.{1} int int_has_le m n
[assert] and (ge.{1} int int_has_le m n) (ge.{1} int int_has_le n p)
[assert] and (and (ge.{1} int int_has_le m n) (ge.{1} int int_has_le n p)) (ge.{1} int int_has_le p p)
[declare_const] x : real
[declare_const] y : real
[declare_const] z : real
[assert] eq.{1} real (mpq real) (mpq real)
[assert] eq.{1} real x (neg.{1} real real_has_neg x)
[assert] eq.{1} real x (sub.{1} real real_has_sub x y)
[assert] and (eq.{1} real (add.{1} real real_has_add x x) (add.{1} real real_has_add (add.{1} real real_has_add x x) x)) (eq.{1} real (add.{1} real real_has_add (add.{1} real real_has_add x x) x) (add.{1} real real_has_add (add.{1} real real_has_add (add.{1} real real_has_add x x) x) x))
[assert] and (eq.{1} real (mul.{1} real real_has_mul x x) (mul.{1} real real_has_mul (mul.{1} real real_has_mul x x) x)) (eq.{1} real (mul.{1} real real_has_mul (mul.{1} real real_has_mul x x) x) (mul.{1} real real_has_mul (mul.{1} real real_has_mul (mul.{1} real real_has_mul x x) x) x))
[assert] eq.{1} real (div.{1} real real_has_div x y) z
[assert] lt.{1} real real_has_lt x y
[assert] and (lt.{1} real real_has_lt x y) (lt.{1} real real_has_lt y z)
[assert] and (and (lt.{1} real real_has_lt x y) (lt.{1} real real_has_lt y z)) (lt.{1} real real_has_lt z z)
[assert] le.{1} real real_has_le x y
[assert] and (le.{1} real real_has_le x y) (le.{1} real real_has_le y z)
[assert] and (and (le.{1} real real_has_le x y) (le.{1} real real_has_le y z)) (le.{1} real real_has_le z z)
[assert] gt.{1} real real_has_lt x y
[assert] and (gt.{1} real real_has_lt x y) (gt.{1} real real_has_lt y z)
[assert] and (and (gt.{1} real real_has_lt x y) (gt.{1} real real_has_lt y z)) (gt.{1} real real_has_lt z z)
[assert] ge.{1} real real_has_le x y
[assert] and (ge.{1} real real_has_le x y) (ge.{1} real real_has_le y z)
[assert] and (and (ge.{1} real real_has_le x y) (ge.{1} real real_has_le y z)) (ge.{1} real real_has_le z z)
[assert] eq.{1} real (real.of_int (add.{1} int int_has_add m n)) (add.{1} real real_has_add x y)
[assert] real.is_int x
[assert] eq.{1} int (real.to_int (add.{1} real real_has_add x y)) (add.{1} int int_has_add m n)
