Module Builtin.ArithOp

module ArithOp: sig .. end

exception TypeMismatch of string
This exception is raised when Arith functions are called on non-numeric values
type arith_view = [ `Int of Z.t | `Other of Builtin.t | `Rat of Q.t ] 
val view : Builtin.t -> arith_view
Arith centered view of symbols
val parse_num : string -> Builtin.t
val sign : Builtin.t -> int
val one_i : Builtin.t
val zero_i : Builtin.t
val one_rat : Builtin.t
val zero_rat : Builtin.t
val zero_of_ty : [< `Int | `Rat ] -> Builtin.t
val one_of_ty : [< `Int | `Rat ] -> Builtin.t
val is_zero : Builtin.t -> bool
val is_one : Builtin.t -> bool
val is_minus_one : Builtin.t -> bool
val floor : Builtin.t -> Builtin.t
val ceiling : Builtin.t -> Builtin.t
val truncate : Builtin.t -> Builtin.t
val round : Builtin.t -> Builtin.t
val prec : Builtin.t -> Builtin.t
val succ : Builtin.t -> Builtin.t
val sum : Builtin.t -> Builtin.t -> Builtin.t
val difference : Builtin.t -> Builtin.t -> Builtin.t
val uminus : Builtin.t -> Builtin.t
val product : Builtin.t -> Builtin.t -> Builtin.t
val quotient : Builtin.t -> Builtin.t -> Builtin.t
val quotient_e : Builtin.t -> Builtin.t -> Builtin.t
val quotient_t : Builtin.t -> Builtin.t -> Builtin.t
val quotient_f : Builtin.t -> Builtin.t -> Builtin.t
val remainder_e : Builtin.t -> Builtin.t -> Builtin.t
val remainder_t : Builtin.t -> Builtin.t -> Builtin.t
val remainder_f : Builtin.t -> Builtin.t -> Builtin.t
val to_int : Builtin.t -> Builtin.t
val to_rat : Builtin.t -> Builtin.t
val abs : Builtin.t -> Builtin.t
val divides : Builtin.t -> Builtin.t -> bool
val gcd : Builtin.t -> Builtin.t -> Builtin.t
val lcm : Builtin.t -> Builtin.t -> Builtin.t
val less : Builtin.t -> Builtin.t -> bool
val lesseq : Builtin.t -> Builtin.t -> bool
val greater : Builtin.t -> Builtin.t -> bool
val greatereq : Builtin.t -> Builtin.t -> bool
val divisors : Z.t -> Z.t list
List of non-trivial strict divisors of the int.
Returns [] if int <= 1, the list of divisors otherwise. Empty list for prime numbers, obviously.