package goblint

  1. Overview
  2. Docs
Static analysis framework for C

Install

dune-project
 Dependency

Authors

Maintainers

Sources

goblint-2.6.0.tbz
sha256=20d5b7332a9f6072ab9ba86c4a53b898eaf681286c56a8805c41850bbf3ddf41
sha512=7c7685cfcd9aa866bc40e813df2bfcb3c79b3d40e615d8d6d0939c5798b9d70dd7f2ba87a741f5ba0ce891e9d254627207fb28057f1f2f6611e4e0d128fd6a71

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.