package goblint
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=b729c94adb383a39aea32eb005c988dfd44b92af22ee6a4eedf4239542ac6c26
sha512=643b98770e5fe5644324c95c9ae3a9f698f25c8b11b298f0751d524e0b20af368b2a465fc8200b75a73d48fc9a053fd90f5e8920d4db070927f93188bb8687e0
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.RawStringsWidening token.
module TS : sig ... endWidening token set.
val add : Token.t -> unitAdd widening token to local state.
val with_side_token : TS.elt -> (unit -> 'a) -> 'awith_side_token t f adds widening token t to all side effects in f.
val with_side_tokens : TS.t -> (unit -> 'a) -> 'awith_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.SpecLift S to carry widening tokens with both local and global states.