To build up more complicated programs we need to use conditions or tests. These are predicates on the state space (assumed to be of some easily computed form).