let pif = function
| (c,Fol.Ptrue,p ) -> Fol.por ((bool_term_to_predicate c),p)
| (c,p, Fol.Ptrue ) -> Fol.por (pnot (bool_term_to_predicate c),p)
| (c,Fol.Pfalse,p ) -> Fol.pand (pnot (bool_term_to_predicate c),p)
| (c,p, Fol.Pfalse ) -> Fol.pand (bool_term_to_predicate c,p)
| (t,p1,p2) -> Fol.pif (t,p1,p2)