module Elim_ite:sig
..end
Example:
if a&b then case else if c&d then case2 else case3
becomes
(a&b) => case1;
(not (a&b) & c&d) => case2;
(not(a&b) & not (c&d)) => case3
typeterm =
Nunchaku_core.FO.T.t
typety =
Nunchaku_core.FO.Ty.t
typeproblem =
(term, ty) Nunchaku_core.FO.Problem.t
val name : string
val transform_term : term -> term
condition => term
, where
each condition is orthogonal to the previous onesval transform_statement : (term, ty) Nunchaku_core.FO.statement ->
(term, ty) Nunchaku_core.FO.statement
val transform_problem : problem -> problem
val pipe : print:bool ->
(problem, problem, 'a, 'a) Nunchaku_core.Transform.t