package goblint

  1. Overview
  2. Docs
Static analysis framework for C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

goblint-2.7.1.tbz
sha256=af01aac256229f33a90a9fcbfed04b01e3097f154d4d124f006476d6387c6a66
sha512=2a93bfe16881adbc2d8dcbfe38c1e19cd24ca105d8e1eda13d02440f3002874ffe2957dfd937510765233a054a40568b0052db92e31d382a5bd215d1ec12565c

doc/goblint.lib/Goblint_lib/CongruenceClosure/SSet/index.html

Module CongruenceClosure.SSet

Set of subterms which are present in the current data structure.

type t = TSet.t
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val elements : TSet.t -> TSet.elt list
val mem : TSet.elt -> TSet.t -> bool
val add : TSet.elt -> TSet.t -> TSet.t
val fold : (TSet.elt -> 'a -> 'a) -> TSet.t -> 'a -> 'a
val empty : TSet.t
val to_list : TSet.t -> TSet.elt list
val inter : TSet.t -> TSet.t -> TSet.t
val find_opt : TSet.elt -> TSet.t -> TSet.elt option
val union : TSet.t -> TSet.t -> TSet.t
val show_set : TSet.t -> string
val subterms_of_term : (TSet.t * LMap.t) -> term -> TSet.t * LMap.t

Adds all subterms of t to the SSet and the LookupMap

val subterms_of_conj : (term * term * 'a) list -> TSet.t * LMap.t
val fold_atoms : ('a -> T.t -> 'a) -> 'a -> TSet.t -> 'a
val get_atoms : TSet.t -> term list
val deref_term : term -> Z.t -> TSet.t -> term

We try to find the dereferenced term between the already existing terms, in order to remember the information about the exp.

val deref_term_even_if_its_not_possible : term -> Z.t -> TSet.t -> term

Sometimes it's important to keep the dereferenced term, even if it's not technically possible to dereference it from a point of view of the C types. We still need the dereferenced term for the correctness of some algorithms, and the resulting expression will never be used, so it doesn't need to be a C expression that makes sense.