package mopsa
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=9f673f79708b44a7effb3b6bb3618d2c
sha512=cb91cb428e43a22f1abbcb8219710d0c10a5b3756d0da392d4084b3b3a6157350776c596983e63def344f617d39964e91f244f60c07958695ee5c8c809a9f0f4
doc/powersets/Powersets/Excluded/SimplifiedValue/index.html
Module Excluded.SimplifiedValueSource
Types
*********
module Set : sig ... endHeader of the abstraction
*****************************
include sig ... end
val id : t Core__Id.idOptions
***********
Utilities
*************
bound a is a if the number of elements in a is lesser or equal to the maximum number of elements allowed, otherwise it is top. Does not bound the size of NotIn, as there are no infinite ascending chains for NotIn.
of_bounds l r is {l, l+1, ..., r} if this set has size up to the maximum number of elements, otherwise it is NotIn {l-1, r+1}. This is a precision optimization compared to simply return top, as we already know that l - 1 and r + 1 will not be in the set of elements. Due to this optimization, top is often represented as ∉{MININT - 1, MAXINT + 1} in C programs.
of_bool t f is:
∅ift = falseandf = false{0}ift = falseandf = true{1}ift = trueandf = false{0,1}ift = trueandf = true
combine combiner s1 s2 is {combiner x1 x2 | x1 ∈ s1, x2 ∈ s2}.
Forward semantics
*********************
combine_with combiner a1 a2 combines the elements of a1 and a2 with combiner. If a1 and a2 are finite sets, it applies combiner to the cartesian product of the two. If a1 and a2 are both exclued powersets, returns top. If one of the two is a finite set of size exactly one (and therefore, it is a definite value), returns an excluded set where the constant is combined with the excluded powerset. Otherwise, returns top.
include module type of struct include Mopsa.Sig.Abstraction.Simplified_value.DefaultValueFunctions end
val filter : bool -> Core.All.typ -> 't -> 'tval backward_unop :
Core.All.operator ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
'tval backward_binop :
Core.All.operator ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
't * 't