Index of modules


B
Behav [Wp_parameters]
Bottom [Wp_parameters]
BuiltinWhyFile [Wp_parameters]

C
CFG [WpAnnot]
CFG [Cil2cfg]
the CFG is an ocamlgraph
CFG [Calculus]
Calculus
Wp computation using the CFG
Call
Build a module that handles calls from the basic operations defined by the memory model.
Cfg [Wp_parameters]
Cfg [Calculus]
Cfg0 [Register]
Cfg1 [Register]
Cfg2 [Register]
Cfg3 [Register]
Cil2cfg
Build a CFG of a function keeping some information of the initial structure.

D
Dot [Wp_parameters]

E
E [Cil2cfg.Printer]
EL [Cil2cfg]
the CFG edges

F
Fol
apply do_exp on each sub expression of the predicate.
Functions [Wp_parameters]

H
HE [Cil2cfg]
HE [Calculus.Cfg]
to store de results of the computations
Hannots [WpAnnot]
This is an Hashtbl where some predicates are stored on CFG edges.
Hfol [Cil2cfg]
Hpred [Cil2cfg]

L
LoopInfo [Cil2cfg]
To use WeiMaoZouChen algorithm, we need to define how to interact with our CFG graph
Lowlevel_model
Transform this one into M3 ie memory access using address, offset and type/size

M
M [Mvar.MO_sig]
M [Model2]
M [Model1]
M [Model0]
M [Lowlevel_model]
M0 [Register]
M0_call [Register]
M0_no_call [Register]
M0_simple [Register]
M1 [Why_ops]
for model M1 only
M1 [Register]
M1_call [Register]
M1_no_call [Register]
M1_simple [Register]
M2 [Why_ops]
for model M2 only
M2 [Register]
M2_call [Register]
M2_no_call [Register]
M3 [Why_ops]
for model M3 only
M3 [Register]
M3_call [Register]
M3_no_call [Register]
MC [Mvar]
MM [Mmem]
MT [Mvar]
From Mv_sig, defines everything needed for translation
MT [Model1]
MT [Model0]
MT [Mvar.MV]
MT [Mmem]
MV [Mvar.MC]
MV [Mvar]
from Mv_sig, we can define operations shared by every memory model based on variables such as substitution, quantification, let, etc...
MV [Model1]
MV [Model0]
MV [Mmem.MM]
Macros
TODO : put this somewhere else
Mloop [Cil2cfg]
Mmem
Factorisation of functions for load/store memory models
Moblig [Calculus]
Model [Wp_parameters]
Model0
Model0 is a memory model that only handle direct access to the data (it means no * neither in the statements, nor in the property)
Model1
Model1 is a memory model that is close to caveat's one, but it should add guards to check is the are no problem with aliases.
Model2
This model is a load/store model but still only consider typed data only (ie not cast in address computation)
Msimple [Calculus]
This module takes a module that defines everything for T_with_call and build the simplest module in order to propagate predicates using the CFG.
Mvar
Shared between M0 and M1 ie variable based memory model.

N
NormAtLabels
push the Tat and Told down to the 'data' operations.

P
Printer [Cil2cfg]
Proof [Wp_parameters]
ProverTimeout [Wp_parameters]

R
Register
Process exceptions for all external functions.

T
T [Mvar.MV]
T [Mmem.MM]
ToGfol [Translate]
The exported translation functions may raise AbortTranslation, and normally no other exception...
Toprop
Signature for a module that defines basic things on the memory model
Translate
This module provides translations function from C expressions and ACSL annotations to the memory model internal representation.
Types
This file handles everything related to types : ctype are types from Cil, ie.

V
V [Wp_gui]
V [Cil2cfg.Printer]
VL [Cil2cfg]
the CFG nodes

W
WeiMaoZouChen [Cil2cfg]
Implementation of "A New Algorithm for Identifying Loops in Decompilation"
Why_ops
This file should group all the function names used in why files, with some hints about where there are defined, etc.
Why_output
Why interface
WithPrePost [Call]
WpAnnot
This file groups functions that extract some annotations and associates them with CFG edges.
WpFol
This file manage tables of global things that have to be exported in WHY file like variable declarations, axioms, etc.
Wp_gui
Wp_parameters