let rec is_convertible_property : Types.ltl_type -> bool = function
  | Pred(str) -> true

  | Op1(f) | Op2(f) | Op3(f) | Op4(f) -> false

  (* ~f *)
  | Op5(f)    -> is_convertible_property f

  (* f1 /\ f2 *)
  | Conj(f1,f2) -> (is_convertible_property f1) && (is_convertible_property f2)

  (* f1 \/ f2 *)
  | Dij(f1,f2) -> (is_convertible_property f1) && (is_convertible_property f2)

  (* f1 -> f2 *) 
  | Impl(f1,f2) -> (is_convertible_property f1) && (is_convertible_property f2)