You are on page 1of 17

DiscreteMathComputer 07-Predicate Logic

Kanak Kshetri

1 Introduction: Why Predicates Logic


• Want to make the statement that everything has a certain property

– e.g. “All men are mortal”

• Propositional Logic doesn’t provide us any structure to express this

– e.g. could say “P = all men are mortal”


– but P is atomic, and we can’t make any use of the fact that the property is supposed
to hold everywhere

• Predicate Logic is propositional logic with quantifiers

2 Language of Predicate Logic


2.1 Predicates
• A statement that an object has a property

– e.g. x is even

• We write predicate names with capital letters and variables in lowercase

– e.g. F (x)

2.1.1 Definition: Predicate


• Any term in the form F (x), where F is a predicate name and x is a variable name is a
well formed formula

• Similarly, F (x1 , x2 , · · · , xk ) is a well formed formula and represents a predicate with k


variables

2.1.2 Definition: Universe


• Defines the set of values that variables can have

• e.g. for “x is even”, we can define the universe as the natural numbers

• Universe usually written U

1
2.2 Quantifiers
2.2.1 Definition: Universal Quantification ∀
• Suppose F (x) is a WFF involving the variable x
• Then, ∀x.F (x) is a WFF called universal quantification
• It says that every item in the universe has the property F

2.2.2 Examples of Universal Quantification


• ∀x.E(x), U = {x ∈ N|even(x)} where E(x) means x is even
– This says that every item in the set of even natural numbers is even.
– It is true.
• ∀x ∈ N.E(x)
– This says that every natural number is even.
– It is false. Counterexample: 1

2.2.3 Definition: Existential Quantification ∃


• Suppose F (x) is a WFF involving the variable x
• Then, ∃x.F (x) is a WFF called existential quantification
• It says that at least one item in the universe has the property.

2.2.4 Examples of Existential Quantification


• ∃x ∈ N.2 ∗ x = 6
– Says that there is a natural number which when multiplied by 2 gives 6.
– This is true (x = 3)
• ∃x ∈ Q.x ∗ x = 2
– Says that there is a rational number which when multiplied by itself gives 2

– This is false ( 2 is irrational)

2.2.5 Nesting Quantifiers


• Want to say: for every integer, there is another one that is larger
• ∀x ∈ Z, ∃y ∈ Z, x < y
• Note that order is significant
• ∃x ∈ Z, ∀y ∈ Z, x < y says that there is an integer that is smaller than every other
integer. This is false.

2
2.3 Expanding Quantified Expressions
2.3.1 Expansions
• ∀x.F (x) = F (c1 ) ∧ F (c2 ) ∧ · · · ∧ F (cn )

• ∃x.F (x) = F (c1 ) ∨ F (c2 ) ∨ · · · ∨ F (cn )

2.3.2 Exercise 1
• U = {1, 2, 3}

• Remove the quantifiers in the following

• ∀x.F (x)

– F (1) ∧ F (2) ∧ F (3)

• ∃x.F (x)

– F (1) ∨ F (2) ∨ F (3)

• ∃x.∀y.G(x, y)

– (G(1, 1) ∧ G(1, 2) ∧ G(1, 3)) ∨ (G(2, 1) ∧ G(2, 2) ∧ G(2, 3)) ∨ (G(3, 1) ∧ G(3, 2) ∧ G(3, 3))

2.3.3 Exercise 2
• U =Z

• Expand: ∀x ∈ {1, 2, 3, 4}.∃y ∈ {5, 6}.F (x, y)

• (F (1, 5) ∨ F (1, 6)) ∧ (F (2, 5), F (2, 6)) ∧ (F (3, 5), F (3, 6)) ∧ (F (4, 5) ∨ F (4, 6))

2.4 Scope of Variable Bindings


• Use parentheses to clarify scope

• Assume smallest scope is smallest subexpression otherwise

2.5 Translating Between English and Logic


2.5.1 Example: "Some birds can fly"
• Assume universe is all animals

• B(x) is true if x is a bird

• F (x) is true if x can fly

• Then, ∃x.B(x) ∧ F (x) expresses “some birds can fly”

• NOTE: ∃x.B(x) ⇒ F (x) is wrong

3
– If B(x) is false, then the implication is true
– Then, if x is a horse, the implication is true
– Suppose all the birds in the universe can’t actually fly
– Since we’ve found something that makes the implication true, by existential quan-
tification, the implication is true
– This is a contradiction

