sig
module type Domain =
sig
type t
val bot : Fixpoint.Domain.t
val leq : Fixpoint.Domain.t -> Fixpoint.Domain.t -> bool
val cap : Fixpoint.Domain.t -> Fixpoint.Domain.t -> Fixpoint.Domain.t
val cup : Fixpoint.Domain.t -> Fixpoint.Domain.t -> Fixpoint.Domain.t
val wide : Fixpoint.Domain.t -> Fixpoint.Domain.t -> Fixpoint.Domain.t
val pretty : Format.formatter -> Fixpoint.Domain.t -> unit
end
module Make :
functor (D : Domain) ->
sig
type var
type system
type fixpoint
type f1 = D.t -> D.t
type f2 = D.t -> D.t -> D.t
type fn = D.t list -> D.t
val create : unit -> Fixpoint.Make.system
val var : Fixpoint.Make.system -> Fixpoint.Make.var
val add :
Fixpoint.Make.system ->
Fixpoint.Make.var -> Fixpoint.Make.var -> unit
val add0 : Fixpoint.Make.system -> Fixpoint.Make.var -> D.t -> unit
val add1 :
Fixpoint.Make.system ->
Fixpoint.Make.var -> Fixpoint.Make.f1 -> Fixpoint.Make.var -> unit
val add2 :
Fixpoint.Make.system ->
Fixpoint.Make.var ->
Fixpoint.Make.f2 -> Fixpoint.Make.var -> Fixpoint.Make.var -> unit
val addn :
Fixpoint.Make.system ->
Fixpoint.Make.var ->
Fixpoint.Make.fn -> Fixpoint.Make.var list -> unit
val fixpoint :
system:Fixpoint.Make.system ->
root:Fixpoint.Make.var -> timeout:int -> Fixpoint.Make.fixpoint
val get : Fixpoint.Make.fixpoint -> Fixpoint.Make.var -> D.t
end
end