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/Languages/Universal/Numeric/Relational/Instances/Polyhedra/index.html

Module Instances.Polyhedra

val with_context : 'a -> 'b -> 'b * 'a
val is_numerical_var : MopsaLib.var -> bool
val empty_env : Apron.Environment.t
val print_env : 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 : (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> ((Apron.Coeff.t * MopsaLib.var) list * Apron.Coeff.t * Apron.Lincons1.typ) list
val constraints_of_var : MopsaLib.var -> ((Apron.Coeff.t * MopsaLib.var) list * 'a * 'b) list -> ((Apron.Coeff.t * MopsaLib.var) list * 'a * 'b) list
val constant_vars : (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> MopsaLib.var list
exception UnsupportedExpression
exception ImpreciseExpression
val binop_to_apron : MopsaLib.operator -> Apron.Texpr1.binop
val typ_to_apron : MopsaLib.typ -> Apron.Texpr1.typ
val is_env_var : MopsaLib.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 -> Polka.loose Polka.t Apron.Abstract1.t -> Polka.loose Polka.t Apron.Abstract1.t
val exp_to_apron : (MopsaLib.expr -> bool) -> MopsaLib.expr -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Apron.Var.t list -> Apron.Texpr1.expr * Polka.loose Polka.t Apron.Abstract1.t * Binding.t * Apron.Var.t list
val bexp_to_apron : (MopsaLib.expr -> bool) -> MopsaLib.expr -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Apron.Var.t list -> (Apron.Tcons1.typ * Apron.Texpr1.expr * Framework.Core.Ast.Typ.typ * Apron.Texpr1.expr * Framework.Core.Ast.Typ.typ) Mopsa_utils.Core.Dnf.t * Polka.loose Polka.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 = Polka.loose Polka.t Apron.Abstract1.t * Binding.t
val id : t Mopsa_analyzer__Framework__Core__Id.id
val name : string
val debug : ('a, Format.formatter, unit, unit) format4 -> 'a
val numeric_name : string
val unify : Polka.loose Polka.t Apron.Abstract1.t -> Polka.loose Polka.t Apron.Abstract1.t -> Polka.loose Polka.t Apron.Abstract1.t * Polka.loose Polka.t Apron.Abstract1.t * bool
val add_missing_vars : (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> MopsaLib.var list -> Polka.loose Polka.t Apron.Abstract1.t * Binding.t
val print_state : MopsaLib.printer -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> unit
val top : Polka.loose Polka.t Apron.Abstract1.t * Binding.t
val bottom : Polka.loose Polka.t Apron.Abstract1.t * Binding.t
val is_bottom : (Polka.loose Polka.t Apron.Abstract1.t * 'a) -> bool
val subset : (Polka.loose Polka.t Apron.Abstract1.t * 'a) -> (Polka.loose Polka.t Apron.Abstract1.t * 'b) -> bool
val join : (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t
val meet : (Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t
val widen : 'a -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t
val init : 'a -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) * 'b list
val remove_var : MopsaLib.var -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t
val forget_var : MopsaLib.var -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.t
val bound_var : MopsaLib.var -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> Universal.Numeric.Values.Intervals.Integer.Value.t
val is_var_numeric_type : MopsaLib.var -> bool
val assume : MopsaLib.stmt -> (('a, bool) Framework.Core.Query.query -> bool) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) option
val merge : ('a * 'b) -> ((Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) * MopsaLib.change) -> ((Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t) * MopsaLib.change) -> Polka.loose Polka.t Apron.Abstract1.t * Binding.Equiv.t
val enforce_sign_constraint : Framework.Core.All.var -> (('a, bool) Framework.Core.Query.query -> bool) -> 'b Framework.Core.All.ctx -> MopsaLib.range -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) option -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) option
val exec : MopsaLib.stmt -> ('a, 'b) Mopsa_analyzer.MopsaLib.Sig.Abstraction.Simplified.simplified_man -> 'c Framework.Core.All.ctx -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) option
val vars : ('a Apron.Abstract1.t * Binding.t) -> MopsaLib.var list
val print_expr : ('a, 'b) Mopsa_analyzer.MopsaLib.Sig.Abstraction.Simplified.simplified_man -> 'c Framework.Core.All.ctx -> (Polka.loose Polka.t Apron.Abstract1.t * Binding.t) -> MopsaLib.printer -> Framework.Core.Ast.Expr.expr -> unit
OCaml

Innovation. Community. Security.