| Intuitionistic Logic Explorer Theorem List (p. 65 of 159) | < Previous Next > | |
| Bad symbols? Try the
GIF version. |
||
|
Mirrors > Metamath Home Page > ILE Home Page > Theorem List Contents > Recent Proofs This page: Page List |
||
| Type | Label | Description |
|---|---|---|
| Statement | ||
| Theorem | tfrexlem 6401* | The transfinite recursion function is set-like if the input is. (Contributed by Mario Carneiro, 3-Jul-2019.) |
| ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ On (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐹‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → ∀𝑥(Fun 𝐹 ∧ (𝐹‘𝑥) ∈ V)) ⇒ ⊢ ((𝜑 ∧ 𝐶 ∈ 𝑉) → (recs(𝐹)‘𝐶) ∈ V) | ||
| Theorem | tfri1d 6402* |
Principle of Transfinite Recursion, part 1 of 3. Theorem 7.41(1) of
[TakeutiZaring] p. 47, with an
additional condition.
The condition is that 𝐺 is defined "everywhere", which is stated here as (𝐺‘𝑥) ∈ V. Alternately, ∀𝑥 ∈ On∀𝑓(𝑓 Fn 𝑥 → 𝑓 ∈ dom 𝐺) would suffice. Given a function 𝐺 satisfying that condition, we define a class 𝐴 of all "acceptable" functions. The final function we're interested in is the union 𝐹 = recs(𝐺) of them. 𝐹 is then said to be defined by transfinite recursion. The purpose of the 3 parts of this theorem is to demonstrate properties of 𝐹. In this first part we show that 𝐹 is a function whose domain is all ordinal numbers. (Contributed by Jim Kingdon, 4-May-2019.) (Revised by Mario Carneiro, 24-May-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → ∀𝑥(Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V)) ⇒ ⊢ (𝜑 → 𝐹 Fn On) | ||
| Theorem | tfri2d 6403* | Principle of Transfinite Recursion, part 2 of 3. Theorem 7.41(2) of [TakeutiZaring] p. 47, with an additional condition on the recursion rule 𝐺 ( as described at tfri1 6432). Here we show that the function 𝐹 has the property that for any function 𝐺 satisfying that condition, the "next" value of 𝐹 is 𝐺 recursively applied to all "previous" values of 𝐹. (Contributed by Jim Kingdon, 4-May-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → ∀𝑥(Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V)) ⇒ ⊢ ((𝜑 ∧ 𝐴 ∈ On) → (𝐹‘𝐴) = (𝐺‘(𝐹 ↾ 𝐴))) | ||
| Theorem | tfr1onlem3ag 6404* | Lemma for transfinite recursion. This lemma changes some bound variables in 𝐴 (version of tfrlem3ag 6376 but for tfr1on 6417 related lemmas). (Contributed by Jim Kingdon, 13-Mar-2022.) |
| ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} ⇒ ⊢ (𝐻 ∈ 𝑉 → (𝐻 ∈ 𝐴 ↔ ∃𝑧 ∈ 𝑋 (𝐻 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝐻‘𝑤) = (𝐺‘(𝐻 ↾ 𝑤))))) | ||
| Theorem | tfr1onlem3 6405* | Lemma for transfinite recursion. This lemma changes some bound variables in 𝐴 (version of tfrlem3 6378 but for tfr1on 6417 related lemmas). (Contributed by Jim Kingdon, 14-Mar-2022.) |
| ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} ⇒ ⊢ 𝐴 = {𝑔 ∣ ∃𝑧 ∈ 𝑋 (𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))} | ||
| Theorem | tfr1onlemssrecs 6406* | Lemma for tfr1on 6417. The union of functions acceptable for tfr1on 6417 is a subset of recs. (Contributed by Jim Kingdon, 15-Mar-2022.) |
| ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → Ord 𝑋) ⇒ ⊢ (𝜑 → ∪ 𝐴 ⊆ recs(𝐺)) | ||
| Theorem | tfr1onlemsucfn 6407* | We can extend an acceptable function by one element to produce a function. Lemma for tfr1on 6417. (Contributed by Jim Kingdon, 12-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → 𝑧 ∈ 𝑋) & ⊢ (𝜑 → 𝑔 Fn 𝑧) & ⊢ (𝜑 → 𝑔 ∈ 𝐴) ⇒ ⊢ (𝜑 → (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}) Fn suc 𝑧) | ||
| Theorem | tfr1onlemsucaccv 6408* | Lemma for tfr1on 6417. We can extend an acceptable function by one element to produce an acceptable function. (Contributed by Jim Kingdon, 12-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → 𝑌 ∈ 𝑋) & ⊢ (𝜑 → 𝑧 ∈ 𝑌) & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑔 Fn 𝑧) & ⊢ (𝜑 → 𝑔 ∈ 𝐴) ⇒ ⊢ (𝜑 → (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}) ∈ 𝐴) | ||
| Theorem | tfr1onlembacc 6409* | Lemma for tfr1on 6417. Each element of 𝐵 is an acceptable function. (Contributed by Jim Kingdon, 14-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐵 ⊆ 𝐴) | ||
| Theorem | tfr1onlembxssdm 6410* | Lemma for tfr1on 6417. The union of 𝐵 is defined on all elements of 𝑋. (Contributed by Jim Kingdon, 14-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐷 ⊆ dom ∪ 𝐵) | ||
| Theorem | tfr1onlembfn 6411* | Lemma for tfr1on 6417. The union of 𝐵 is a function defined on 𝑥. (Contributed by Jim Kingdon, 15-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∪ 𝐵 Fn 𝐷) | ||
| Theorem | tfr1onlembex 6412* | Lemma for tfr1on 6417. The set 𝐵 exists. (Contributed by Jim Kingdon, 14-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐵 ∈ V) | ||
| Theorem | tfr1onlemubacc 6413* | Lemma for tfr1on 6417. The union of 𝐵 satisfies the recursion rule. (Contributed by Jim Kingdon, 15-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∀𝑢 ∈ 𝐷 (∪ 𝐵‘𝑢) = (𝐺‘(∪ 𝐵 ↾ 𝑢))) | ||
| Theorem | tfr1onlemex 6414* | Lemma for tfr1on 6417. (Contributed by Jim Kingdon, 16-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔 Fn 𝑧 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∃𝑓(𝑓 Fn 𝐷 ∧ ∀𝑢 ∈ 𝐷 (𝑓‘𝑢) = (𝐺‘(𝑓 ↾ 𝑢)))) | ||
| Theorem | tfr1onlemaccex 6415* |
We can define an acceptable function on any element of 𝑋.
As with many of the transfinite recursion theorems, we have hypotheses that state that 𝐹 is a function and that it is defined up to 𝑋. (Contributed by Jim Kingdon, 16-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) ⇒ ⊢ ((𝜑 ∧ 𝐶 ∈ 𝑋) → ∃𝑔(𝑔 Fn 𝐶 ∧ ∀𝑢 ∈ 𝐶 (𝑔‘𝑢) = (𝐺‘(𝑔 ↾ 𝑢)))) | ||
| Theorem | tfr1onlemres 6416* | Lemma for tfr1on 6417. Recursion is defined on an ordinal if the characteristic function is defined up to a suitable point. (Contributed by Jim Kingdon, 18-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓 Fn 𝑥 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑌 ∈ 𝑋) ⇒ ⊢ (𝜑 → 𝑌 ⊆ dom 𝐹) | ||
| Theorem | tfr1on 6417* | Recursion is defined on an ordinal if the characteristic function is defined up to a suitable point. (Contributed by Jim Kingdon, 12-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓 Fn 𝑥) → (𝐺‘𝑓) ∈ V) & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑌 ∈ 𝑋) ⇒ ⊢ (𝜑 → 𝑌 ⊆ dom 𝐹) | ||
| Theorem | tfri1dALT 6418* |
Alternate proof of tfri1d 6402 in terms of tfr1on 6417.
Although this does show that the tfr1on 6417 proof is general enough to also prove tfri1d 6402, the tfri1d 6402 proof is simpler in places because it does not need to deal with 𝑋 being any ordinal. For that reason, we have both proofs. (Proof modification is discouraged.) (New usage is discouraged.) (Contributed by Jim Kingdon, 20-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → ∀𝑥(Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V)) ⇒ ⊢ (𝜑 → 𝐹 Fn On) | ||
| Theorem | tfrcllemssrecs 6419* | Lemma for tfrcl 6431. The union of functions acceptable for tfrcl 6431 is a subset of recs. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → Ord 𝑋) ⇒ ⊢ (𝜑 → ∪ 𝐴 ⊆ recs(𝐺)) | ||
| Theorem | tfrcllemsucfn 6420* | We can extend an acceptable function by one element to produce a function. Lemma for tfrcl 6431. (Contributed by Jim Kingdon, 24-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → 𝑧 ∈ 𝑋) & ⊢ (𝜑 → 𝑔:𝑧⟶𝑆) & ⊢ (𝜑 → 𝑔 ∈ 𝐴) ⇒ ⊢ (𝜑 → (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}):suc 𝑧⟶𝑆) | ||
| Theorem | tfrcllemsucaccv 6421* | Lemma for tfrcl 6431. We can extend an acceptable function by one element to produce an acceptable function. (Contributed by Jim Kingdon, 24-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ (𝜑 → 𝑌 ∈ 𝑋) & ⊢ (𝜑 → 𝑧 ∈ 𝑌) & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑔:𝑧⟶𝑆) & ⊢ (𝜑 → 𝑔 ∈ 𝐴) ⇒ ⊢ (𝜑 → (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}) ∈ 𝐴) | ||
| Theorem | tfrcllembacc 6422* | Lemma for tfrcl 6431. Each element of 𝐵 is an acceptable function. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐵 ⊆ 𝐴) | ||
| Theorem | tfrcllembxssdm 6423* | Lemma for tfrcl 6431. The union of 𝐵 is defined on all elements of 𝑋. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐷 ⊆ dom ∪ 𝐵) | ||
| Theorem | tfrcllembfn 6424* | Lemma for tfrcl 6431. The union of 𝐵 is a function defined on 𝑥. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∪ 𝐵:𝐷⟶𝑆) | ||
| Theorem | tfrcllembex 6425* | Lemma for tfrcl 6431. The set 𝐵 exists. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → 𝐵 ∈ V) | ||
| Theorem | tfrcllemubacc 6426* | Lemma for tfrcl 6431. The union of 𝐵 satisfies the recursion rule. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∀𝑢 ∈ 𝐷 (∪ 𝐵‘𝑢) = (𝐺‘(∪ 𝐵 ↾ 𝑢))) | ||
| Theorem | tfrcllemex 6427* | Lemma for tfrcl 6431. (Contributed by Jim Kingdon, 26-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ 𝐵 = {ℎ ∣ ∃𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ 𝑔 ∈ 𝐴 ∧ ℎ = (𝑔 ∪ {〈𝑧, (𝐺‘𝑔)〉}))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝐷 ∈ 𝑋) & ⊢ (𝜑 → ∀𝑧 ∈ 𝐷 ∃𝑔(𝑔:𝑧⟶𝑆 ∧ ∀𝑤 ∈ 𝑧 (𝑔‘𝑤) = (𝐺‘(𝑔 ↾ 𝑤)))) ⇒ ⊢ (𝜑 → ∃𝑓(𝑓:𝐷⟶𝑆 ∧ ∀𝑢 ∈ 𝐷 (𝑓‘𝑢) = (𝐺‘(𝑓 ↾ 𝑢)))) | ||
| Theorem | tfrcllemaccex 6428* |
We can define an acceptable function on any element of 𝑋.
As with many of the transfinite recursion theorems, we have hypotheses that state that 𝐹 is a function and that it is defined up to 𝑋. (Contributed by Jim Kingdon, 26-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) ⇒ ⊢ ((𝜑 ∧ 𝐶 ∈ 𝑋) → ∃𝑔(𝑔:𝐶⟶𝑆 ∧ ∀𝑢 ∈ 𝐶 (𝑔‘𝑢) = (𝐺‘(𝑔 ↾ 𝑢)))) | ||
| Theorem | tfrcllemres 6429* | Lemma for tfr1on 6417. Recursion is defined on an ordinal if the characteristic function is defined up to a suitable point. (Contributed by Jim Kingdon, 18-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ 𝐴 = {𝑓 ∣ ∃𝑥 ∈ 𝑋 (𝑓:𝑥⟶𝑆 ∧ ∀𝑦 ∈ 𝑥 (𝑓‘𝑦) = (𝐺‘(𝑓 ↾ 𝑦)))} & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑌 ∈ 𝑋) ⇒ ⊢ (𝜑 → 𝑌 ⊆ dom 𝐹) | ||
| Theorem | tfrcldm 6430* | Recursion is defined on an ordinal if the characteristic function satisfies a closure hypothesis up to a suitable point. (Contributed by Jim Kingdon, 26-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑌 ∈ ∪ 𝑋) ⇒ ⊢ (𝜑 → 𝑌 ∈ dom 𝐹) | ||
| Theorem | tfrcl 6431* | Closure for transfinite recursion. As with tfr1on 6417, the characteristic function must be defined up to a suitable point, not necessarily on all ordinals. (Contributed by Jim Kingdon, 25-Mar-2022.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → Fun 𝐺) & ⊢ (𝜑 → Ord 𝑋) & ⊢ ((𝜑 ∧ 𝑥 ∈ 𝑋 ∧ 𝑓:𝑥⟶𝑆) → (𝐺‘𝑓) ∈ 𝑆) & ⊢ ((𝜑 ∧ 𝑥 ∈ ∪ 𝑋) → suc 𝑥 ∈ 𝑋) & ⊢ (𝜑 → 𝑌 ∈ ∪ 𝑋) ⇒ ⊢ (𝜑 → (𝐹‘𝑌) ∈ 𝑆) | ||
| Theorem | tfri1 6432* |
Principle of Transfinite Recursion, part 1 of 3. Theorem 7.41(1) of
[TakeutiZaring] p. 47, with an
additional condition.
The condition is that 𝐺 is defined "everywhere", which is stated here as (𝐺‘𝑥) ∈ V. Alternately, ∀𝑥 ∈ On∀𝑓(𝑓 Fn 𝑥 → 𝑓 ∈ dom 𝐺) would suffice. Given a function 𝐺 satisfying that condition, we define a class 𝐴 of all "acceptable" functions. The final function we're interested in is the union 𝐹 = recs(𝐺) of them. 𝐹 is then said to be defined by transfinite recursion. The purpose of the 3 parts of this theorem is to demonstrate properties of 𝐹. In this first part we show that 𝐹 is a function whose domain is all ordinal numbers. (Contributed by Jim Kingdon, 4-May-2019.) (Revised by Mario Carneiro, 24-May-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V) ⇒ ⊢ 𝐹 Fn On | ||
| Theorem | tfri2 6433* | Principle of Transfinite Recursion, part 2 of 3. Theorem 7.41(2) of [TakeutiZaring] p. 47, with an additional condition on the recursion rule 𝐺 ( as described at tfri1 6432). Here we show that the function 𝐹 has the property that for any function 𝐺 satisfying that condition, the "next" value of 𝐹 is 𝐺 recursively applied to all "previous" values of 𝐹. (Contributed by Jim Kingdon, 4-May-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V) ⇒ ⊢ (𝐴 ∈ On → (𝐹‘𝐴) = (𝐺‘(𝐹 ↾ 𝐴))) | ||
| Theorem | tfri3 6434* | Principle of Transfinite Recursion, part 3 of 3. Theorem 7.41(3) of [TakeutiZaring] p. 47, with an additional condition on the recursion rule 𝐺 ( as described at tfri1 6432). Finally, we show that 𝐹 is unique. We do this by showing that any class 𝐵 with the same properties of 𝐹 that we showed in parts 1 and 2 is identical to 𝐹. (Contributed by Jim Kingdon, 4-May-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V) ⇒ ⊢ ((𝐵 Fn On ∧ ∀𝑥 ∈ On (𝐵‘𝑥) = (𝐺‘(𝐵 ↾ 𝑥))) → 𝐵 = 𝐹) | ||
| Theorem | tfrex 6435* | The transfinite recursion function is set-like if the input is. (Contributed by Mario Carneiro, 3-Jul-2019.) |
| ⊢ 𝐹 = recs(𝐺) & ⊢ (𝜑 → ∀𝑥(Fun 𝐺 ∧ (𝐺‘𝑥) ∈ V)) ⇒ ⊢ ((𝜑 ∧ 𝐴 ∈ 𝑉) → (𝐹‘𝐴) ∈ V) | ||
| Syntax | crdg 6436 | Extend class notation with the recursive definition generator, with characteristic function 𝐹 and initial value 𝐼. |
| class rec(𝐹, 𝐼) | ||
| Definition | df-irdg 6437* |
Define a recursive definition generator on On (the
class of ordinal
numbers) with characteristic function 𝐹 and initial value 𝐼.
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
daunting complexity of our rec operation
(especially when df-recs 6372
that it is built on is also eliminated). But once we get past this
hurdle, definitions that would otherwise be recursive become relatively
simple. In classical logic it would be easier to divide this definition
into cases based on whether the domain of 𝑔 is zero, a successor, or
a limit ordinal. Cases do not (in general) work that way in
intuitionistic logic, so instead we choose a definition which takes the
union of all the results of the characteristic function for ordinals in
the domain of 𝑔. This means that this definition has
the expected
properties for increasing and continuous ordinal functions, which
include ordinal addition and multiplication.
For finite recursion we also define df-frec 6458 and for suitable characteristic functions df-frec 6458 yields the same result as rec restricted to ω, as seen at frecrdg 6475. Note: We introduce rec with the philosophical goal of being able to eliminate all definitions with direct mechanical substitution and to verify easily the soundness of definitions. Metamath itself has no built-in technical limitation that prevents multiple-part recursive definitions in the traditional textbook style. (Contributed by Jim Kingdon, 19-May-2019.) |
| ⊢ rec(𝐹, 𝐼) = recs((𝑔 ∈ V ↦ (𝐼 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥))))) | ||
| Theorem | rdgeq1 6438 | Equality theorem for the recursive definition generator. (Contributed by NM, 9-Apr-1995.) (Revised by Mario Carneiro, 9-May-2015.) |
| ⊢ (𝐹 = 𝐺 → rec(𝐹, 𝐴) = rec(𝐺, 𝐴)) | ||
| Theorem | rdgeq2 6439 | Equality theorem for the recursive definition generator. (Contributed by NM, 9-Apr-1995.) (Revised by Mario Carneiro, 9-May-2015.) |
| ⊢ (𝐴 = 𝐵 → rec(𝐹, 𝐴) = rec(𝐹, 𝐵)) | ||
| Theorem | rdgfun 6440 | The recursive definition generator is a function. (Contributed by Mario Carneiro, 16-Nov-2014.) |
| ⊢ Fun rec(𝐹, 𝐴) | ||
| Theorem | rdgtfr 6441* | The recursion rule for the recursive definition generator is defined everywhere. (Contributed by Jim Kingdon, 14-May-2020.) |
| ⊢ ((∀𝑧(𝐹‘𝑧) ∈ V ∧ 𝐴 ∈ 𝑉) → (Fun (𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥)))) ∧ ((𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥))))‘𝑓) ∈ V)) | ||
| Theorem | rdgruledefgg 6442* | The recursion rule for the recursive definition generator is defined everywhere. (Contributed by Jim Kingdon, 4-Jul-2019.) |
| ⊢ ((𝐹 Fn V ∧ 𝐴 ∈ 𝑉) → (Fun (𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥)))) ∧ ((𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥))))‘𝑓) ∈ V)) | ||
| Theorem | rdgruledefg 6443* | The recursion rule for the recursive definition generator is defined everywhere. (Contributed by Jim Kingdon, 4-Jul-2019.) |
| ⊢ 𝐹 Fn V ⇒ ⊢ (𝐴 ∈ 𝑉 → (Fun (𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥)))) ∧ ((𝑔 ∈ V ↦ (𝐴 ∪ ∪ 𝑥 ∈ dom 𝑔(𝐹‘(𝑔‘𝑥))))‘𝑓) ∈ V)) | ||
| Theorem | rdgexggg 6444 | The recursive definition generator produces a set on a set input. (Contributed by Jim Kingdon, 4-Jul-2019.) |
| ⊢ ((𝐹 Fn V ∧ 𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (rec(𝐹, 𝐴)‘𝐵) ∈ V) | ||
| Theorem | rdgexgg 6445 | The recursive definition generator produces a set on a set input. (Contributed by Jim Kingdon, 4-Jul-2019.) |
| ⊢ 𝐹 Fn V ⇒ ⊢ ((𝐴 ∈ 𝑉 ∧ 𝐵 ∈ 𝑊) → (rec(𝐹, 𝐴)‘𝐵) ∈ V) | ||
| Theorem | rdgifnon 6446 | The recursive definition generator is a function on ordinal numbers. The 𝐹 Fn V condition states that the characteristic function is defined for all sets (being defined for all ordinals might be enough if being used in a manner similar to rdgon 6453; in cases like df-oadd 6487 either presumably could work). (Contributed by Jim Kingdon, 13-Jul-2019.) |
| ⊢ ((𝐹 Fn V ∧ 𝐴 ∈ 𝑉) → rec(𝐹, 𝐴) Fn On) | ||
| Theorem | rdgifnon2 6447* | The recursive definition generator is a function on ordinal numbers. (Contributed by Jim Kingdon, 14-May-2020.) |
| ⊢ ((∀𝑧(𝐹‘𝑧) ∈ V ∧ 𝐴 ∈ 𝑉) → rec(𝐹, 𝐴) Fn On) | ||
| Theorem | rdgivallem 6448* | Value of the recursive definition generator. Lemma for rdgival 6449 which simplifies the value further. (Contributed by Jim Kingdon, 13-Jul-2019.) (New usage is discouraged.) |
| ⊢ ((𝐹 Fn V ∧ 𝐴 ∈ 𝑉 ∧ 𝐵 ∈ On) → (rec(𝐹, 𝐴)‘𝐵) = (𝐴 ∪ ∪ 𝑥 ∈ 𝐵 (𝐹‘((rec(𝐹, 𝐴) ↾ 𝐵)‘𝑥)))) | ||
| Theorem | rdgival 6449* | Value of the recursive definition generator. (Contributed by Jim Kingdon, 26-Jul-2019.) |
| ⊢ ((𝐹 Fn V ∧ 𝐴 ∈ 𝑉 ∧ 𝐵 ∈ On) → (rec(𝐹, 𝐴)‘𝐵) = (𝐴 ∪ ∪ 𝑥 ∈ 𝐵 (𝐹‘(rec(𝐹, 𝐴)‘𝑥)))) | ||
| Theorem | rdgss 6450 | Subset and recursive definition generator. (Contributed by Jim Kingdon, 15-Jul-2019.) |
| ⊢ (𝜑 → 𝐹 Fn V) & ⊢ (𝜑 → 𝐼 ∈ 𝑉) & ⊢ (𝜑 → 𝐴 ∈ On) & ⊢ (𝜑 → 𝐵 ∈ On) & ⊢ (𝜑 → 𝐴 ⊆ 𝐵) ⇒ ⊢ (𝜑 → (rec(𝐹, 𝐼)‘𝐴) ⊆ (rec(𝐹, 𝐼)‘𝐵)) | ||
| Theorem | rdgisuc1 6451* |
One way of describing the value of the recursive definition generator at
a successor. There is no condition on the characteristic function 𝐹
other than 𝐹 Fn V. Given that, the resulting
expression
encompasses both the expected successor term
(𝐹‘(rec(𝐹, 𝐴)‘𝐵)) but also terms that correspond to
the initial value 𝐴 and to limit ordinals
∪ 𝑥 ∈ 𝐵(𝐹‘(rec(𝐹, 𝐴)‘𝑥)).
If we add conditions on the characteristic function, we can show tighter results such as rdgisucinc 6452. (Contributed by Jim Kingdon, 9-Jun-2019.) |
| ⊢ (𝜑 → 𝐹 Fn V) & ⊢ (𝜑 → 𝐴 ∈ 𝑉) & ⊢ (𝜑 → 𝐵 ∈ On) ⇒ ⊢ (𝜑 → (rec(𝐹, 𝐴)‘suc 𝐵) = (𝐴 ∪ (∪ 𝑥 ∈ 𝐵 (𝐹‘(rec(𝐹, 𝐴)‘𝑥)) ∪ (𝐹‘(rec(𝐹, 𝐴)‘𝐵))))) | ||
| Theorem | rdgisucinc 6452* |
Value of the recursive definition generator at a successor.
This can be thought of as a generalization of oasuc 6531 and omsuc 6539. (Contributed by Jim Kingdon, 29-Aug-2019.) |
| ⊢ (𝜑 → 𝐹 Fn V) & ⊢ (𝜑 → 𝐴 ∈ 𝑉) & ⊢ (𝜑 → 𝐵 ∈ On) & ⊢ (𝜑 → ∀𝑥 𝑥 ⊆ (𝐹‘𝑥)) ⇒ ⊢ (𝜑 → (rec(𝐹, 𝐴)‘suc 𝐵) = (𝐹‘(rec(𝐹, 𝐴)‘𝐵))) | ||
| Theorem | rdgon 6453* | Evaluating the recursive definition generator produces an ordinal. There is a hypothesis that the characteristic function produces ordinals on ordinal arguments. (Contributed by Jim Kingdon, 26-Jul-2019.) (Revised by Jim Kingdon, 13-Apr-2022.) |
| ⊢ (𝜑 → 𝐴 ∈ On) & ⊢ (𝜑 → ∀𝑥 ∈ On (𝐹‘𝑥) ∈ On) ⇒ ⊢ ((𝜑 ∧ 𝐵 ∈ On) → (rec(𝐹, 𝐴)‘𝐵) ∈ On) | ||
| Theorem | rdg0 6454 | The initial value of the recursive definition generator. (Contributed by NM, 23-Apr-1995.) (Revised by Mario Carneiro, 14-Nov-2014.) |
| ⊢ 𝐴 ∈ V ⇒ ⊢ (rec(𝐹, 𝐴)‘∅) = 𝐴 | ||
| Theorem | rdg0g 6455 | The initial value of the recursive definition generator. (Contributed by NM, 25-Apr-1995.) |
| ⊢ (𝐴 ∈ 𝐶 → (rec(𝐹, 𝐴)‘∅) = 𝐴) | ||
| Theorem | rdgexg 6456 | The recursive definition generator produces a set on a set input. (Contributed by Mario Carneiro, 3-Jul-2019.) |
| ⊢ 𝐴 ∈ V & ⊢ 𝐹 Fn V ⇒ ⊢ (𝐵 ∈ 𝑉 → (rec(𝐹, 𝐴)‘𝐵) ∈ V) | ||
| Syntax | cfrec 6457 | Extend class notation with the finite recursive definition generator, with characteristic function 𝐹 and initial value 𝐼. |
| class frec(𝐹, 𝐼) | ||
| Definition | df-frec 6458* |
Define a recursive definition generator on ω (the
class of finite
ordinals) with characteristic function 𝐹 and initial value 𝐼.
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
daunting complexity of our frec operation
(especially when df-recs 6372
that it is built on is also eliminated). But once we get past this
hurdle, definitions that would otherwise be recursive become relatively
simple; see frec0g 6464 and frecsuc 6474.
Unlike with transfinite recursion, finite recurson can readily divide definitions and proofs into zero and successor cases, because even without excluded middle we have theorems such as nn0suc 4641. The analogous situation with transfinite recursion - being able to say that an ordinal is zero, successor, or limit - is enabled by excluded middle and thus is not available to us. For the characteristic functions which satisfy the conditions given at frecrdg 6475, this definition and df-irdg 6437 restricted to ω produce the same result. Note: We introduce frec with the philosophical goal of being able to eliminate all definitions with direct mechanical substitution and to verify easily the soundness of definitions. Metamath itself has no built-in technical limitation that prevents multiple-part recursive definitions in the traditional textbook style. (Contributed by Mario Carneiro and Jim Kingdon, 10-Aug-2019.) |
| ⊢ frec(𝐹, 𝐼) = (recs((𝑔 ∈ V ↦ {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑔 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑔‘𝑚))) ∨ (dom 𝑔 = ∅ ∧ 𝑥 ∈ 𝐼))})) ↾ ω) | ||
| Theorem | freceq1 6459 | Equality theorem for the finite recursive definition generator. (Contributed by Jim Kingdon, 30-May-2020.) |
| ⊢ (𝐹 = 𝐺 → frec(𝐹, 𝐴) = frec(𝐺, 𝐴)) | ||
| Theorem | freceq2 6460 | Equality theorem for the finite recursive definition generator. (Contributed by Jim Kingdon, 30-May-2020.) |
| ⊢ (𝐴 = 𝐵 → frec(𝐹, 𝐴) = frec(𝐹, 𝐵)) | ||
| Theorem | frecex 6461 | Finite recursion produces a set. (Contributed by Jim Kingdon, 20-Aug-2021.) |
| ⊢ frec(𝐹, 𝐴) ∈ V | ||
| Theorem | frecfun 6462 | Finite recursion produces a function. See also frecfnom 6468 which also states that the domain of that function is ω but which puts conditions on 𝐴 and 𝐹. (Contributed by Jim Kingdon, 13-Feb-2022.) |
| ⊢ Fun frec(𝐹, 𝐴) | ||
| Theorem | nffrec 6463 | Bound-variable hypothesis builder for the finite recursive definition generator. (Contributed by Jim Kingdon, 30-May-2020.) |
| ⊢ Ⅎ𝑥𝐹 & ⊢ Ⅎ𝑥𝐴 ⇒ ⊢ Ⅎ𝑥frec(𝐹, 𝐴) | ||
| Theorem | frec0g 6464 | The initial value resulting from finite recursive definition generation. (Contributed by Jim Kingdon, 7-May-2020.) |
| ⊢ (𝐴 ∈ 𝑉 → (frec(𝐹, 𝐴)‘∅) = 𝐴) | ||
| Theorem | frecabex 6465* | The class abstraction from df-frec 6458 exists. This is a lemma for other finite recursion proofs. (Contributed by Jim Kingdon, 13-May-2020.) |
| ⊢ (𝜑 → 𝑆 ∈ 𝑉) & ⊢ (𝜑 → ∀𝑦(𝐹‘𝑦) ∈ V) & ⊢ (𝜑 → 𝐴 ∈ 𝑊) ⇒ ⊢ (𝜑 → {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑆 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑆‘𝑚))) ∨ (dom 𝑆 = ∅ ∧ 𝑥 ∈ 𝐴))} ∈ V) | ||
| Theorem | frecabcl 6466* | The class abstraction from df-frec 6458 exists. Unlike frecabex 6465 the function 𝐹 only needs to be defined on 𝑆, not all sets. This is a lemma for other finite recursion proofs. (Contributed by Jim Kingdon, 21-Mar-2022.) |
| ⊢ (𝜑 → 𝑁 ∈ ω) & ⊢ (𝜑 → 𝐺:𝑁⟶𝑆) & ⊢ (𝜑 → ∀𝑦 ∈ 𝑆 (𝐹‘𝑦) ∈ 𝑆) & ⊢ (𝜑 → 𝐴 ∈ 𝑆) ⇒ ⊢ (𝜑 → {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝐺 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝐺‘𝑚))) ∨ (dom 𝐺 = ∅ ∧ 𝑥 ∈ 𝐴))} ∈ 𝑆) | ||
| Theorem | frectfr 6467* |
Lemma to connect transfinite recursion theorems with finite recursion.
That is, given the conditions 𝐹 Fn V and 𝐴 ∈ 𝑉 on
frec(𝐹, 𝐴), we want to be able to apply tfri1d 6402 or tfri2d 6403,
and this lemma lets us satisfy hypotheses of those theorems.
(Contributed by Jim Kingdon, 15-Aug-2019.) |
| ⊢ 𝐺 = (𝑔 ∈ V ↦ {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑔 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑔‘𝑚))) ∨ (dom 𝑔 = ∅ ∧ 𝑥 ∈ 𝐴))}) ⇒ ⊢ ((∀𝑧(𝐹‘𝑧) ∈ V ∧ 𝐴 ∈ 𝑉) → ∀𝑦(Fun 𝐺 ∧ (𝐺‘𝑦) ∈ V)) | ||
| Theorem | frecfnom 6468* | The function generated by finite recursive definition generation is a function on omega. (Contributed by Jim Kingdon, 13-May-2020.) |
| ⊢ ((∀𝑧(𝐹‘𝑧) ∈ V ∧ 𝐴 ∈ 𝑉) → frec(𝐹, 𝐴) Fn ω) | ||
| Theorem | freccllem 6469* | Lemma for freccl 6470. Just giving a name to a common expression to simplify the proof. (Contributed by Jim Kingdon, 27-Mar-2022.) |
| ⊢ (𝜑 → 𝐴 ∈ 𝑆) & ⊢ ((𝜑 ∧ 𝑧 ∈ 𝑆) → (𝐹‘𝑧) ∈ 𝑆) & ⊢ (𝜑 → 𝐵 ∈ ω) & ⊢ 𝐺 = recs((𝑔 ∈ V ↦ {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑔 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑔‘𝑚))) ∨ (dom 𝑔 = ∅ ∧ 𝑥 ∈ 𝐴))})) ⇒ ⊢ (𝜑 → (frec(𝐹, 𝐴)‘𝐵) ∈ 𝑆) | ||
| Theorem | freccl 6470* | Closure for finite recursion. (Contributed by Jim Kingdon, 27-Mar-2022.) |
| ⊢ (𝜑 → 𝐴 ∈ 𝑆) & ⊢ ((𝜑 ∧ 𝑧 ∈ 𝑆) → (𝐹‘𝑧) ∈ 𝑆) & ⊢ (𝜑 → 𝐵 ∈ ω) ⇒ ⊢ (𝜑 → (frec(𝐹, 𝐴)‘𝐵) ∈ 𝑆) | ||
| Theorem | frecfcllem 6471* | Lemma for frecfcl 6472. Just giving a name to a common expression to simplify the proof. (Contributed by Jim Kingdon, 30-Mar-2022.) |
| ⊢ 𝐺 = recs((𝑔 ∈ V ↦ {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑔 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑔‘𝑚))) ∨ (dom 𝑔 = ∅ ∧ 𝑥 ∈ 𝐴))})) ⇒ ⊢ ((∀𝑧 ∈ 𝑆 (𝐹‘𝑧) ∈ 𝑆 ∧ 𝐴 ∈ 𝑆) → frec(𝐹, 𝐴):ω⟶𝑆) | ||
| Theorem | frecfcl 6472* | Finite recursion yields a function on the natural numbers. (Contributed by Jim Kingdon, 30-Mar-2022.) |
| ⊢ ((∀𝑧 ∈ 𝑆 (𝐹‘𝑧) ∈ 𝑆 ∧ 𝐴 ∈ 𝑆) → frec(𝐹, 𝐴):ω⟶𝑆) | ||
| Theorem | frecsuclem 6473* | Lemma for frecsuc 6474. Just giving a name to a common expression to simplify the proof. (Contributed by Jim Kingdon, 29-Mar-2022.) |
| ⊢ 𝐺 = (𝑔 ∈ V ↦ {𝑥 ∣ (∃𝑚 ∈ ω (dom 𝑔 = suc 𝑚 ∧ 𝑥 ∈ (𝐹‘(𝑔‘𝑚))) ∨ (dom 𝑔 = ∅ ∧ 𝑥 ∈ 𝐴))}) ⇒ ⊢ ((∀𝑧 ∈ 𝑆 (𝐹‘𝑧) ∈ 𝑆 ∧ 𝐴 ∈ 𝑆 ∧ 𝐵 ∈ ω) → (frec(𝐹, 𝐴)‘suc 𝐵) = (𝐹‘(frec(𝐹, 𝐴)‘𝐵))) | ||
| Theorem | frecsuc 6474* | The successor value resulting from finite recursive definition generation. (Contributed by Jim Kingdon, 31-Mar-2022.) |
| ⊢ ((∀𝑧 ∈ 𝑆 (𝐹‘𝑧) ∈ 𝑆 ∧ 𝐴 ∈ 𝑆 ∧ 𝐵 ∈ ω) → (frec(𝐹, 𝐴)‘suc 𝐵) = (𝐹‘(frec(𝐹, 𝐴)‘𝐵))) | ||
| Theorem | frecrdg 6475* |
Transfinite recursion restricted to omega.
Given a suitable characteristic function, df-frec 6458 produces the same results as df-irdg 6437 restricted to ω. Presumably the theorem would also hold if 𝐹 Fn V were changed to ∀𝑧(𝐹‘𝑧) ∈ V. (Contributed by Jim Kingdon, 29-Aug-2019.) |
| ⊢ (𝜑 → 𝐹 Fn V) & ⊢ (𝜑 → 𝐴 ∈ 𝑉) & ⊢ (𝜑 → ∀𝑥 𝑥 ⊆ (𝐹‘𝑥)) ⇒ ⊢ (𝜑 → frec(𝐹, 𝐴) = (rec(𝐹, 𝐴) ↾ ω)) | ||
| Syntax | c1o 6476 | Extend the definition of a class to include the ordinal number 1. |
| class 1o | ||
| Syntax | c2o 6477 | Extend the definition of a class to include the ordinal number 2. |
| class 2o | ||
| Syntax | c3o 6478 | Extend the definition of a class to include the ordinal number 3. |
| class 3o | ||
| Syntax | c4o 6479 | Extend the definition of a class to include the ordinal number 4. |
| class 4o | ||
| Syntax | coa 6480 | Extend the definition of a class to include the ordinal addition operation. |
| class +o | ||
| Syntax | comu 6481 | Extend the definition of a class to include the ordinal multiplication operation. |
| class ·o | ||
| Syntax | coei 6482 | Extend the definition of a class to include the ordinal exponentiation operation. |
| class ↑o | ||
| Definition | df-1o 6483 | Define the ordinal number 1. (Contributed by NM, 29-Oct-1995.) |
| ⊢ 1o = suc ∅ | ||
| Definition | df-2o 6484 | Define the ordinal number 2. (Contributed by NM, 18-Feb-2004.) |
| ⊢ 2o = suc 1o | ||
| Definition | df-3o 6485 | Define the ordinal number 3. (Contributed by Mario Carneiro, 14-Jul-2013.) |
| ⊢ 3o = suc 2o | ||
| Definition | df-4o 6486 | Define the ordinal number 4. (Contributed by Mario Carneiro, 14-Jul-2013.) |
| ⊢ 4o = suc 3o | ||
| Definition | df-oadd 6487* | Define the ordinal addition operation. (Contributed by NM, 3-May-1995.) |
| ⊢ +o = (𝑥 ∈ On, 𝑦 ∈ On ↦ (rec((𝑧 ∈ V ↦ suc 𝑧), 𝑥)‘𝑦)) | ||
| Definition | df-omul 6488* | Define the ordinal multiplication operation. (Contributed by NM, 26-Aug-1995.) |
| ⊢ ·o = (𝑥 ∈ On, 𝑦 ∈ On ↦ (rec((𝑧 ∈ V ↦ (𝑧 +o 𝑥)), ∅)‘𝑦)) | ||
| Definition | df-oexpi 6489* |
Define the ordinal exponentiation operation.
This definition is similar to a conventional definition of exponentiation except that it defines ∅ ↑o 𝐴 to be 1o for all 𝐴 ∈ On, in order to avoid having different cases for whether the base is ∅ or not. We do not yet have an extensive development of ordinal exponentiation. For background on ordinal exponentiation without excluded middle, see Tom de Jong, Nicolai Kraus, Fredrik Nordvall Forsberg, and Chuangjie Xu (2025), "Ordinal Exponentiation in Homotopy Type Theory", arXiv:2501.14542 , https://arxiv.org/abs/2501.14542 which is formalized in the TypeTopology proof library at https://ordinal-exponentiation-hott.github.io/. (Contributed by Mario Carneiro, 4-Jul-2019.) |
| ⊢ ↑o = (𝑥 ∈ On, 𝑦 ∈ On ↦ (rec((𝑧 ∈ V ↦ (𝑧 ·o 𝑥)), 1o)‘𝑦)) | ||
| Theorem | 1on 6490 | Ordinal 1 is an ordinal number. (Contributed by NM, 29-Oct-1995.) |
| ⊢ 1o ∈ On | ||
| Theorem | 1oex 6491 | Ordinal 1 is a set. (Contributed by BJ, 4-Jul-2022.) |
| ⊢ 1o ∈ V | ||
| Theorem | 2on 6492 | Ordinal 2 is an ordinal number. (Contributed by NM, 18-Feb-2004.) (Proof shortened by Andrew Salmon, 12-Aug-2011.) |
| ⊢ 2o ∈ On | ||
| Theorem | 2on0 6493 | Ordinal two is not zero. (Contributed by Scott Fenton, 17-Jun-2011.) |
| ⊢ 2o ≠ ∅ | ||
| Theorem | 3on 6494 | Ordinal 3 is an ordinal number. (Contributed by Mario Carneiro, 5-Jan-2016.) |
| ⊢ 3o ∈ On | ||
| Theorem | 4on 6495 | Ordinal 3 is an ordinal number. (Contributed by Mario Carneiro, 5-Jan-2016.) |
| ⊢ 4o ∈ On | ||
| Theorem | df1o2 6496 | Expanded value of the ordinal number 1. (Contributed by NM, 4-Nov-2002.) |
| ⊢ 1o = {∅} | ||
| Theorem | df2o3 6497 | Expanded value of the ordinal number 2. (Contributed by Mario Carneiro, 14-Aug-2015.) |
| ⊢ 2o = {∅, 1o} | ||
| Theorem | df2o2 6498 | Expanded value of the ordinal number 2. (Contributed by NM, 29-Jan-2004.) |
| ⊢ 2o = {∅, {∅}} | ||
| Theorem | 1n0 6499 | Ordinal one is not equal to ordinal zero. (Contributed by NM, 26-Dec-2004.) |
| ⊢ 1o ≠ ∅ | ||
| Theorem | xp01disj 6500 | Cartesian products with the singletons of ordinals 0 and 1 are disjoint. (Contributed by NM, 2-Jun-2007.) |
| ⊢ ((𝐴 × {∅}) ∩ (𝐶 × {1o})) = ∅ | ||
| < Previous Next > |
| Copyright terms: Public domain | < Previous Next > |