Module InferModules__BiabductionSummary

module Jprop : sig ... end

Module for joined props: the result of joining together propositions repeatedly

module Visitedset : InferStdlib.IStd.Caml.Set.S with type Visitedset.elt = InferIR.Procdesc.Node.id * int list

set of visited nodes: node id and list of lines of all the instructions

type 'a spec = {
pre : 'a Jprop.t;
posts : ('a InferModules.Prop.t * InferModules.Paths.Path.t) list;
visited : Visitedset.t;
}

A spec consists of: pre: a joined prop posts: a list of props with path visited: a list of pairs (node_id, line) for the visited nodes

module NormSpec : sig ... end

encapsulate type for normalized specs

val normalized_specs_to_specs : NormSpec.t list ‑> InferModules.Prop.normal spec list

Cast a list of normalized specs to a list of specs

val d_spec : 'a spec ‑> unit

Dump a spec

val spec_normalize : InferIR.Tenv.t ‑> InferModules.Prop.normal spec ‑> NormSpec.t

Convert spec into normal form w.r.t. variable renaming

val pp_spec : InferStdlib.Pp.env ‑> (int * int) option ‑> Format.formatter ‑> InferModules.Prop.normal spec ‑> unit

Print the spec

type phase =
| FOOTPRINT
| RE_EXECUTION
val equal_phase : phase ‑> phase ‑> bool
val string_of_phase_short : phase ‑> string
val get_specs_from_preposts : NormSpec.t list option ‑> InferModules.Prop.normal spec list
type t = {
preposts : NormSpec.t list;
phase : phase;
}
val opt_get_phase : t option ‑> phase
val pp : InferStdlib.Pp.env ‑> Format.formatter ‑> t ‑> unit