1 / 16

Some Primitive Recursive Functions

Some Primitive Recursive Functions. Example 3: h(x) = x! Here are the recursion equations: h(0) = 1 h(t + 1) = h(t)  s(t) This can be rewritten as: h(0) = s(n(t)) h(t + 1) = g(t, h(t)) where g(x 1 , x 2 ) = s(x 1 )  x 2 , which can be written as:

Download Presentation

Some Primitive Recursive Functions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Some Primitive Recursive Functions • Example 3: h(x) = x! • Here are the recursion equations: • h(0) = 1 • h(t + 1) = h(t)  s(t) • This can be rewritten as: • h(0) = s(n(t)) • h(t + 1) = g(t, h(t)) • where • g(x1, x2) = s(x1)  x2 , which can be written as: • g(x1, x2) = s(u12(x1, x2))  u22(x1, x2). • Multiplication is already known to be primitive recursive. • Therefore, h(x) = x! is primitive recursive. Theory of Computation Lecture 7: Primitive Recursive Functions III

  2. Some Primitive Recursive Functions • In the following examples, we just show the recursive mechanism without developing the precise form of the recursion equations. • Example 4: xy • The recursion equations are: • x0 = 1 • xy+1 = xy  x Theory of Computation Lecture 6: Primitive Recursive Functions II

  3. Some Primitive Recursive Functions • Example 5: The predecessor function p(x) • It is defined as follows: • p(x) = x – 1 if x  0 • = 0 if x = 0 • The recursion equations are: • p(0) = 0 • p(t + 1) = t Theory of Computation Lecture 6: Primitive Recursive Functions II

  4. Some Primitive Recursive Functions • Example 6: x - y (monus) • It is defined as follows: • x - y = x – y if x  y • = 0 if x < y • The recursion equations are: • x - 0 = x • x - (t + 1) = p(x - t) Theory of Computation Lecture 7: Primitive Recursive Functions III

  5. Some Primitive Recursive Functions • Example 7: | x – y | • The function | x – y | is defined as the absolute value of the difference between x and y. • It can be written as follows: • | x – y | = (x - y) + (y - x) • Therefore, | x – y | is primitive recursive. Theory of Computation Lecture 7: Primitive Recursive Functions III

  6. Some Primitive Recursive Functions • Example 8: (x) (“negation”) • The function (x) is defined as follows: • (x) = 1 if x = 0 • = 0 if x  0 • (x) is primitive recursive, because: • (x) = 1 - x • If we prefer, we can just write down the recursion equations: • (0) = 1 • (t + 1) = 0 Theory of Computation Lecture 7: Primitive Recursive Functions III

  7. Primitive Recursive Predicates • Example 9: x = y • We can describe this predicate by the function d(x, y): • d(x, y) = 1 if x = y • = 0 if x  y • d(x, y) is primitive recursive because of the following equation: • d(x, y) = (|x – y|) Theory of Computation Lecture 7: Primitive Recursive Functions III

  8. Primitive Recursive Predicates • Example 10: x  y • Again, we can describe this predicate by the function d(x, y): • d(x, y) = 1 if x  y • = 0 if x > y • d(x, y) is primitive recursive because of the following equation: • d(x, y) = (x – y) Theory of Computation Lecture 7: Primitive Recursive Functions III

  9. Primitive Recursive Predicates • Theorem 5.1:Let C be a PRC class. • If P, Q are predicates that belong to C , then so are P, PQ, and P&Q. • Proof: • Since P = (P), it follows that P belongs to C . • Since P&Q = PQ, it follows that P&Q belongs to C . • Since PQ = (P & Q), it follows that PQ belongs to C . Theory of Computation Lecture 7: Primitive Recursive Functions III

  10. Primitive Recursive Predicates • We already know two different PRC classes, namely the class of all primitive recursive functions, and the class of all computable functions. • Correspondingly, we have the following corollaries: • Corollary 5.2:If P, Q are primitive recursive predicates, then so are P, PQ, and P&Q. • Corollary 5.3:If P, Q are computable predicates, then so are P, PQ, and P&Q. Theory of Computation Lecture 7: Primitive Recursive Functions III

  11. Primitive Recursive Predicates • Example 11: x < y • So far, we only know that x  y and x = y are primitive recursive predicates (Examples 9 and 10). • Since we have the tautology • x < y  x  y & (x = y) • or even simpler: • x < y  (y  x) , • according to Corollary 5.2, x < y is also a primitive recursive predicate. Theory of Computation Lecture 7: Primitive Recursive Functions III

  12. Primitive Recursive Predicates • Theorem 5.4:Let C be a PRC class. • Let the functions g, h and the predicate P belong to C . • Let • f(x1, …, xn) = g(x1, …, xn) if P(x1, …, xn) • = h(x1, …, xn) otherwise. • Then f belongs to C . • Proof: f obviously belongs to C , because it can be written as: • f(x1, …, xn) = g(x1, …, xn)P(x1, …, xn) + h(x1, …, xn)(P(x1, …, xn)) Theory of Computation Lecture 7: Primitive Recursive Functions III

  13. Primitive Recursive Predicates • Corollary 5.5:Let C be a PRC class. • Let n-ary functions g1, …, gm, h and predicates P1, …, Pm belong to C , and let • Pi(x1, …, xn) & Pj(x1, …, xn) = 0 for all 1  i < j  m and all x1, …, xn. If • f(x1, …, xn) = g1(x1, …, xn) if P1(x1, …, xn) • = g2(x1, …, xn) if P2(x1, …, xn) • : : • = gm(x1, …, xn) if Pm(x1, …, xn) • = h(x1, …, xn) otherwise. • Then f belongs to C . Theory of Computation Lecture 7: Primitive Recursive Functions III

  14. Primitive Recursive Predicates • Proof:The idea is to use induction on the variable m. • Theorem 5.4 provides the case for m = 1, so we just have to do the inductive step. Let • f(x1, …, xn) = g1(x1, …, xn) if P1(x1, …, xn) • : : • = gm+1(x1, …, xn) if Pm+1(x1, …, xn) • = h(x1, …, xn) otherwise, and let • h’(x1, …, xn) = gm+1(x1, …, xn) if Pm+1(x1, …, xn) • = h(x1, …, xn) otherwise. Then • f(x1, …, xn) = g1(x1, …, xn) if P1(x1, …, xn) • : : • = gm(x1, …, xn) if Pm(x1, …, xn) • = h’(x1, …, xn) otherwise. Theory of Computation Lecture 7: Primitive Recursive Functions III

  15. Primitive Recursive Predicates • The previous steps showed that • f belongs to C for m = 1 • whenever f belongs to C for a particular m, then f also belongs to C for m + 1. • Conclusion: f belongs to C for any natural number m. Theory of Computation Lecture 7: Primitive Recursive Functions III

  16. Primitive Recursive Predicates • Theorem 6.1:Let C be a PRC class. • If f(t, x1, …, xn) belongs to C , then so do the functions To prove this theorem, we will show that g and h can be obtained from f by primitive recursion. Theory of Computation Lecture 7: Primitive Recursive Functions III

More Related