Frama-C API - UnrollUnnatural
Control flow graphs where unnatural loops are modified such that all paths entering a loop enters it by its head.
module Vertex_Set : Datatype.S_with_collections with type t = Vertex.Set.tmodule Version : Datatype.S_with_collections with type t = Vertex.t * Vertex.Set.tinclude Graph with type V.t = Version.t and type E.t = Version.t * Version.t edge * Version.t and type V.label = Version.t and type E.label = Version.t edge
include Graph.Sig.I with type V.t = Version.t with type E.t = Version.t * Version.t edge * Version.t with type V.label = Version.t with type E.label = Version.t edge
module E : sig ... endtype edge = E.tval is_empty : t -> boolval nb_vertex : t -> intval nb_edges : t -> intval create : ?size:int -> unit -> tval clear : t -> unittype wto = vertex Wto.partitionval pretty : t Pretty_utils.formatterBuild a wto for the given automaton. The pref function is a comparison function used to determine what is the best vertex to use as a Wto component head. See Wto.Make for more details.
val output_to_dot : ?pp_vertex:V.t Pretty_utils.formatter -> ?pp_edge:E.label Pretty_utils.formatter -> ?wto:wto -> Stdlib.out_channel -> t -> unitOutput the automaton in dot format
val exit_strategy : t -> V.t Wto.component -> wtoExtract an exit strategy from a component, i.e. a sub-wto where all vertices lead outside the wto without passing through the head.
module type Domain = sig ... endAbstract domains
module ForwardAnalysis (D : Domain) : sig ... endForward dataflow analysis
module BackwardAnalysis (D : Domain) : sig ... endForward dataflow analysis
val build : automaton -> G.vertex Wto.partition -> WTOIndex.Table.t -> t