package mopsa

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Header of the abstraction

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

type t

Type of the abstract value.

val id : t Core.All.id

Identifier of the value domain

val accept_type : Core.All.typ -> bool

Predicate of types abstracted by the value domain

val name : string

Name of the value domain

val display : string

Display name used in debug messages

val bottom : t

Least abstract element of the lattice.

val top : t

Greatest abstract element of the lattice.

Lattice operators

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

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.

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.

Forward semantics

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

val constant : Core.All.constant -> Core.All.typ -> t

Evaluation of constants

Evaluation of unary operators

Evaluation of binary operators

val filter : bool -> Core.All.typ -> t -> t

Filter of truth values

val avalue : 'r Core.All.avalue_kind -> t -> 'r option

Cast to avalues

Backward semantics

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

val backward_unop : Core.All.operator -> Core.All.typ -> t -> Core.All.typ -> t -> t

Backward evaluation of unary operators

val backward_binop : Core.All.operator -> Core.All.typ -> t -> Core.All.typ -> t -> Core.All.typ -> t -> t * t

Backward evaluation of binary operators

val compare : Core.All.operator -> bool -> Core.All.typ -> t -> Core.All.typ -> t -> t * t

Backward evaluation of comparisons

Pretty printer

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

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

Printer of an abstract element.

OCaml

Innovation. Community. Security.