intervals.mli 1009 Bytes
Newer Older
1
2
3
4
module V : sig
  include Custom.T
  val print : Format.formatter -> t -> unit
  val mk: string -> t
5

6
7
  val is_int: t -> bool
  val get_int: t -> int
8
  val is_zero: t -> bool
9

10
11
12
13
14
  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
15
16
17
18
19
  val succ: t -> t
  val pred: t -> t

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

21
22
23
24
  val zero : t
  val one : t
  val minus_one : t
end
25

26

27
include Custom.T
28
val print : t -> (Format.formatter -> unit) list
29
30

val empty : t
31
val any   : t
32
33
34
val cup   : t -> t -> t
val cap   : t -> t -> t
val diff  : t -> t -> t
35

36
  (** closed interval *)
37
val bounded  : V.t -> V.t -> t
38
39

  (** left opened interval (i.e. * -- something ) *)
40
val left : V.t -> t
41
42

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

45
val atom : V.t -> t
46

47
val disjoint : t -> t -> bool
48
val is_empty : t -> bool
49
50
val contains : V.t -> t -> bool
val sample : t -> V.t
51
52
53


val add : t -> t -> t
54
55
val sub : t -> t -> t
val negat : t -> t