HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Definition df-rdgNEW 2971
Description: Define a recursive definition generator on On (the class of ordinal numbers) with characteristic function F and initial value A. This combines functions F in tfr1 2962 and G in tz7.44-1 2966 into one definition. This rather amazing operation allows us to define, with compact direct definitions, functions that are usually defined in textbooks only with indirect self-referencing recursive definitions. A recursive definition requires advanced metalogic to justify - in particular, eliminating a recursive definition is very difficult and often not even shown in textbooks. On the other hand, the elimination of a direct definition is a matter of simple mechanical substitution. The price paid is the mind-boggling complexity of our rec operation. But once we get past this hurdle, otherwise recursive definitions become relatively simple, as in, for example, df-aleph 3624. From the direct definition we can prove textbook recursive definitions as theorems using rdgzer 2979, rdgsuc 2980, and rdglim 2981. We can also restrict the rec operation to define otherwise recursive functions on the natural numbers om; see frzer 2990 and frsuc 2991. Our rec operation apparently does not appear in published literature, although closely related is Definition 25.2 of [Quine] p. 177, which he uses to "turn...a recursion into a genuine or direct definition" (p. 174). Note that the if operator (see df-if 1777) selects cases based on whether g is zero, has a limit ordinal domain, or has a successor domain.
Assertion
Ref Expression
df-rdgNEW |- rec(F, A) = U.{f | E.x e. On (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))}
Distinct variable group(s):   x,y,z,f,g,F   x,A,y,z,f,g

Detailed syntax breakdown of Definition df-rdgNEW
StepHypRef Expression
1 cF . . 3 class F
2 cA . . 3 class A
31, 2crdg 2969 . 2 class rec(F, A)
4 vf . . . . . . . 8 set f
54cv 1089 . . . . . . 7 class f
6 vx . . . . . . . 8 set x
76cv 1089 . . . . . . 7 class x
85, 7wfn 2417 . . . . . 6 wff f Fn x
9 vy . . . . . . . . . 10 set y
109cv 1089 . . . . . . . . 9 class y
1110, 5cfv 2422 . . . . . . . 8 class (f` y)
125, 10cres 2412 . . . . . . . . 9 class (f |` y)
13 vz . . . . . . . . . . . 12 set z
1413cv 1089 . . . . . . . . . . 11 class z
15 vg . . . . . . . . . . . . . 14 set g
1615cv 1089 . . . . . . . . . . . . 13 class g
17 c0 1707 . . . . . . . . . . . . 13 class (/)
1816, 17wceq 1091 . . . . . . . . . . . 12 wff g = (/)
1916cdm 2410 . . . . . . . . . . . . . 14 class dom g
2019wlim 2200 . . . . . . . . . . . . 13 wff Lim dom g
2116crn 2411 . . . . . . . . . . . . . 14 class ran g
2221cuni 1919 . . . . . . . . . . . . 13 class U.ran g
2319cuni 1919 . . . . . . . . . . . . . . 15 class U.dom g
2423, 16cfv 2422 . . . . . . . . . . . . . 14 class (g` U.dom g)
2524, 1cfv 2422 . . . . . . . . . . . . 13 class (F` (g` U.dom g))
2620, 22, 25cif 1776 . . . . . . . . . . . 12 class if(Lim dom g, U.ran g, (F` (g` U.dom g)))
2718, 2, 26cif 1776 . . . . . . . . . . 11 class if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))
2814, 27wceq 1091 . . . . . . . . . 10 wff z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))
2928, 15, 13copab 2055 . . . . . . . . 9 class {<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}
3012, 29cfv 2422 . . . . . . . 8 class ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y))
3111, 30wceq 1091 . . . . . . 7 wff (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y))
3231, 9, 7wral 1201 . . . . . 6 wff A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y))
338, 32wa 196 . . . . 5 wff (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))
34 con0 2199 . . . . 5 class On
3533, 6, 34wrex 1202 . . . 4 wff E.x e. On (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))
3635, 4cab 1090 . . 3 class {f | E.x e. On (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))}
3736cuni 1919 . 2 class U.{f | E.x e. On (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))}
383, 37wceq 1091 1 wff rec(F, A) = U.{f | E.x e. On (f Fn x /\ A.y e. x (f` y) = ({<.g, z>. | z = if(g = (/), A, if(Lim dom g, U.ran g, (F` (g` U.dom g))))}` (f |` y)))}
Colors of variables: wff set class
metamath.org