sig
module Z :
sig
type t = Big_int.big_int
val zero : Cardinality.Z.t
val of_int : int -> Cardinality.Z.t
val to_int : Cardinality.Z.t -> int option
val one : Cardinality.Z.t
val sign : Cardinality.Z.t -> int
val equal : Cardinality.Z.t -> Cardinality.Z.t -> bool
val to_string : Cardinality.Z.t -> string
val pp_print : Cardinality.Z.t CCFormat.printer
val compare : Cardinality.Z.t -> Cardinality.Z.t -> int
val hash : Cardinality.Z.t -> int
val ( + ) : Cardinality.Z.t -> Cardinality.Z.t -> Cardinality.Z.t
val ( * ) : Cardinality.Z.t -> Cardinality.Z.t -> Cardinality.Z.t
end
type t =
Exact of Cardinality.Z.t
| QuasiFiniteGEQ of Cardinality.Z.t
| Infinite
| Unknown
val ( + ) : Cardinality.t -> Cardinality.t -> Cardinality.t
val ( * ) : Cardinality.t -> Cardinality.t -> Cardinality.t
val zero : Cardinality.t
val one : Cardinality.t
val of_int : int -> Cardinality.t
val of_z : Cardinality.Z.t -> Cardinality.t
val is_zero : Cardinality.t -> bool
val is_finite : Cardinality.t -> bool
val sum : Cardinality.t list -> Cardinality.t
val product : Cardinality.t list -> Cardinality.t
val infinite : Cardinality.t
val unknown : Cardinality.t
val quasi_finite_geq : Cardinality.Z.t -> Cardinality.t
val quasi_finite_zero : Cardinality.t
val quasi_finite_nonzero : Cardinality.t
val equal : t -> t -> bool
val hash_fun : t CCHash.hash_fun
val hash : t -> int
val print : Cardinality.t CCFormat.printer
end