let test e t f =
    try let c = T.cond e in Why_ops.pif (c, t, f)
    with T.AbortTranslation msg -> 
      (* TODO ; if tcond fails, tyr to see if t_exp and e_exp are equal *)
      abort ("needed untranslatable condition: "^msg)