2.5.2 Exercise 3: Express the statements formally


• Given: E(x) means x is even, O(x) means x is odd, Universe is natural numbers

• There is an even number.

– ∃x.E(x)

• Every number is either even or odd.

– ∀x.E(x) ∨ O(x)

• No number is both even and odd.

– ∀x.¬(E(x) ∧ O(x))

• Sum of two odd numbers is even

– ∀x, y.O(x) ∧ O(y) ⇒ E(x + y)

• Sum of an odd number and an even number is odd

– ∀x, y.O(x) ∧ E(y) ⇒ O(x + y)

• We don’t have the same bug as “some birds can fly” with the implication because we’re
doing a universal quantification and not an existential one. So, if there is a single pair
of odd numbers whose sum is not even, the implication would be false, which is what
we want.

2.5.3 Exercise 4: Animal Logic 193


• Given: predicates for Bird, Dove, Chicken, Pig, Fly, Wings, M (x, y) means x has more
feathers than y

• Chickens are bird

– ∀x.C(x) ⇒ B(x)

• Some doves can fly

– ∃x.D(x) ∧ F (x)

• Pigs are not birds

4
– ∀x.P (x) ⇒ ¬B(x)

• Some birds can fly, some can’t

– ∃x.B(x) ∧ F (x)

• An animal needs wings in order to fly

– ∀x.F (x) ⇒ W (x)

• If a chicken can fly, then pigs have wings

– ∃x, ∀y.(C(x) ∧ F (x)) ⇒ (P (y) ∧ W (y))

• Chickens have more feathers than pigs do.

– ∀x, ∀y.C(x) ∧ P (y) ∧ M (x, y)

• An animal with more feathers than any chicken can fly.

– ∀x, ∀y.C(y) ∧ M (x, y) ⇒ F (x)

2.5.4 Exercise 5: Back to english


