Module Logic_simplification


module Logic_simplification: sig .. end
Given a list of terms, if a positive call or return is present, then all negative ones are obvious and removed

Given a condition, this function does some logical simplifications.


val condToDNF : Promelaast.condition -> Promelaast.condition list list
val removeTerm : Promelaast.condition ->
Promelaast.condition list -> Promelaast.condition list
val positiveCallOrRet : Promelaast.condition list -> Promelaast.condition list
Given a list of terms, if a positive call or return is present, then all negative ones are obvious and removed
val ltl_exps : (string, Cil_types.exp * String.t * Cil_types.predicate) Hashtbl.t
Pervasives.ref
val setLtl_expressions : (string, Cil_types.exp * String.t * Cil_types.predicate) Hashtbl.t -> unit
val get_str_exp_from_tmpident : string -> String.t
val expAreEqual : string -> string -> bool
val simplify : Promelaast.condition list -> Promelaast.condition list
Given a list of terms, if a positive call or return is present, then all negative ones are obvious and removed
val termsAreEqual : Promelaast.condition -> Promelaast.condition -> bool
val clausesAreSubSetEq : Promelaast.condition list -> Promelaast.condition list -> bool
true iff clause1 <: clause2
val clausesAreEqual : Promelaast.condition list -> Promelaast.condition list -> bool
true iff clause1 <: clause2 and clause2 <: clause1
val removeClause : Promelaast.condition list list ->
Promelaast.condition list -> Promelaast.condition list list
return the clauses list named lclauses without any clause c such as cl <: c
val negativeClause : Promelaast.condition list -> Promelaast.condition list
val simplifyClauses : Promelaast.condition list list -> Promelaast.condition list list
val dnfToCond : Promelaast.condition list list -> Promelaast.condition
Given a DNF condition, it returns a condition in Promalaast.condition form. WARNING : empty lists not supported
val dnfToParametrized : Promelaast.condition list list -> Promelaast.condition list list
val simplifyCond : Promelaast.condition -> Promelaast.condition * Promelaast.condition list list
Given a condition, this function does some logical simplifications. It returns both the simplified condition and a disjunction of conjunctions of parametrized call or return.

Given a condition, this function does some logical simplifications.

val simplifyTrans : Promelaast.trans list ->
Promelaast.trans list * Promelaast.condition list list list
Given a list of transitions, this function returns the same list of transition with simplifyCond done on its cross condition

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.condition list list ->
String.t -> Promelaast.funcStatus -> Promelaast.condition list list
Given a DNF condition, it returns the same condition simplified according to the context (function name and status). Hence, the returned condition is without any Call/Return stmts.