package mopsa

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

Parameters

Signature

include sig ... end
val with_context : 'a -> 'b -> 'b * 'a
val is_numerical_var : Mopsa.var -> bool
val empty_env : Apron.Environment.t
val print_env : Stdlib.Format.formatter -> Apron.Environment.t -> unit
val filter_env : (Apron.Var.t -> bool) -> (Apron.Var.t -> bool) -> Apron.Environment.t -> Apron.Environment.t
val fold_env : (Apron.Var.t -> 'a -> 'a) -> Apron.Environment.t -> 'a -> 'a
val exists_env : (Apron.Var.t -> bool) -> Apron.Environment.t -> bool
val gce : Apron.Environment.t -> Apron.Environment.t -> Apron.Environment.t
val diff : Apron.Environment.t -> Apron.Environment.t -> Apron.Environment.t
val to_constraints : (ApronManager.t Apron.Abstract1.t * Binding.t) -> ((Apron.Coeff.t * Mopsa.var) list * Apron.Coeff.t * Apron.Lincons1.typ) list
val constraints_of_var : Mopsa.var -> ((Apron.Coeff.t * Mopsa.var) list * 'a * 'b) list -> ((Apron.Coeff.t * Mopsa.var) list * 'a * 'b) list
val constant_vars : (ApronManager.t Apron.Abstract1.t * Binding.t) -> Mopsa.var list
exception UnsupportedExpression
exception ImpreciseExpression
val binop_to_apron : Mopsa.operator -> Apron.Texpr1.binop
val typ_to_apron : Mopsa.typ -> Apron.Texpr1.typ
val is_env_var : Mopsa.var -> ('a Apron.Abstract1.t * Binding.t) -> bool
val is_env_var_apron : Apron.Var.t -> 'a Apron.Abstract1.t -> bool
val remove_tmp : Apron.Var.t list -> ApronManager.t Apron.Abstract1.t -> ApronManager.t Apron.Abstract1.t
val exp_to_apron : (Mopsa.expr -> bool) -> Mopsa.expr -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> Apron.Var.t list -> Apron.Texpr1.expr * ApronManager.t Apron.Abstract1.t * Binding.t * Apron.Var.t list
val bexp_to_apron : (Mopsa.expr -> bool) -> Mopsa.expr -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> Apron.Var.t list -> (Apron.Tcons1.typ * Apron.Texpr1.expr * Ast.Typ.typ * Apron.Texpr1.expr * Ast.Typ.typ) Mopsa.Dnf.t * ApronManager.t Apron.Abstract1.t * Binding.t * Apron.Var.t list
val tcons_array_of_tcons_list : Apron.Environment.t -> Apron.Tcons1.t list -> Apron.Tcons1.earray
type t = ApronManager.t Apron.Abstract1.t * Binding.t

Bindings between Mopsa and Apron variables

include sig ... end
val id : t Core__Id.id
val name : string
val debug : ('a, Stdlib.Format.formatter, unit, unit) Stdlib.format4 -> 'a
val numeric_name : string

Environment utility functions

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

val unify : ApronManager.t Apron.Abstract1.t -> ApronManager.t Apron.Abstract1.t -> ApronManager.t Apron.Abstract1.t * ApronManager.t Apron.Abstract1.t
val add_missing_vars : (ApronManager.t Apron.Abstract1.t * Binding.t) -> Mopsa.var list -> ApronManager.t Apron.Abstract1.t * Binding.t

Lattice operators

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

val top : ApronManager.t Apron.Abstract1.t * Binding.t
val bottom : ApronManager.t Apron.Abstract1.t * Binding.t
val is_bottom : (ApronManager.t Apron.Abstract1.t * 'a) -> bool
val subset : (ApronManager.t Apron.Abstract1.t * 'a) -> (ApronManager.t Apron.Abstract1.t * 'b) -> bool
val join : (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> ApronManager.t Apron.Abstract1.t * Binding.Equiv.t
val meet : (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> ApronManager.t Apron.Abstract1.t * Binding.Equiv.t
val widen : 'a -> (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) -> ApronManager.t Apron.Abstract1.t * Binding.Equiv.t

Transfer functions

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

val init : 'a -> ApronManager.t Apron.Abstract1.t * Binding.t
val remove_var : Mopsa.var -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> ApronManager.t Apron.Abstract1.t * Binding.Equiv.t
val forget_var : Mopsa.var -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> ApronManager.t Apron.Abstract1.t * Binding.t
val merge : ('a * 'b) -> ((ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) * Mopsa.effect) -> ((ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) * Mopsa.effect) -> ApronManager.t Apron.Abstract1.t * Binding.Equiv.t
val is_var_numeric_type : Mopsa.var -> bool
val assume : Mopsa.stmt -> (('a, bool) Core.Query.query -> bool) -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> (ApronManager.t Apron.Abstract1.t * Binding.t) option
val enforce_sign_constraint : Core.All.var -> (('a, bool) Core.Query.query -> bool) -> 'b Core.All.ctx -> Mopsa.range -> (ApronManager.t Apron.Abstract1.t * Binding.t) option -> (ApronManager.t Apron.Abstract1.t * Binding.t) option

Add the sign contraint (if existing) of a given variable into the relationnal domain

val exec : Mopsa.stmt -> ('a, 'b) Mopsa.Sig.Abstraction.Simplified.simplified_man -> 'c Core.All.ctx -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> (ApronManager.t Apron.Abstract1.t * Binding.Equiv.t) option
val vars : ('a Apron.Abstract1.t * Binding.t) -> Mopsa.var list
val ask : 'r. ('a, 'r) Mopsa.query -> ('a, t) Mopsa.Sig.Abstraction.Simplified.simplified_man -> 'a Mopsa.ctx -> t -> 'r option
val print_state : Mopsa.printer -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> unit
val print_expr : ('a, 'b) Mopsa.Sig.Abstraction.Simplified.simplified_man -> 'c Core.All.ctx -> (ApronManager.t Apron.Abstract1.t * Binding.t) -> Mopsa.printer -> Ast.Expr.expr -> unit
OCaml

Innovation. Community. Security.