use total predicates in lambda abstractions