Module Wp.Splitter

module Splitter: sig .. end

type tag = 
| MARK of Cil_types.stmt
| THEN of Cil_types.stmt
| ELSE of Cil_types.stmt
| CALL of Cil_types.stmt * Cil_types.kernel_function
| CASE of Cil_types.stmt * int64 list
| DEFAULT of Cil_types.stmt
| ASSERT of Cil_types.identified_predicate * int * int
val loc : tag -> Cil_types.location
val pretty : Stdlib.Format.formatter -> tag -> unit
val mark : Cil_types.stmt -> tag
val if_then : Cil_types.stmt -> tag
val if_else : Cil_types.stmt -> tag
val switch_cases : Cil_types.stmt -> int64 list -> tag
val switch_default : Cil_types.stmt -> tag
val cases : Cil_types.identified_predicate ->
(tag * Cil_types.predicate) list option
val call : Cil_types.stmt -> Cil_types.kernel_function -> tag
type 'a t 
val empty : 'a t
val singleton : 'a -> 'a t
val group : tag -> ('a list -> 'a) -> 'a t -> 'a t
val union : ('a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t
val merge : left:('a -> 'c) ->
both:('a -> 'b -> 'c) ->
right:('b -> 'c) -> 'a t -> 'b t -> 'c t
val merge_all : ('a list -> 'a) -> 'a t list -> 'a t
val length : 'a t -> int
val map : ('a -> 'b) -> 'a t -> 'b t
val iter : (tag list -> 'a -> unit) -> 'a t -> unit
val fold : (tag list -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val exists : ('a -> bool) -> 'a t -> bool
val for_all : ('a -> bool) -> 'a t -> bool
val filter : ('a -> bool) -> 'a t -> 'a t