let simplifyCond condition =
Aorai_option.debug
"initial condition: %a" Promelaoutput.print_condition condition;
let res1 = condToDNF condition in
Aorai_option.debug "initial dnf: %a" pretty_dnf res1;
let res =
List.fold_left
(fun lclauses clause -> simplClause lclauses (positiveCallOrRet clause))
[] res1
in
Aorai_option.debug "after step 2: %a" pretty_dnf res;
let res =
List.fold_left
(fun lclauses clause -> simplClause lclauses (simplify clause)) [] res
in
Aorai_option.debug "after step 3: %a" pretty_dnf res;
let res = simplifyClauses res in
Aorai_option.debug "after step 4: %a" pretty_dnf res;
((dnfToCond res), res)