package goblint

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Lift D to carry widening tokens. All operations delegate to inner domain, except widening tokens are used to delay widenings.

Parameters

module D : Lattice.S

Signature

include sig ... end
val expand_fst : bool
val expand_snd : bool
type t = D.t * TS.t
val tag : 'a -> 'b
val show : (D.t * TS.t) -> string
val name : unit -> string
val pretty : unit -> (D.t * TS.t) -> GoblintCil.Pretty.doc
val printXml : 'a BatInnerIO.output -> (D.t * TS.t) -> unit
val to_yojson : (D.t * TS.t) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (D.t * TS.t) QCheck.arbitrary
val relift : (D.t * TS.t) -> D.t * TS.t
val bot : unit -> D.t * TS.t
val top : unit -> D.t * TS.t
val is_top : (D.t * TS.t) -> bool
val pretty_diff : unit -> (t * t) -> GoblintCil.Pretty.doc
val op_scheme : ('a -> 'b -> D.t) -> ('c -> 'd -> TS.t) -> ('a * 'c) -> ('b * 'd) -> t
val join : (D.t * TS.t) -> (D.t * TS.t) -> t
val meet : (D.t * TS.t) -> (D.t * TS.t) -> t
val narrow : (D.t * TS.t) -> (D.t * TS.t) -> t
val unlift : ('a * 'b) -> 'a
val lift : 'a -> 'a * TS.t
val equal : (D.t * 'a) -> (D.t * 'b) -> bool
val compare : (D.t * 'a) -> (D.t * 'b) -> int
val hash : (D.t * 'a) -> int
val leq : (D.t * 'a) -> (D.t * 'b) -> bool
val is_bot : (D.t * 'a) -> bool
val widen : (D.t * TS.t) -> (D.t * TS.t) -> D.t * TS.t
OCaml

Innovation. Community. Security.