intervals.mli 1.14 KB
Newer Older
1
2
3
4
module V : sig
  include Custom.T
  val print : Format.formatter -> t -> unit
  val mk: string -> t
5
  val from_int: int -> t
6
  val from_bigint: Big_int.big_int -> t
7
  val to_string: t -> string
8

9
10
  val is_int: t -> bool
  val get_int: t -> int
11
  val get_bigint: t -> Big_int.big_int
12
  val is_zero: t -> bool
13

14
15
16
17
18
  val add: t -> t -> t
  val mult: t -> t -> t
  val sub: t -> t -> t
  val div: t -> t -> t
  val modulo: t -> t -> t
19
20
21
22
23
  val succ: t -> t
  val pred: t -> t

  val lt: t -> t -> bool
  val gt: t -> t -> bool
24

25
26
27
28
  val zero : t
  val one : t
  val minus_one : t
end
29

30

31
include Custom.T
32
val print : t -> (Format.formatter -> unit) list
33
34

val empty : t
35
val any   : t
36
37
38
val cup   : t -> t -> t
val cap   : t -> t -> t
val diff  : t -> t -> t
39

40
  (** closed interval *)
41
val bounded  : V.t -> V.t -> t
42
43

  (** left opened interval (i.e. * -- something ) *)
44
val left : V.t -> t
45
46

  (** right opened interval (i.e. something -- * ) *)
47
val right : V.t -> t
48

49
val atom : V.t -> t
50

51
val disjoint : t -> t -> bool
52
val is_empty : t -> bool
53
54
val contains : V.t -> t -> bool
val sample : t -> V.t
55
56
57


val add : t -> t -> t
58
val mul : t -> t -> t
59
60
val sub : t -> t -> t
val negat : t -> t