package mopsa

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

Create a switch of two domains

Parameters

Signature

include Abstraction.Stacked.STACKED with type t = D1.t * D2.t

Domain header

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

type t = D1.t * D2.t

Type of an abstract elements.

val id : t Core.All.id

Domain identifier

val name : string

Name of the domain

val checks : Core.All.check list

List of checks performed by the domain

val bottom : t

Least abstract element of the lattice.

val top : t

Greatest abstract element of the lattice.

val is_bottom : t -> bool

is_bottom a tests whether a is bottom or not.

Lattice operators

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

val subset : ('a, t) Core.All.man -> 'a Core.All.ctx -> (t * 'a) -> (t * 'a) -> bool * 'a * 'a
val join : ('a, t) Core.All.man -> 'a Core.All.ctx -> (t * 'a) -> (t * 'a) -> t * 'a * 'a
val meet : ('a, t) Core.All.man -> 'a Core.All.ctx -> (t * 'a) -> (t * 'a) -> t * 'a * 'a
val widen : ('a, t) Core.All.man -> 'a Core.All.ctx -> (t * 'a) -> (t * 'a) -> t * 'a * 'a * bool

Transfer functions

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

Initialization function

Printing

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

val domains : Core.All.DomainSet.t
val semantics : Core.All.SemanticSet.t
val routing_table : Core.All.routing_table
val merge : t -> (t * Core.All.teffect) -> (t * Core.All.teffect) -> t
val exec : Core.All.DomainSet.t option -> Core.All.stmt -> ('a, t) Core.All.man -> 'a Core.All.flow -> 'a Core.All.post option
val eval : Core.All.DomainSet.t option -> Core.All.expr -> ('a, t) Core.All.man -> 'a Core.All.flow -> 'a Core.All.eval option
val ask : Core.All.DomainSet.t option -> ('a, 'r) Core.All.query -> ('a, t) Core.All.man -> 'a Core.All.flow -> ('a, 'r) Core.All.cases option
val print_state : Core.All.DomainSet.t option -> Core.All.printer -> t -> unit
val print_expr : Core.All.DomainSet.t option -> ('a, t) Core.All.man -> 'a Core.All.flow -> Core.All.printer -> Core.All.expr -> unit
OCaml

Innovation. Community. Security.