class type simplifier =object..end
method name : string
method copy : simplifier
method assume : F.pred -> unitAssumes the hypothesis
method target : F.pred -> unitGive the predicate that will be simplified later
method fixpoint : unitCalled after assuming hypothesis and knowing the goal
method infer : F.pred listAdd new hypotheses implied by the original hypothesis.
method equivalent_exp : F.term -> F.termCurrently simplify an expression. It must returns a equivalent formula from the assumed hypotheses.
method weaker_hyp : F.pred -> F.predCurrently simplify an hypothesis before assuming it. It must return a weaker formula from the assumed hypotheses.
method equivalent_branch : F.pred -> F.predCurrently simplify a branch condition. It must return an equivalent formula from the assumed hypotheses.
method stronger_goal : F.pred -> F.predSimplify the goal. It must return a stronger formula from the assumed hypotheses.