Err.. I meant:
isInt(n) /\ val(X, B) > 0 /\ checkSat(n > 0 /\ notBool(n=/=0)) == "unsat" 

val(X, B) > 0 stays in there. I wanted to delete only the predicate. The idea is that those functions that are not translatable to SMT remain untouched, while those which can be translated to the SMT go inside checkSat and I also generate predicates for them.