• ∀x.(∃y.wantsT oDanceW ith(x, y)

– everyone has someone they would like to dance with

• ∃x.(∀y.wantsT oP hone(y, x))

– everyone has someone they would like to phone

• $∃ x. (tired(x) ∧ ∀ y. helpsMoveHouse(x,y))

– there is someone who will help anyone move despite being tired

3 Computing with Quantifiers


• Predicate is just a function that returns a boolean

• Quantifiers built into haskell

– all : a -> Bool -> [a] -> Bool


– any : a -> Bool -> [a] -> Bool
– and : [Bool] -> Bool
– or : [Bool] -> Bool

5
3.1 Exercise 6: Haskell expression to Logic, compute value
• Note: using haskell’s builtin functions instead of equivalent Stdm ones

• all (== 2) [1,2,3]

– ∀x ∈ {1, 2, 3}.x = 2
– False: counterexample is ‘1’

• all (< 4) [1,2,3]

– ∀x ∈ {1, 2, 3}.x < 4


– True

3.2 Exercise 7: Haskell expressions to Logic, compute values


• any (== 2) [0,1,2]

– ∃x ∈ {1, 2, 3}.x = 2
– True

• any (> 5) [1,2,3]

– ∃x ∈ {1, 2, 3}.x > 5


– False

3.3 Example 7: ∀x ∈ {1, 2


. (∃y ∈ {1, 2}.x = y)

• Convert to haskell

• every (\ x -> any (== x) [1,2]) [1,2]

– (any (== 1) [1,2]) && every (\ x -> any (== x) [1,2]) [ 2]


– ((== 1) 1 || any (== 1) [ 2]) every ( x -> (== x) [1,2]) [ 2]
– (True || any (== 1) [ 2]) every ( x -> (== x) [1,2]) [ 2]
– True && every (\ x -> (== x) [1,2]) [ 2]
– every ( x -> (== x) [1,2]) [ 2]
– True && every (\ x -> (== x) [1,2]) []
– True

6
3.4 Exercise 8: Calculate values of expressions
• pxy means x = y + 1

• U = {1, 2}

• ∀x.(∃y.p(x, y))

– (∃y.p(1, y)) ∧ (∃y.p(2, y)) (by removing forall)


– (p(1, 1) ∨ p(1, 2)) ∧ (p(2, 1) ∨ p(2, 2) (by removing exists)
– (F alse ∨ F alse) ∧ (T rue ∨ F alse)
– F alse ∧ T rue
– F alse
– (Haskell verification: all (\ x -> any (p x) [1,2]) [1,2] gives False)

• ∃x, y.p(x, y)

– (∃x.∃yp(x, y)
– ((∃y.p(1, y)) ∨ (∃x.p(2, y)) (by removing exists x)
– ((p(1, 1) ∨ p(1, 2)) ∨ (p(2, 1) ∨ p(2, 2))
– Since p(2, 1) is true, the whole expression is True
– (Haskell verification: any (\ x -> any (p x) [1,2]) [1,2] gives True)

• ∃x.(∀y.p(x, y))

– (∀y.p(1, y)) ∧ (∀y.p(2, y)) (by removing exists)


– (p(1, 1) ∨ p(2, 1)) ∧ (p(1, 2) ∨ p(2, 2)) (by removing forall)
– (F alse ∨ T rue) ∧ (F alse ∨ F alse)
– T rue ∧ F alse
– (haskell verification: any (\ x -> all (p x) [1,2]) [1,2] gives False)

• ∀x, y.p(x, y)

– (∀y.p(1, y)) ∧ (∀y.p(2, y)) (removing forall)


– (p(1, 1) ∧ p(1, 2)) ∧ (p(2, 1) ∧ p(2, 2)) (removing forall)
– Since p(1, 1) is false, the whole thing becomes false
– (haskell verification: all (\ x -> all (p x) [1,2]) [1,2] gives False)

4 Logical Inference with Predicates


4.1 Introduction
• Can view inference rules of predicate logic as generalizations of rules from propositional
logic

7
• If universe is finite, then the rules might not be necessary

– e.g. ∀x.F (x) could be replaced by F (x1 ), · · · F (xn ), n is the size of the universe
– But, propositional inference rules allow us to do deductions when the universe is
infinite

• Assume universe is nonempty

– e.g. forall elimination is invalid when the universe is empty

4.2 Universal Introduction


• If you can prove an element about an arbitrary element of the universe, you have a
statement about all elements of the universe.

4.2.1 Append Example


• Definition

( + + ) : : [ a ] −> [ a ] −> [ a ]
[ ] ++ ys = ys
( x : xs ) ++ ys = x : ( xs ++ ys )

• Theorem: Letx :: a, xs :: [a].T hen, x : xs = [x] + +xs

– Proof follows directly from the definition of append


– RHS = [x] ++ xs = x : xs = LHS

• Theorem: ∀x :: a.∀xs :: [a].x : xs = [x] + +xs

– This theorem makes the same claim as the previous


– Style is different:
∗ Previous one talked about arbitrary elements from the universe
∗ This makes claim about all elements in the universe

4.2.2 Universal Introduction Definition


• F (x), xarbitrary ` ∀x.F (x)

4.2.3 Example: ` ∀x.E(x) ⇒ (E(x) ∨ ¬E(x))


• Proof Idea:

– We need an implication, which means we have to do Imply Introduction


– To do an imply introduction, we need to prove the sequent E(x) ⇒ E(x) ∨ ¬E(x)

8
– E(x) ∨ ¬E(x) can be shown just by assuming either E(x) or ¬E(x) to be true

• Proof

– Assume E(p), p is an arbitrary value


– By Or introduction, we have E(p) ` E(p) ∨ ¬E(p)
– This sequent doesn’t rely on any more assumptions, and in particular, we can
discharge the E(x) assumption
– By Introduce Implication, we have E(p) ⇒ E(p) ∨ ¬E(p)
– Since p is arbitrary, by introduce forall, we have ∀x.E(x) ⇒ E(x) ∨ ¬E(x)

4.2.4 Anti-Example: All natural numbers are even


• Let E(x) mean that x is even

• E(2) ` ∀x.E(x) [WRONG]

• Problem is that we didn’t show that it works for an arbitrary natural number; we just
showed that it works for a particular one.

4.3 Universal Elimination


4.3.1 Definition
• ∀x.F (x) ` F (p)

• If you have established a property for everything in the universe, you can assume it
holds for a particular element of the universe.

4.3.2 Example: F (p), ∀x.F (x) ⇒ G(x) ` G(p)


• By forall elimination, ∀x.F (x) ⇒ G(x) ` F (p) where p is the same variable as in F (p)

• Now we have F (p), F (p) ⇒ G(p)

• By Modus Ponens, we have G(p)

4.3.3 Example: ∀x.F (x) ⇒ G(x), ∀x.G(x) ⇒ H(x) ` ∀x.F (x) ⇒ H(x)
• By forall elimination, F (p) ⇒ G(p) for an arbitrary p

• By forall elimination, G(p) ⇒ H(p)

• By implication chain, F (p) ⇒ G(p), G(p) ⇒ H(p) ` F (p) ⇒ H(p)

• Since this is for an arbitrary p, we can use forall introduction to get ∀x.F (x) ⇒
G(x), ∀x.G(x) ⇒ H(x) ` ∀x.F (x) ⇒ H(x)

9
4.3.4 Example: ∀x.∀y.F (x, y) ` ∀y.∀x.F (x, y)
• By forall elimination, we have ∀y.F (p, y) where p is arbitrary

• By forall elimination, we have F (p, q) where q is arbitrary

• By forall introduction, we have ∀x.F (x, q)

• By forall introduction, we have ∀y.∀x.F (x, q)

• So, we have just shown that the order of forall quantifiers does not matter.

4.3.5 Example: ∀x.P ⇒ f (x) ` P ⇒ ∀x.f (x)


• By forall elimination, we have ∀x.P ⇒ f (x) ` P ⇒ f (c), c is arbitrary

• Assume P. Then, we have P, P ⇒ f (c)

• By modus ponens, we have f (c).

• By forall introduction, we have ∀x.f (x)

• By introduce implication, we have P ⇒ ∀x.f (x)

4.3.6 Exercise 9: Prove ∀x.F (x), ∀x.F (x) ⇒ G(x) ` ∀xG(x)


• By forall elimination, we have F (c), c is arbitrary.

• By forall elimination, we have F (c) ⇒ G(c)

• By modus ponens on F (c), F (c) ⇒ G(c), we have G(c)

• Since c was arbitrary, we can introduce forall to get ∀x.G(x)

4.4 Existential Introduction


4.4.1 Definition
• If f (p) has been established for a particular p, then you can infer ∃p.f (p)

4.4.2 Example: ∀x.F (x) ` ∃x.F (x)


• By forall elimination, we have F (c) for an arbitrary c

• By exists introduction, we have ∃x.F (x)

10
4.5 Existential Elimination
4.5.1 Definition
• Recall or elimination:

– If you have a ∨ c, and a ` c and b ` c then you have c


– This was proof by cases

• Existential Elimination is a generalization of this idea

• If you have ∃x.F (x), F (c) ` A{carbitrary} then you can infer A

4.5.2 Example: ∃x.P (x), ∀x.P (x) ⇒ Q(x) ` ∃x.Q(x)


• By forall elimination, we have P (c) ⇒ Q(c), c is arbitrary.

• Assume P (c). This is allowed because we have ∃x, P (x)

• By modus ponens on P (c), P (c) ⇒ Q(c), we have Q(c).

• By existential introduction on Q(c), we have ∃x.Q(x)

4.5.3 Example: ∃x.∀yF (x, y) ` ∀y.∃x.F (x, y)


• By forall elimination on ∀yF (x, y), we have F (x, q), q arbitrary

• So we have ∃x.F (x, q)

• By forall introduction, we have ∀y∃x.F (x, y)

4.5.4 Exercise 10: Prove ∃x.∃y.F (x, y) ` ∃y.∃x.F (x, y)


• Assume F (a, b). This is allowed because there must be atleast one a and one b for which
F holds.

• By existential elimination, we have ∃y.F (a, y), a arbitrary

• By existential elimination, we have F (a, b), b arbitrary

• By existential introduction, we have ∃x.F (x, b)

• By existential introduction, we have ∃y, ∃x.F (x, y)

• (This proof might be incorrect)

11
4.5.5 Exercise 11: Find a counterexample for: ∀y, ∃x.F (x, y) ` ∃x.∀yF (x, y)
• Let F (x, y) mean that x is greater than y

• Suppose the universe is the natural numbers

• Then, ∀y, ∃x.F (x, y) says that the natural numbers is unbounded, which is correct

• But, ∃x.∀y.F (x, y) says that there is some natural number that is larger than all others,
which is incorrect.

4.5.6 Exercise 12: Prove: ∀x, (F (x) ∧ G(x)) ` (∀xF (x)) ∧ (∀x.G(x))
• By forall elimination, we have F (c) ∧ G(c), c arbitrary

• By and elimination, we have F (c) as well as G(c)

• By forall introduction, we have ∀x.F (x) as well as ∀x.G(x)

• By and introduction, we have (∀xF (x)) ∧ (∀x.G(x))

5 Algebraic Laws of Predicate Logic


5.1 Law: Introducing and removing quantifiers
• ∀x.f (x) ⇒ f (c)

• f (c) ⇒ ∃x.f (x)

• Note that these are implications and only work in one direction

5.2 Example: ∀x.f (x) ⇒ ∃x.f (x)


• ∀x.f (x)

• f (c), for arbitrary c

• ∃x.f (x)

5.3 Law: Quantifiers and Negations


• ∀x.¬f (x) = ¬(∃x.f (x))

• ∃x.¬f (x) = ¬(∀x.f (x))

12
5.4 Law: Combining Propositions
• In all of the following, q does not contain x as a variable

• (∀x.f (x)) ∧ q = ∀x(f (x) ∧ q)

• (∀x.f (x)) ∨ q = ∀x(f (x) ∨ q)

• (∃x.f (x)) ∧ q = ∃x.(f (x) ∧ q)

• (∃x.f (x)) ∨ q = ∃x.(f (x) ∨ q)

• Summary: we can push in propositions inside quantifiers if they don’t have the quan-
tified variable

5.5 Laws: Combining Quantifiers


• ∀x.f (x) ∧ ∀x.g(x) = ∀x(f (x) ∧ g(x))

• ∀x.f (x) ∨ ∀x.g(x) ⇒ f orallx(f (x) ∨ g(x))

– we’re going from a strong statement to a weak one


– Strong statement: both properties f and g hold for all x
– Weak statement: atleast one of f and g hold for all x

• ∃x.(f (x) ∨ g(x)) ⇒ ∃x.f (x) ∧ ∃x.g(x)

– Also going from strong to weak


– Strong: there’s atleast one element which has both properties f and g
– Weak: there is atleast one element which has f , and atleast one which has g. The
two elements don’t have to be the same.

• ∃x.f (x) ∨ ∃x.g(x) = ∃x.(f (x) ∨ g(x))

5.6 Example: ∀x.(f (x) ∧ ¬g(x)) = ∀x.f (x) ∧ ¬∃.g(x)


• Direct proof starting from the left side

• ∀x.(f (x) ∧ ¬g(x))

• (∀x.f (x)) ∧ (∀x.¬g(x))

• (∀x.f (x)) ∧ ¬(∃x.g(x))

13
5.7 Example: ∃x.(f (x) ⇒ g(x)) ∧ (∀x.f (x)) ⇒ ∃x.g(x)
• Direct proof starting from the left side

• First, rename variable to get ∀y.f (y)

• Now, push the forall inside the exists to get ∃x.((f (x) ⇒ g(x)) ∧ ∀y.f (y))

• Remove the forall to get: ∃x.((f (x) ⇒ g(x)) ∧ f (x))

• Use modus ponens to get ∃x.g(x)

6 Further Reading
• See references at end of chapter 6

• Mathematical Writing by Knuth, larrabee, and Roberts

• Proofs from THE BOOK by Aigner and Ziegler

7 Review Exercises
7.1 Exercise 13
7.1.1 Problem
• Universe has 10 elements

• Expression: ∀x.∃y.∀zF (x, y, z)

• want to express it in a quantifier free form.

7.1.2 How many times will F occur in that form?


• Eliminating ∀z, we have this innermost expression: F (x, y, n1 ) ∧ F (x, y, n2 ) ∧ · · · ∧
F (x, y, n1 0)

• This has 10 items

• Eliminating the ∃y replaces F (x, y, n1 ) with F (x, n1 , n1 ) ∨ F (x, n2 , n1 ) ∨ · · · ∨ F (x, n1 0, n1 )

• So, 10 terms per term from before. (Total: 100)

• Eliminating the ∀x replaces each F (x, n1 , n1 ) with F (n1 , n1 , n1 ) ∨ F (n2 , n1 , n1 ) ∨ · · · ∨


F (n1 0, n1 , n1 )

• So, 10 terms per term from before. (Total: 1000)

• In general, we have N k terms where N is size of universe, k is the number of quantifiers


we’re removing

14
7.2 Exercise 14: Prove (∃f (x)) ∨ (∃g(x)) ` ∃x.(f (x) ∧ g(x))
• By exists elimination, we get f (c) for some c

• By exists elimination, we get g(d) for some d

• By or introduction, we get f (c) ∨ g(d)

• By exists introduction, we get ∃x.(f (x) ∨ g(d))

• By exists introduction, we get ∃y∃x.(f (x) ∨ g(y))

• Since the existence of either x or y makes the whole statement true, we can combine
them to get ∃x.f (x) ∨ g(x)

7.3 Exercise 15: Prove (∀x.f (x)) ∨ (∀x.g(x)) ` ∀x(f (x) ∨ g(x))
• By forall elimination, we get f (c) for arbitrary c

• By forall elimination, we get g(c)

• By or introduction, we have f (c) ∨ g(c)

• Since the above holds true for arbitrary c, by universal introduction, ∀x.(f (x) ∨ g(x))

7.4 Exercise 16: Prove converse of Theorem 63


• Theorem 63: ∀x.P ⇒ f (x) ` P ⇒ ∀x.f (x)

• The converse of this is: P ⇒ ∀x.f (x) ` ∀x.P ⇒ f (x)

• Assume P . Then by modus ponens on P, P ⇒ ∀x.f (x), we have ∀x.f (x)

• By forall elimination, we have f (c)

• By implies introduction, we have P ⇒ f (c)

• By forall introduction, we have ∀x.P ⇒ f (x)

7.5 Exercise 17: Provide Counterexamples


• In “combining quantifiers”, we had two laws that were implications not equalities.

• Provide counterexamples that show why the laws don’t hold in the opposite direction

• Counterexample for ∀x.(f (x) ∨ g(x)) ⇒ ∀x.f (x) ∨ ∀x.g(x))

– Suppose f (x) means x is even


– Suppose g(x) means x is odd
– Universe is natural numbers.
– Then, left side is true because every number is either even or odd

15
– But on the right side we also claim that every number is even, and every number
is odd. Both of which are false.
• More concrete counterexample:
– Universe is: {Shrek, Donkey}
– f (x) means x = Shrek
– g(x) means x = Donkey
– Left Side:
– ∀x.(f (x) ∨ g(x))
– (f (Shrek) ∨ g(Shrek)) ∧ (f (Donkey) ∨ g(Donkey))
– (T rue ∨ F alse) ∧ (F alse ∨ T rue)
– T rue
– Right Side:
– (∀x.f (x)) ∨ (∀x.g(x))
– (f (Shrek) ∧ f (Donkey)) ∨ (g(Shrek) ∧ g(Donkey))
– (T rue ∧ F alse) ∨ (F alse ∧ T rue)
– F alse ∨ F alse = F alse
– So, we’re trying to do a T rue ⇒ F alse, which is F alse
• Counterexample for ∃x.f (x) ∧ ∃x.g(x) ⇒ ∃x.(f (x) ∧ g(x))
– Again using the Shrek, Donkey example
– Left side:
– ∃x.f (x) ∧ ∃x.g(x)
– (f (Shrek) ∨ f (Donkey)) ∧ (g(Shrek) ∨ g(Donkey))
– (T rue ∨ F alse) ∧ (F alse ∨ T rue)
– T rue
– Right side:
– ∃x.(f (x) ∧ g(x))
– (f (Shrek) ∧ g(Shrek)) ∨ (f (Donkey) ∧ g(Donkey))
– (T rue ∧ F alse) ∨ (F alse ∧ T rue)
– F alse ∨ F alse
– F alse
– So, we’re trying to do a T rue ⇒ F alse, which is F alse

7.6 TODO : Exercise 18: Prove (∀x.f (x) ⇒ h(x) ∧ ∀x.g(x) ⇒ h(x)) ⇒ ∀x.(f (x) ∨
g(x) ⇒ h(x))
• By using the laws on combining quantifiers, we can get ∀x.((f (x) ⇒ h(x))∧(g(x) ⇒ h(x))
• TODO: Now we need to do some kind of or elimination and combine.

16
7.7 Exercise 19
• Universe is natural numbers

• predicate: “if a number occurs in either of the sequences that are arguments to append,
it occurs in the final series as well”

• (The proof is easy by induction, but they want something else)

17

You might also like