package mopsa

  1. Overview
  2. Docs
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mopsa-analyzer-v1.2.tar.gz
md5=37966e98ffeebcedc09bd6e9b2b81f69
sha512=40d4d826c25f680766c07eccbabdf5e8a4fa023016e8a164e4e4f6b3781c8484dc4df437055721dfd19b9db8fb7fe3b61236c4833186d346fc7204a68d01eaaa

doc/mopsa.mopsa_analyzer/Mopsa_analyzer/Framework/Combiners/Value/Nonrel/Make/index.html

Module Nonrel.Make

Create a non-relational domain from a value abstraction

Parameters

Signature

Domain header

*****************

Type of an abstract elements.

val id : t Core.All.id

Domain identifier

val name : string

Domain name

val bottom : t

Least abstract element of the lattice.

val top : t

Greatest abstract element of the lattice.

Predicates

**************

val is_bottom : t -> bool

is_bottom a tests whether a is bottom or not.

val subset : t -> t -> bool

Partial order relation. subset a1 a2 tests whether a1 is related to (or included in) a2.

Operators

*************

val join : t -> t -> t

join a1 a2 computes an upper bound of a1 and a2.

val meet : t -> t -> t

meet a1 a2 computes a lower bound of a1 and a2.

val widen : 'a Core.All.ctx -> t -> t -> t

widen ctx a1 a2 computes an upper bound of a1 and a2 that ensures stabilization of ascending chains.

val merge : t -> (t * Core.All.change) -> (t * Core.All.change) -> t

merge pre (post1, change1) (post2, change2) synchronizes two divergent post-conditions post1 and post2 using a common pre-condition pre.

Diverging post-conditions emerge after a fork-join trajectory in the abstraction DAG (e.g., a reduced product).

The changes change1 and change2 represent a journal of internal statements executed during the the computation of the post-conditions over the two trajectories.

Transfer functions

**********************

Initial abstract element, and assumptions about the domain (prototype, ...)

Computation of post-conditions

val ask : ('a, 'r) Core.All.query -> ('a, t) Sig.Abstraction.Simplified.simplified_man -> 'a Core.All.ctx -> t -> 'r option

Handler of queries

Printing

************

val print_state : Core.All.printer -> t -> unit

Printer of an abstract element.

Printer of an expression's value

OCaml

Innovation. Community. Security.