module Fol_split: sig
.. end
Splitting Goals
module Env: Map.Make
(
Fol.Var
)
val is_zone : 'a Fol.d_term -> bool
val e_unfold : 'a Fol.d_term Env.t -> 'a Fol.d_term -> 'a Fol.d_term
val p_unfold : 'a Fol.d_term Env.t -> 'a Fol.d_term Fol.t_pred -> 'a Fol.d_pred
val flatten : 'a Fol.d_term list -> 'a Fol.d_term -> 'a Fol.d_term list
val zunion : 'a Fol.d_term list -> 'a Fol.d_term
val included : 'a Fol.d_term -> 'a Fol.d_term -> 'a Fol.d_pred Bag.t
val dispatch : 'a Fol.d_term Fol.t_pred -> 'a Fol.d_pred Bag.t
Splits conjunctions and unfold the definition
of included
over zones
.
type
pred = unit Fol.d_pred
val split : Mcfg.assigns_method -> 'a Fol.d_term Fol.t_pred -> 'a Fol.d_pred Bag.t
First, unfold zones when method is effect-assigns.
Then applies dispatch
.