package mopsa
Install
Dune Dependency
Authors
Maintainers
Sources
md5=fdee20e988343751de440b4f6b67c0f4
sha512=f5cbf1328785d3f5ce40155dada2d95e5de5cce4f084ea30cfb04d1ab10cc9403a26cfb3fa55d0f9da72244482130fdb89c286a9aed0d640bba46b7c00e09500
doc/powersets/Powersets/Excluded/SimplifiedValue/index.html
Module Excluded.SimplifiedValue
Source
Types
*********
module Set : sig ... end
Header of the abstraction
*****************************
include sig ... end
val id : t Core__Id.id
Options
***********
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 = false
andf = false
{0}
ift = false
andf = true
{1}
ift = true
andf = false
{0,1}
ift = true
andf = 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 -> 't
val backward_unop :
Core.All.operator ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
't
val backward_binop :
Core.All.operator ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
Core.All.typ ->
't ->
't * 't