280 likes | 579 Views
Predicates and quantifiers. Chapter 8 Formal Specification using Z . Predicates. A predicate is a logical statement that depends on a value or values. When a predicate is applied to a particular value it becomes a proposition. For example: prime(x) depends on some numeric value of x
E N D
Predicates and quantifiers Chapter 8 Formal Specification using Z
Predicates • A predicate is a logical statement that depends on a value or values. When a predicate is applied to a particular value it becomes a proposition. For example: • prime(x) • depends on some numeric value of x • prime(7) • is a true proposition; the only devisors of 7 are 1 and 7. • Prime(6) is a false proposition; 6 can be divided by 2,3. • A predicate can be viewed as a propositional function, that for some set of arguments returns to either true or false
Quantifiers • Consider the following statements: • All cats have tails. • Some people like cake. • Everyone gets a break once in a while. • All these statements indicate how frequently certain things are true. In predicate calculus we use quantifiers in this context.
Universal Quantifier • The Universal Quantifier is written : A and is pronounced ‘for all’. It is often used in the form : Adeclaration | constraint predicate Which states the for the declarations given, restricted to certain values (the constraint), the predicate holds.
Universal Quantifier • The constraint may be omitted. • The declaration introduces a typical element that is then optionally constrained or restricted in some some way: For example: Ai: N| i < 10 i2 < 100 Which states that for all natural numbers less than 10 their square is less that 100 . Constraint Predicate Separators
Universal Quantifier • A universal quantifier can be viewed as a chain of conjunctions. So: Ai: N| i < 10 i2 < 100 is equivalent to: 02 < 100 L 12 < 100 L . . L 92 < 100 If the set of values over which the variable is universally quantified is empty, then the quantification is defined as true. Ai: N| 0 i < 0 i2 < 100 is true.
Existential Quantifier • The Existential Quantifier is written : E and is pronounced ‘there exists’. It is often used in the form : Edeclaration | constraint predicate The declaration introduces a typical element that is then optionally constrained or restricted in some way: For example: E i: N| i < 10 i2 < 100
Existential Quantifier • There may be more than one value of i for which this is true, in the previous example there are ten values, 0 to 9, that satisfy the predicate. Another example: Even(x) E k: Z k * 2 = x The existential quantifier can be considered as a chain of disjunctions (ors). If the set of values over which the variable is existentially quantified is empty, then the quantification is defined as false. Ei: N| 0 i < 0 i2 < 100
Unique Quantifier • The unique quantifier is similar to the existential quantifier except that it states that there exists only one value for which the predicate is true. It is written as: E1 • An example: E1i: N| i < 1 0 i2 < 100 i2 > 80
Unique Quantifier • The previous unique quantifier example is equivalent to saying that the predicate holds for i, but there is no value j for which it holds This is written as: E1i: N| i < 1 0 i2 < 100 i2 > 80 E1i: N| i < 1 0 i2 < 100 i2 > 80 ¬(Ej: N| j < 1 0 i j j2 < 100 j2 > 80)
Counting Quantifier • Some notations use a counting quantifier that counts for how many values of a variable the predicate holds. In Z this is not needed, we use set comprehension instead.
Set Comprehension • Set Comprehension: • It is possible to give the value of a set by giving a condition (a predicate) which must hold true for every member of the set. The general form is: • {declaration | constraint expression} • SetA ::= {x:Z | Even(x) x*x}
Set Comprehension • {declaration | constraint expression} • The declaration is for a typical element and it gives the element’s name and type. • The constraint restricts the possible values of the typical element. It is a logical expression which must be true for that value of the typical element to be included. • The expression indicates the value to be held in the set
Set Comprehension • SetA ::= {x:Z | Even(x) x*x} • The above defines a set of type integer. The value of x is constrained to be even. Each element will be the square of an even integer. • SetB ::= {x:Z | Even(x) x} • The above defines a set of type integer. The value of x is constrained to be even. Each element will be an even integer.
Ranges of numbers • We have already introduced m..n. This is shorthand for • {i:Z | m i n i i}
Relationship between Logic and Set Theory • There is a direct relationship between some of the operations of logic and operations on sets: • [X] any set S,T: PX • S T == {x:X | x S x T x} • S T == {x:X | x S x T x} • S \ T == {x:X | x S x T x}
Summary of Quantifier Ax:T P for all x of type T, P is true. E x:T P there exists an x of type T, such that P is true. E1x :T P there exists a unique x of type T, such that P is true.
Summary of Quantifier {D | P t} The set of t’s declared by D where P is true.
Mixing Quantifiers • What is the precedence or associativity used. Is forAll(x),forAll(y) equivalent to forAll(y),forAll(x)? • Assuming standard notation, they are read left to right; two universal quantifiers following one another commute (just like multiplication a*b=b*a).
Mixing Quantifiers • Likewise, if you have two existential quantifiers, they commute, because • Exists(x),Exists(y), p(x,y) • is true if and only if • Exists(y),Exists(x), p(x,y) • is true.
Mixing Quantifiers • But if you have mixed universal and existential quantifiers, you have to be careful. If you write A(x), E(y), p(x,y) • that means that for each x, there exists a y, which may depend on x, for which p(x,y) is true. • But if you write E(y), A(x), p(x,y) • you are saying that there is a y which works for any given x (including y=x), that make p(x,y) true.
Exercises Let O(x,y) be the predicate (or propositional function) “x is older than y”. The domain of discourse consists of three people Garry, who is 30; Ellen who is 20; and Martin who is 35. Write each of the following propositions in words and state whether they are true or false.