Osek.FlagThe basic thread domain that distinguishes singlethreaded mode, a single * thread ID, and otherwise goes to top.
module Simple = ThreadFlagDomain.Simplemodule ThreadLifted = ThreadIdDomain.ThreadLiftedinclude sig ... endtype t = Simple.t * ThreadLifted.tval equal : t -> t -> Ppx_deriving_runtime.boolval compare : t -> t -> Ppx_deriving_runtime.inttype group = Printable.Std.group = |val show_group : group -> 'aval hash : (Simple.t * ThreadLifted.t) -> intval printXml : 'a BatInnerIO.output -> (Simple.t * ThreadLifted.t) -> unitval to_yojson :
(Simple.t * ThreadLifted.t) ->
[> `Assoc of (string * Printable.json) list ]val invariant : Invariant.context -> (Simple.t * ThreadLifted.t) -> Invariant.tval arbitrary : unit -> (Simple.t * ThreadLifted.t) QCheck.arbitraryval relift : (Simple.t * ThreadLifted.t) -> Simple.t * ThreadLifted.tval bot : unit -> Simple.t * ThreadLifted.tval is_bot : (Simple.t * ThreadLifted.t) -> boolval top : unit -> Simple.t * ThreadLifted.tval is_top : (Simple.t * ThreadLifted.t) -> boolval leq : (Simple.t * ThreadLifted.t) -> (Simple.t * ThreadLifted.t) -> boolval op_scheme :
('a -> 'b -> Simple.t) ->
('c -> 'd -> ThreadLifted.t) ->
('a * 'c) ->
('b * 'd) ->
tval join : (Simple.t * ThreadLifted.t) -> (Simple.t * ThreadLifted.t) -> tval meet : (Simple.t * ThreadLifted.t) -> (Simple.t * ThreadLifted.t) -> tval narrow : (Simple.t * ThreadLifted.t) -> (Simple.t * ThreadLifted.t) -> tval widen : (Simple.t * ThreadLifted.t) -> (Simple.t * ThreadLifted.t) -> tval is_multi : (Simple.t * 'a) -> boolval is_not_main : (Simple.t * 'a) -> boolval show :
(Simple.t * [< `Bot | `Lifted of ThreadIdDomain.Thread.t | `Top ]) ->
stringval pretty :
unit ->
(Simple.t * [< `Bot | `Lifted of ThreadIdDomain.Thread.t | `Top ]) ->
Pretty.doc