package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
include Lattice.S
include Lattice.PO
include Printable.S
type t
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
val show : t -> string
val pretty : unit -> t -> Goblint_lib.Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> t -> unit
val name : unit -> string
val to_yojson : t -> Yojson.Safe.t
val tag : t -> int

Unique ID, given by HConsed, for context identification in witness

val arbitrary : unit -> t QCheck.arbitrary
val relift : t -> t
val leq : t -> t -> bool
val join : t -> t -> t
val meet : t -> t -> t
val widen : t -> t -> t

widen x y assumes leq x y. Solvers guarantee this by calling widen old (join old new).

val narrow : t -> t -> t
val pretty_diff : unit -> (t * t) -> Goblint_lib.Lattice.Pretty.doc

If leq x y = false, then pretty_diff () (x, y) should explain why.

val bot : unit -> t
val is_bot : t -> bool
val top : unit -> t
val is_top : t -> bool
type s
type r
val string_of : t -> string
val string_of_key : k -> string
val string_of_record : r -> string
val make : k -> Node.t list -> s -> t
val map : (r -> r) -> t -> t
val filter : (r -> bool) -> t -> t
val union : t -> t -> t
val set_key : k -> t -> t
val set_state : s -> t -> t
val remove_state : s -> t -> t
val map' : (r -> 'a) -> t -> 'a Goblint_lib.Prelude.Set.t * 'a Goblint_lib.Prelude.Set.t
val filter' : (r -> bool) -> t -> r Goblint_lib.Prelude.Set.t * r Goblint_lib.Prelude.Set.t
val length : t -> int * int
val must : (r -> bool) -> t -> bool
val may : (r -> bool) -> t -> bool
val key : r -> k
val loc : r -> Node.t list
val edit_loc : (Node.t list -> Node.t list) -> r -> r
val state : r -> s
val in_state : s -> r -> bool
val get_record : t -> r option
val make_var : k -> t
val is_alias : t -> bool
val get_alias : t -> k
val make_alias : k -> t