Module type StoreMotionOracle.St_type

module type St_type = sig .. end

type t 
type s 
val empty : t
val block_entry : t -> t
val empty_subset : t -> s
val subset : t ->
s -> t
val meminv : t -> BTL_Invariants.imem
val self_inv_annot : t -> BTL.meminv_annot_t
val push : StoreMotionOracle.cand ->
t ->
t * (bool * bool) *
(s ->
s * StoreMotionOracle.stores * bool)
type smash_t = t ->
t *
(s -> s)
val smash : (StoreMotionOracle.cand -> bool) -> smash_t
val smash_reg : Registers.reg -> smash_t
val smash_all : smash_t
val t_join : t ->
t ->
(t,
s ->
s * BTL.meminv_annot_t)
StoreMotionOracle.join_res
val s_join : t ->
s ->
s ->
(s, StoreMotionOracle.stores)
StoreMotionOracle.join_res
val print : Stdlib.out_channel -> t -> unit
val print_subset : Stdlib.out_channel -> s -> unit