package goblint
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ca24f72fa9a87d288affe97c411753f14b7802bab4ca3649b337276b89bf5674
sha512=394b3521ccda0da91540cebb2f433f7525763060be4bbe179edd3b952a3580a8e173c4e410fc6895dc67fe6d17e6699aeddfed600f4692858bec093dd912bf1e
doc/goblint.lib/Goblint_lib/WideningTokens/index.html
Module Goblint_lib.WideningTokens
Widening tokens are a generic and dynamic mechanism for delaying widening.
All abstract elements carry a set of tokens, which analyses can add into. Lifted abstract elements are only widened if the token set does not increase, i.e. adding a widening token delays a widening.
module Token = Basetype.RawStrings
Widening token.
module TS : sig ... end
Widening token set.
val add : Token.t -> unit
Add widening token to local state.
val with_side_token : TS.elt -> (unit -> 'a) -> 'a
with_side_token t f
adds widening token t
to all side effects in f
.
val with_side_tokens : TS.t -> (unit -> 'a) -> 'a
with_side_tokens ts f
adds widening tokens ts
to all side effects in f
.
with_local_side_tokens f
adds all widening tokens from local state to all side effects in f
.
Lift D
to carry widening tokens. All operations delegate to inner domain, except widening tokens are used to delay widenings.
module Lifter (S : Analyses.Spec) : Analyses.Spec
Lift S
to carry widening tokens with both local and global states.