general recursive definitions
DESCRIPTION
General Recursive Definitions. Lecture 37 Section 8.4 Fri, Mar 25, 2005. Recursively Defined Sets. The definition of a recursively defined set consists of three parts. Base – Specific objects are in the set. Recursion – Rules describing how to form new members from other members. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/1.jpg)
General Recursive Definitions
Lecture 37
Section 8.4
Fri, Mar 25, 2005
![Page 2: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/2.jpg)
Recursively Defined Sets
The definition of a recursively defined set consists of three parts.Base – Specific objects are in the set.Recursion – Rules describing how to form
new members from other members.Restriction – No other elements are in the
set.
![Page 3: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/3.jpg)
Boolean Expressions
Define Boolean expressions as follows.Base – Each lowercase letter of the
alphabet represents a Boolean expression and T and F are Boolean expressions.
Recursion – If p and q are Boolean expressions, then so are p q, p q, p and (p).
Restriction – There are no other Boolean expressions.
![Page 4: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/4.jpg)
Strings Not Containing the Substring 11
Define a set of strings as follows.Base – , 0, and 1 are in the set.Recursion – If s is in the set, then so is 0s
and 10s.Restriction – No other strings are in the set.
The set consists of all strings that do not contain the substring 11.
![Page 5: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/5.jpg)
The MIU System
Define the strings in the MIU system as follows.Base – MI is in the MIU system.
![Page 6: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/6.jpg)
The MIU System
Recursion• If xI is in the MIU system, then so is xIU.• If Mx is in the MIU system, then so is Mxx.• If xIIIy is in the MIU system, then so is xUy.• If xUUy is in the MIU system, then so is xUy.
Restriction – There are no other strings in the MIU system.
![Page 7: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/7.jpg)
The MIU System
Derive a few strings in the MIU system.MI MIUMI MII MIIII MUIMI MII MIIII MIIIIIIII MUIIIII
MUUII MUII
![Page 8: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/8.jpg)
The MU Puzzle
Is MU in the MIU system?
![Page 9: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/9.jpg)
The MU Puzzle
Let n be the number of I’s in a string in the MIU system.
If we apply Rule 1, then the resulting string still contains n I’s.
If we apply Rule 2, then the resulting string contains 2n I’s.
If we apply Rule 3, then the resulting string contains n – 3 I’s.
If we apply Rule 4, then the resulting string still contains n I’s.
![Page 10: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/10.jpg)
The MU Puzzle
Initially, n is 1. Only Rules 2 and 3 change the number of
I’s. Thus, the following changes are possible.
n 2n.n n – 3.
![Page 11: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/11.jpg)
The MU Puzzle
The first change will map A multiple of 3 to a multiple of 3, and A non-multiple of 3 to a non-multiple of 3.
The second change will also map A multiple of 3 to a multiple of 3, and A non-multiple of 3 to a non-multiple of 3.
Given that n = 1 in the initial string and 1 is not a multiple of 3, it is impossible to eliminate I from the strings.
![Page 12: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/12.jpg)
Arithmetic Expressions
Define a set of arithmetic expressions as follows.Base – Any number is an arithmetic
expression.
![Page 13: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/13.jpg)
Arithmetic Expressions
Recursion – If x and y are arithmetic expressions, then so are
• x + y• x – y• x * y• x / y• (x)
Restriction – There are no other arithmetic expressions.
![Page 14: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/14.jpg)
Arithmetic Expressions
Derive the arithmetic expression
(2 + 3) * (10 / 2 – 4)
![Page 15: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/15.jpg)
Pointer Arithmetic
Pointer- and integer-valued expressions may be defined recursively.
BaseAny letter may represent a pointer-valued
expression.Any letter may represent an integer-valued
expression.
![Page 16: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/16.jpg)
Pointer Arithmetic
Recursion – Let p and q be pointer-valued expressions and i and j be integer-valued expressions.i + j is an integer-valued expression.i – j is an integer-valued expressionp – q is an integer-valued expression.(i) is an integer-valued expression.
![Page 17: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/17.jpg)
Pointer Arithmetic
p + i is a pointer-valued expression.p – i is a pointer-valued expression.(p) is a pointer-valued expression.
Restriction – No other expressions are in the set.
![Page 18: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/18.jpg)
Pointer Arithmetic
Which expressions are legal expressions? Which are integer-valued and which are pointer-
valued? p + (q + i) (p + q) + i (p – q) + i (p – q) + (r – s) (p + i) – (q – j) (p – (q – j)) + i (p – q) + (j + i)
![Page 19: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/19.jpg)
Recursively Defined Functions
Mathematical functions may be defined recursively.
The classic example is the factorial function:0! = 1,n! = n (n – 1)! for all n 1.
![Page 20: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/20.jpg)
Recursively Defined Functions
Given the “successor” function
succ(n) = n + 1,
addition of nonnegative integers may be defined recursively.
• sum(0, 0) = 0,• sum(m, 0) = succ(sum(m – 1, 0)) for all m 1,• sum(m, n) = succ(sum(m, n – 1)) for all n 1.
![Page 21: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/21.jpg)
Recursively Defined Functions
Given the sum() function just defined, how could we define multiplication of nonnegative integers?prod(m, n) = ?
![Page 22: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/22.jpg)
The Ackermann Function
Define the Ackermann function
A : Znonneg Znonneg Z+
byA(0, n) = n + 1, n 0.A(m, 0) = A(m – 1, 1), m > 0.A(m, n) = A(m – 1, A(m, n – 1)), m > 0, n >
0.
![Page 23: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/23.jpg)
The Ackermann Function
A(0, 0) = 1. A(0, 1) = 2. A(0, 2) = 3. A(0, 3) = 4. In general, A(0, n) = n + 1.
![Page 24: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/24.jpg)
The Ackermann Function
A(1, 0) = A(0, 1) = 2. A(1, 1) = A(0, A(1, 0)) = A(0, 2) = 3. A(1, 2) = A(0, A(1, 1)) = A(0, 3) = 4. A(1, 3) = A(0, A(1, 2)) = A(0, 4) = 5. In general, A(1, n) = n + 2.
![Page 25: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/25.jpg)
The Ackermann Function
A(2, 0) = A(1, 1) = 3. A(2, 1) = A(1, A(2, 0)) = A(1, 3) = 5. A(2, 2) = A(1, A(2, 1)) = A(1, 5) = 7. A(2, 3) = A(1, A(2, 2)) = A(1, 7) = 9. In general, A(2, n) = 2n + 3.
![Page 26: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/26.jpg)
The Ackermann Function
A(3, 0) = A(2, 1) = 5. A(3, 1) = A(2, A(3, 0)) = A(2, 5) = 13. A(3, 2) = A(2, A(3, 1)) = A(2, 13) = 29. A(3, 3) = A(2, A(3, 2)) = A(2, 29) = 61. In general, A(3, n) = 2n + 3 – 3.
![Page 27: General Recursive Definitions](https://reader036.vdocuments.us/reader036/viewer/2022062309/5681491d550346895db6583e/html5/thumbnails/27.jpg)
The Ackermann Function
A(4, 0) = A(3, 1) = 13. A(4, 1) = A(3, A(4, 0)) = A(3, 13) = 216 – 3
= 65533. A(4, 2) = A(3, 65533) = 265533 – 3. A(4, 3) = ? A(4, 4) = ? A(5, 5) = ?