Module InferModules.BufferOverrunDomainRelation

module F = Stdlib.Format
module type S = sig ... end
module NoRelation : sig ... end
module type Manager_S = sig ... end
module Make : functor (Manager : Manager_S) -> sig ... end
module ApronOctagonManager : sig ... end
module ElinaPolyManager : sig ... end
include S
module Var : sig ... end
module Sym : sig ... end
module SymExp : sig ... end
module Constraints : sig ... end
module SubstMap : sig ... end
include AbstractDomain.S
include AbstractDomain.NoJoin
val (<=) : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val join : t -> t -> t
val widen : prev:t -> next:t -> num_iters:int -> t
val set_deserialize : unit -> unit
val compare : t -> t -> int
val empty : t
val bot : t
val is_unsat : t -> bool
val lt_sat_opt : SymExp.t option -> SymExp.t option -> t -> bool
val le_sat_opt : SymExp.t option -> SymExp.t option -> t -> bool
val meet_constraints : Constraints.t -> t -> t
val store_relation : AbsLoc.PowLoc.t -> (SymExp.t option * SymExp.t option * SymExp.t option) -> t -> t
val init_param : AbsLoc.Loc.t -> t -> t
val init_array : AbsLoc.Allocsite.t -> offset_opt:Itv.t option -> size:Itv.t -> size_exp_opt:SymExp.t option -> t -> t
val forget_locs : AbsLoc.PowLoc.t -> t -> t
val instantiate : caller:t -> callee:t -> SubstMap.t -> t