module Logic_simplification:Given a list of terms (representing a conjunction), if a positive call or return is present, then all negative ones are obvious and removedsig
..end
Basic simplification over Promelaast.typed_condition
val pretty_clause : Format.formatter -> Promelaast.typed_condition list -> unit
val pretty_dnf : Format.formatter -> Promelaast.typed_condition list list -> unit
val condToDNF : Promelaast.typed_condition -> Promelaast.typed_condition list list
val removeTerm : Promelaast.typed_condition ->
Promelaast.typed_condition list -> Promelaast.typed_condition list
val positiveCallOrRet : Promelaast.typed_condition list -> Promelaast.typed_condition list
val rel_are_equals : 'a * Cil_types.term * Cil_types.term ->
'a * Cil_types.term * Cil_types.term -> bool
val opposite_rel : Cil_types.relation -> Cil_types.relation
val contradict_rel : Cil_types.relation * Cil_types.term * Cil_types.term ->
Cil_types.relation * Cil_types.term * Cil_types.term -> bool
val simplify : Promelaast.typed_condition list -> Promelaast.typed_condition list
val termsAreEqual : Promelaast.typed_condition -> Promelaast.typed_condition -> bool
val clausesAreSubSetEq : Promelaast.typed_condition list -> Promelaast.typed_condition list -> bool
val clausesAreEqual : Promelaast.typed_condition list -> Promelaast.typed_condition list -> bool
val removeClause : Promelaast.typed_condition list list ->
Promelaast.typed_condition list -> Promelaast.typed_condition list list
val negativeClause : Promelaast.typed_condition list -> Promelaast.typed_condition list
val simplifyClauses : Promelaast.typed_condition list list -> Promelaast.typed_condition list list
val tor : Promelaast.typed_condition ->
Promelaast.typed_condition -> Promelaast.typed_condition
val tand : Promelaast.typed_condition ->
Promelaast.typed_condition -> Promelaast.typed_condition
val tnot : Promelaast.typed_condition -> Promelaast.typed_condition
val tands : Promelaast.typed_condition list -> Promelaast.typed_condition
val tors : Promelaast.typed_condition list -> Promelaast.typed_condition
val dnfToCond : Promelaast.typed_condition list list -> Promelaast.typed_condition
val dnfToParametrized : Promelaast.typed_condition list list -> Promelaast.typed_condition list list
val simplClause : Promelaast.typed_condition list list ->
Promelaast.typed_condition list -> Promelaast.typed_condition list list
val simplifyCond : Promelaast.typed_condition ->
Promelaast.typed_condition * Promelaast.typed_condition list list
Given a condition, this function does some logical simplifications
and returns an equivalent DNF form together with the simplified version
val simplifyTrans : Promelaast.typed_condition Promelaast.trans list ->
Promelaast.typed_condition Promelaast.trans list *
Promelaast.typed_condition list list list
Given a transition list, this function returns the same transition list with simplifyCond done on each cross condition. Uncrossable transition are removed.
val simplifyDNFwrtCtx : Promelaast.typed_condition list list ->
Kernel_function.t -> Promelaast.funcStatus -> Promelaast.typed_condition