CS447 Lecture 10: L15.pdf
Document Summary
Lecture 15 february 5, 2010 version 2. We now shift from graphs to logical expressions, for instance: if (visited && x > y || foo(z)) Graphs are made up of nodes, connected by edges. Logical expressions, or predicates, are made up of clauses, connected by operators. A predicate is an expression that evaluates to a logical value. Here are the operators we allow, in order of precedence (high to low): : negation, : and (not short-circuit, : or (not short-circuit, : implication, : exclusive or, : equivalence. We do not allow quanti ers; they are harder to reason about. Note also that our operators are not quite the same as the ones in typical programming languages. Predicates without logical operators are clauses; clauses are, in some sense, atomic . The following predicate contains three clauses: (x > y) || foo(z) && bar.