Reuzen Getallen Blogboek

door Giga Gerard

„ Er is, o jongeren, iets ongeborens, ongewordens, ongeschapens, ongevormds. Bestond er, o jongeren, dit ongeborene, ongewordene, ongeschapene, ongevormde niet, dan zou er geen uitweg zijn uit deze wereld van het geborene, gewordene, geschapene, gevormde.” 

Boeddha

X

§1. Tellen

De constructie van simpele, supersnelle systemen om gigantisch grote getallen te schrijven is het doel van Giga Gerard’s
„Reuzen Getallen Blogboek”.
We nodigen alle wiskunde amateurtjes, aficionada's en avonturiersters uit om de aller-aller-allergrootste getallen te evalueren in een expansie van algoritmes die gaandeweg exotischer en erotischer zal worden!

Wie dingen bij elkaar doet, verzamelt ze een voor een. Hun aantal neemt toe en dat noteren we met een getal. Waarom zou een getal niet gewoon een aantal tellen kunnen zijn…?
Zodoende vormt een 1 en nog 1 vanzelf 11 twee, bijvoorbeeld. En in het algemeen, door twee getallen m en n samen te nemen, wat we schrijven als mn, kunnen we natuurlijk optellen.
In de systemen waarmee we grote getallen willen bouwen, nemen we zulke simplistische natuurlijkheid als leidraad. Vandaag beginnen we overnieuw…

In blog §1.0 telt getal nul 0 nog niets, dan in §1.1 telt getal 1 al iets. Die ietsen tellen in §1.2 op tot getal, hoewel ze in §1.3 elementen zijn in een set, zoals de wiskunde getallen verzamelt in een set.
Dat leidt in §1.4 tot het nesten van sets in sets. En §1.5 geeft een standaard manier van nesten, de ordinalen, waarmee in set theorie getallen zijn gedefinieerd. Uit §1.6 moet blijken, dat ook de grootste structuren terug te brengen zijn tot eenvoudige waarden.

In de eerste drie blogs zullen we getallen gewoon tellen. Maar in de laatste drie blogs reduceren grote systemen tot kleine getallen. Zo bereiken we dus het omgekeerde van ons einddoel: het grootste getal maken met de kleinste expressie. Daarom is de serie blogs van §1 niet onontbeerlijk, maar niettemin instructief.

Lectori salutem Blader behoedzaam.

X

§1.0 Nul

Voordat tellen begint, is er de nul 0, die niets   aangeeft. Hoe veel nullen we er ook bij zetten, een extra 0 verandert nooit iets.
Dit zijn de natuurlijke relaties van het getal nul.

00 ≡ 0
0a ≡ a & a0 ≡ a

Termen die equivalent zijn, kunnen we in elke expressie en zonder voorwaarden omruilen. Zulke regels zijn altijd overal direkt toepasbaar.
Maar optellen van units 0 heeft, behalve het vereenvoudigen van het getal, geen effect op de grootte van de uitkomst.

De eerste specifieke regel herkent alleen nullen. De tweede algemene regel zoekt een teken 0 naast een variabel getal a. Een lege 0 voegt niets aan een getal toe, en daarom wist de nul-eliminatie regel zulke cijfers.
Dus evalueren we 100=10=1. Dat oogt nogal vreemd, maar dat 01 de eerste aanduidt (van minuut, uur, dag) vinden we gewoon.

Gegeven de eliminatie regel 000 zouden we een groot aantal nullen kunnen produceren, door de evaluatie richting om te keren en door 00 in 0 te substitueren. Die reeks nullen is zelf weer tot 0 te reduceren en zo blijven we bezig…?!

  • 0 = 00 = 000 == 0.. :ω
  • 00.. 0:n = 0.. :n>0 == 0

We kunnen substitutie beide kanten op uitvoeren. Uit de equivalentie relatie PQ volgt dat QP ook waar is. Getallen of termen P en Q zijn binnen de expressies van het systeem inwisselbaar.

# Systematiek 1.0

Elke expressie of deel expressie is een aaneengesloten string [reeks] van tekens: cijfers voor getallen, kleine letters voor variabelen, grote letters voor woorden en specifieke tekens voor functie en evaluatie.

Hoewel een spatie iets betekent omdat dit een tekst opdeelt, negeren programma's deze witruimte vaak. Aan wiskundige code voegen we gratis spaties toe voor de leesbaarheid. En we verdelen een lange expressie over regels. Ook schilderen we speciale concepties in kleur.

Een woord is een deel van de expressie, en past syn­tactisch dus in het notatie systeem. Maar het kan ook   leeg zijn, zonder teken.
In regels korten we een woord af met een hoofd­letter, zoals W of X. De woord match blijft na eva­luatie van de expressie hetzelfde.
De woord vorm voldoet in onze notatie aan een extra voorwaarde:

In het woord op zich zijn alle haakjes gesloten paren. Ieder opener haakje [ links correspondeert met een uniek sluiter haakje ] rechts, en vise versa.
Ruimtes binnen haakjes mogen sowieso niet (X[Y)Z] overlappen, dit is foute syntax. Maar stel dat we binnen een subexpressie een array nesten (V[T]X) dan omvat T alleen zijn array ruimte met de daarin geneste arrays. Deze heeft nooit de vorm R]W[S met een deel W van het ouder niveau, omdat haakjes in T niet buiten het woord gepaard mogen worden.

Een kleine letter benoemt de variabele of var voor een getal. Binnen een wiskundige vergelijking bepalen de onafhankelijke variabelen de waarde van de afhankelijke. Maar in de vars van een input expressie kunnen we alle toegestane getallen invullen. Want we zoeken geen bepaalde oplossing, maar expanderen ons systeem.

Onze variabelen zijn positieve eindige of oneindige getallen of leeg.
Vars i en j zijn een index die van 1 tot n toeneemt in een repetitie.
Vars kunnen constant zijn, maar meestal nemen deze in een functie of evaluatie verschillende waarden aan. We geven een beperkt domein van een var aan, zoals {n>0} voor positieve getallen.

Een match voor een variabele is gretig naar units 1, zodat een woord v W er niet aan zal grenzen met een getal.
In die zin is 0 een lege var, op een plaats waar nog niet geteld wordt. Een nul die wacht en graag wil wegvallen tegen enen.

Nul-eliminatie is niet van toepassing op getallen in het tientallig stelsel, waar we met grijpgrage vingers cijfers tellen tot de menselijke maat, de basis 10 die tien heet, vol is.
Hier onderscheiden we decimale getallen in bruin 5 = 11111 of met een decimale punt 10000. erachter.
Tienduizend is trouwens de oude Griekse myriade, hun kwadraat van 100*100. Ook betekende dat toen zoveel als ontelbaar.

Nullen optellen schiet niet op en lijkt een doodlopende weg. Maar een lege structuur kan reduceren tot 0 en vervolgens wegvallen tegen een getal, wat ons systeem volledig maakt. Met structuur eliminatie regels kunnen we alle mogelijke (eindige) input expressies evalueren tot output units (natuurlijk getallen).

In systemen voor grote getallen kunnen we de 0 en het optellen ermee best missen. Dit teken krijgt in onze notatie een aparte betekenis.
Als de lege var 0 in de linker term van een regel voorkomt, dan staat in de match in de expressie geen (ander) getal op of vlak naast die positie. Zo'n 0 geeft aan dat een teller of index echt leeg   is.
En na evaluatie en substitutie met een rechter regel term met 0 valt dit teken meteen weg, vanzelf. Zie bijv. in §2.8 regel B.2.

De kwantiteit 0, die een hoeveelheid aangeeft zonder tel, bewijst in de praktijk goed dienst. Vooral in situaties met heen en weer getel, waarin de waarde 0 tijdelijk of bij benadering is.
Twijfel knaagt: is het cijfer 0 geen oneigenlijk hulpmiddel? Kunnen lege plaatsen zonder opvul 0 wel functioneren? Zou getal 0 principieel tot leegte moeten herleiden en echt verdwijnen? Is een naam 0 voor geen tellen of eerder al tel niet nodig in de taal? Hoe kan geen auto hetzelfde zijn als geen stoel…?

Waarvan men niet spreken kan, daarover moet men zwijgen, besloot de filosoof.0 …Slaat dit ook op de nul die geen zwijgers telde?

X

§1.1 Enen

Na nul komt het eerste positieve getal een 1, dat iets voorstelt.
Tevens is 1 een unit of eenheid van getal. Door units 1 op te tellen (met vingers tellen) kan ieder natuurlijk aantal worden begrepen.

Deze interne telfunctie van 1, waarmee een extern object bij een verzameling objecten wordt geteld, werd door grondlegger van de moderne wiskunde David Hilbert das Ding 1 genoemd, omdat het zelfstandig ten opzichte van de logica bestaat.1

Volgt een circulaire definitie, waarin we enen tellen, zodat het aantal 1:a identiek is met een uniek getal a.

a ≡ 1.. :a>0
ω = 1...

Introductie van units 1 is willekeurig. Het getal volgt als we stoppen met tellen. Zonder halt te houden (zonder einde aan de repetitie) kan tellen in theorie oneindig doorgaan.
Het eerste oneindige getal is omega ω. Per definitie is ω de kleinste limiet, die met tellen nooit bereikt wordt.
Praktisch is de grens van elke handeling natuurkundig bepaald, dus ook van het tellen. Bijvoorbeeld: stil tellen tot duizend is mentaal al extreem, met vingers opsteken erbij wordt het dat ook fysiek!

Samen met 0 als geen een 1:0 vormen alle eindige reeksen 1:n de verzameling van de natuurlijke getallen.

 1 -> 0
11 -> 1
n1 -> n

In deze ordening is elk getal n1 de opvolger -> van vorig getal n. Steeds 1 tel erbij, te beginnen bij 0, krijgt elk natuurlijk getal zijn eigen plaats in de reeks.

# Systematiek 1.1

Zulke minimaal groter pijlen passen we toe:
-> tussen getallen, links de direkte opvolger van getal rechts.
-> tussen structuren, waar een nieuwe index (links) de laatste overtreft en zo de maat neemt van die structuur (rechts).
-> voor de expressie die direkt volgt, of anders vrijwel volgt ≈> op een insignificant grotere expressie.

Dit is groter dan > met klein ≈> of strikt het kleinst -> verschil dus.
Ook leiden we voor de vergelijking van systemen de minimaal kleiner tekens <- en <≈ net zo af van < kleiner dan.

Kleiner en groter geven de natuurlijke ordening aan van getallen.

a>b <=> b<a
    <=> bc=a & c>0

Ons systeem evalueert expressies in eenvoudige stappen. Wat we reductie noemen is de evaluatie van een rekenkundige formule in de tijd naar unair getal. We reduceren input door er regels in serie op toe te passen, tot de output de primaire vorm heeft van een rij enen.
Om meerdere stappen tegelijk te kunnen begrijpen, gebruiken we hulpmiddelen zoals repetities, subexpressies en speciale variabelen.

Als iets bij 0 (in het begin) waar is, en voor ieder getal als we er 1 bij optellen (door naar de volgende gaan) logisch waar blijft, dan moet het via inductie gelden voor alle natuurlijke getallen (of met doorlopende nummering geordende objecten).

Om functies vooraf te laten gaan aan het leren tellen, lijkt overdreven en onnatuurlijk. Toch definieerde Peano de natuurlijke getallen zo2, met herhaalde substitutie in een successor functie S vanaf 0.

01 = S(0)
11 = S(1) = S(S(0))
n1 = S(n) == S(..0..) :n1:

Vervangen we de omschriften S() rechts door units 1, dan telt dat op tot hetzelfde getal. Successors verschillen niet echt van enen. En hun definitie blijft circulair, want het aantal geneste functies S drukt het getal uit. Enen tellen is simpeler en fundamenteel.

Een iteratie zal de enen van een variabele 1.. aftellen tot deze leeg of 1 is. Dan krijgt een eliminatie regel prioriteit, die het lege element opheft, of anders houden we de positie aan, om later een groot getal naar de iterator op te laden. Er hoeft geen 0 aan te pas te komen. Een afgetelde iter is nooit een match in de iteratie regel.

Zonder modulaire reductie van getallen, per m0 regel, is er geen simpele eliminatie van enen. Zo wordt de output van expressies al gauw erg groot, en praktisch niet meer te tellen.
Nieuwe tekens en regels comprimeren getallen, zodat kortere input significant grotere output kan produceren. Iteraties tellen hun indexen af, en de expressie als geheel groeit.
Is het indelen van expressies in types of klassen eigenlijk ook een vereenvoudiging van getallen? Een extremere vorm van comprimering, voorbij de regels, of kan dat niet…?

X

§1.2 Optellen

Nemen we de units 1 van de getallen a en b samen, dan tellen deze direkt tot een getal ab op. In ons systeem zullen we variabelen zonder teken ertussen optellen, niet vermenigvuldigen.
We gebruiken juist een plus teken + om optellen a+b uit te stellen.

Negatieve getallen zijn series minnen -.. en de unit min - zal door 1 bij te tellen 1-=0 verdwijnen, zodat n- een getal aftelt.
Een som mn van gehele getallen is gewoon een serie units zonder scheiding, en direkt reduceerbaar. Sommen van gelijke waarde zijn overal uitwisselbaar.
In unit notatie zullen we enen 1 en minnen - binnen gehele getallen meteen reduceren tot een minimale lengte: hetzij tot een positief aantal enen, hetzij negatief met alleen minnen.

Optellen van positieve gehele getallen is commutatief.

  • 1n ≡ n1 =>
  • mn = 1..n :m = 1..n1 :m- == n1.. :m = nm

Bij eindige getallen blijft het gelijk of een tel er rechts of links bij komt (of af gaat). Zo geeft verwisseling van m+n dezelfde som.
De == herhaalt de evaluatie volgens eerdere regel(s).

# Systematiek 1.2

Een systeem of algoritme is een lijst van regels voor het evalueren van tekst. We scannen of doorzoeken een expressie l-r van links naar rechts tot we een overeenkomst vinden, een match voor een regel. Vervolgens herschrijven we met die regel de gevonden match.

Herschrijfregel P`=Q stelt dat we in alle onderhavige expressies het woord P door Q kunnen vervangen, indien P de eerste l-r match is, die we vanuit dit systeem van regels kunnen maken in de tekst.
Andersom (als Q eerst matcht, P ervoor in de plaats zetten) mag ook, maar dat gaat tegen het verloop van de evaluatie in.
Het cursief accent ` staat symbool voor de scanner cursor.

P`=Q <=> Q`=P
P`=Q <=> PZ`=QZ
P`=Q  => P=Q

Voor een regel P=Q met het is gelijk teken = vormt de hele expressie een match. Herschrijven met `= houdt meer in dan geheel gelijk zijn. De axioma's hierboven impliceren => dit.

Een functie kan een subexpressie nesten (substitueren, plaatsen) binnen de expressie. Recursieve functies nesten een mindere versie van zichzelf herhaaldelijk intern, in plaats van een variabele. Vanaf de binnenste waarde reduceert men de subexpressies daarna (tussen haakjes) tot getal. De variabele wordt zodoende erg groot.

Onze regels werken zonder subexpressies, dus zonder de klassieke recursie. Maar door herhaling van structuren groeien onze getallen minstens even snel als die van andere grote array functies.
Bij het uitwerken van series evaluaties en in vergelijking met andere systemen keren subexpressies (en haakjes) wel terug.

Cijfers zijn onze symbolen voor unaire constanten. Zodat bijvoorbeeld 12=3 de units 1 daarin simpel 1+2 optelt.

2 ≡ 11    9 ≡ 111111111
3 ≡ 111    8 ≡ 11111111
4 ≡ 1111    7 ≡ 1111111
5 ≡ 11111    6 ≡ 111111

Onze regels zijn effectief maar zuinig, niet met aantallen tekens maar met gebruikte types. Waarom meerdere cijfers gebruiken, als dit bij echt grote getallen (vanaf tetratie) niet uitmaakt?

Ook sparen we ronde haakjes () liever uit, door subexpressies niet direkt te nesten. Wel verplaatsen we sterk gegroeide getallen naar eerdere structuren. Ons grote getallensysteem komt langzaam op gang, maar de dominantere structuren halen dat later weer in.

Ronde haakjes omgeven getallen in andere systemen. Zoals in Funix(101010,11) = 42. waar de naam of prefix aangeeft welke functie dit is… Wat is Funix?

X

§1.3 Sets

Getallen zijn wiskundige objecten die eigenschappen dragen. Voor iedere eigenschap bestaat er een set {e0.,ei..} waarvan de elementen alle verzamelbare objecten met die eigenschap zijn.
Vanuit de logica dat het bestaat om alle voorkomende gevallen te bevatten, is een uitgebreide set theorie ontwikkeld, die allerlei wiskundige objecten ordent3 en oneindige sets verklaart.4

Twee belangrijke operaties met sets, waarmee we elementen kunnen introduceren of elimineren:
De vereniging van twee sets AB vormt een set, waarin alle elementen uit A en B voorkomen, maar elk eenmalig. Dit selecteert een groter (plus) of gelijk aantal elementen.
De doorsnede van de sets AB is de set van alle elementen, die zowel in A als in B voorkomen. Dit selecteert een kleiner (geen) of gelijk aantal elementen.

Verzamelingen van getallen zijn praktisch bruikbaar, maar set theorie is te vergevorderd en gekunsteld om de eenvoudige aritmetica op te baseren. Tellen en herhalen, de constructie van getallen, gaat aan hun vertaling naar sets vooraf, niet andersom.5
Hoewel we objecten kunnen verzamelen in een set en de elementen dan nummeren6, kunnen we ook simpel tellen tot een getal, zoals in §1.1, los van verzameling en objecten. Dubbel of verkeerd geteld blijft geteld, items die we overslaan komen niet terug in het totaal, maar met het getal is verder prima te rekenen.

De correspondentie tussen set en aantal blijft problematisch.7 Een set dient uit unieke elementen te bestaan en is vaak onbeperkt, maar natuurlijke getallen zijn eindige series van eenzelfde tel.
Tussen sets onderling is er niet vanzelf een welordening, die er met de kleiner dan < relatie tussen getallen wel is. Want getallen 1.. en hun ordening zijn simpeler dan sets en de element relatie, hoewel men in de wiskunde graag begint met moeilijk doen.8

Dus hoe kunnen we sets tellen, en sets gebruiken om te tellen, en zijn er ook sets die getallen zijn?9
Een set tellen is het tellen van zijn elementen. Het aantal elementen van een set heet zijn kardinaal getal. Wij noemen dit de rij lengte, omdat we geordende sets gaan gebruiken als index arrays, waar elementen hun eigen plaats krijgen in de rij.

Om getallen uit te drukken kunnen sets dienst doen als een lijst namen. We kunnen ieder natuurlijk getal laten corresponderen met een unieke set in onze lijst namen en iedere set naam met een getal. Zo'n = register heet een bijectie.

Verzamelde elementen hoeven geen externe objecten te zijn, zoals getallen. Een hele set structuur kan alleen bestaan uit sets.
Zulke holle structuren hebben als bouwsteen de lege set, die niets bevat (ook 0 niet) en die we origineel als {} schrijven. De lege set benoemt per definitie het getal {}=0 nul, in wat volgt. Of was het natuurlijker om een lege set die toch iets is …de 1 toe te kennen?

X

§1.4 Nesten

Te beginnen met de lege set omvatten we deze verder (stap na stap) met de element relatie. Zo'n set als element nesten in een set telt 1 op bij het getal voor de gehele set. Uit het aantal paren haakjes is de geneste diepte af te lezen die een natuurlijk getal geeft. Onze settige namen voor getallen stoppen we dan in een verzameling van eenvoudige nestgetallen, bijvoorbeeld.

Eenvoudige nestgetallen hebben in iedere set steeds 1 element, behalve de binnenste {} die 0 elementen telt.
0-eenvoudige nestgetallen bestaan uit lege sets naast sets met 2 elementen, behalve voor 1 omdat {{},{}} tot {{}} reduceert.

  • {..} :n1: = {.{..}.} :n:
  • {.{},{..}.} :n: = {{},{.{},{..}.}} :n-:

Deze duo reps herhalen de met stippen geselecteerde tekens tegelijk aan beide zijden, hier van buiten naar binnen. Het aantal herhalingen staat apart van de expressie in de :n: rep.

In beide systemen kunnen we haakjes tellen waar het aantal geneste sets maximaal is, om het uitgedrukte getal n af te lezen. We scannen expressies l-r en tellen sluithaakjes }.. tot we hun maximum aantal gevonden hebben. Hier is dat op het eind van de expressie. We tellen vanaf de diepste 0 set {} van binnen naar buiten.

Een reguliere set kan genest zijn als element van een andere set, maar nooit xx in zichzelf of in een van zijn elementen. Er mogen geen elkaar omvattende sets in de keten voorkomen, of oneindige ketens zonder begin element.10 Binnen beginnen en de nesten naar buiten toe tellen voorkomt deze irregulaire constructies.
Volgens het axioma van regulariteit kan er bij het terugtellen over elementen, altijd een minimale set worden gevonden. Maar set ketens worden met van binnenuit gevormd. Bij de oneindige nesten van limiet ordinalen11 zoals omega ω, kan van boven af terugtellen per definitie niet. Tellen moet dus bij een binnenste 0 set beginnen.

Zonder gebruik van repetitie, door het aantal iteraties als variabele te substitueren binnen de expressie, kunnen we deze reduceren met primitieve stappen. Zo ook in de evaluatie van sets met eenvoudige en 0-eenvoudige nesten tot getallen.

  • {} ≡ 0 & {n} ≡ n1 .
  • {} ≡ 0 & {0} ≡ 1 & {0,n} ≡ n1 .

In de stapsgewijze reductie van deze holle sets tot getal, ontstaan er onderweg sets met getallen als elementen. Dit systeem van sets is geen bijectie, omdat meerdere sets evalueren tot hetzelfde getal.

Stel dat we onze eenvoudige nestgetallen gebruiken voor variabele e>0 elementen in een {E} functie array met vaste plaatsen. Dat laten we werken volgens een maximaal lineair algoritme met optellen en opladen van getallen.
Zo tellen twee eenvoudige nestgetallen herhaald op.

  • {{A},{B},1Z} = {{A},{B}{A},Z} = {{A},{{B}}A,Z}
  • {B}.{..} :a1: = {{B}}.{..} :a: == {..B..}.{} :a1: = {..B..} :a1:

Laat hierin arrays die met de nul set beginnen ,{{} een separator array tussen eenvoudige variabelen in voorstellen, die hogere functie dimensies opent en op dezelfde wijze weer nest.
En laat arrays die met de 1 set beginnen, een volgend type arrays openen, die het eerdere type verdiepen en zelf afwisselend op de 0 en 1 wijze genest kunnen worden.
Enzovoort voor arrays die met n sets beginnen…
Hoe krachtig zijn de expressies van zulke holle bolle sets…? En als meerdere arrays van gemixt type de variabelen scheiden…?

X

§1.5 Ordinalen

Als van een set een begin element gegeven is, en een functie die alle elementen stapsgewijs selecteert, dan heet die set welgeordend.
Het keuze axioma stelt dat er altijd een manier is, om uit een set een element te kiezen: eerst e0 en zo voort de items ei. Zo kan de meest chaotische set welgeordend worden gemaakt, maar helaas is die keuze functie ietsje complexer dan de set zelf.
Grote en oneindige sets indexeren we (tijdens hun constructie) met inductie. De index voor een element geeft zijn plaats en/of nummer.

Soms corresponderen sets een-op-een met de verzameling van de natuurlijke getallen. Dan hebben deze sets per definitie omega ω elementen.
Zulke vergelijkingen tussen sets voerde Cantor12 verder, ver in het oneindige door. Hij zocht oneindige limieten gebaseerd op ω om de verzameling van alle reële getallen te kunnen tellen.

Cantor gebruikte ordinale sets om verzamelingen van getallen te representeren en zo te tellen. Voor eindige sets hoeft dat niet, want elementen krijgen natuurlijke indexen, en de rij lengte is het ordinaal getal. Maar bij oneindige sets maakt de wijze van tellen groot verschil.13 Daar bepaalt de een-op-een correspondentie met een standaard ordinale set het aantal elementen.

Von Neumann ordinalen zijn ordinale sets met als elementen alle voorgaande ordinalen, te beginnen met de lege set, welgeordend op rij. Von Neumann vertaalde zijn ordinalen14 een-op-een naar de natuurlijke getallen, een bijectie.

  • {} = 0
  • {{}} = 1
  • {{}, {{}}} = 2
  • {{}, {{}}, {{},{{}}}} = 3
  • {N} = n => {N}{{N}} = {N,{N}} = n1

Zowel de top rij lengte als de totale set diepte geven in ordinale sets het ordinaal getal. Het aantal set niveau's bepalen we door in elke rij steeds rechts de grootste subset in te stappen.
De lege set {} is de unieke set15 die niets bevat. In dit systeem worden lege sets tot getal 0 gereduceerd. Als de nul set echt niets zou zijn, moesten we al zulke items elimineren, en zou het hele holle kaartenhuis van de ordinalen tot niets vervallen.

Ordinale sets S- aftellen op 6 manieren:
verenig S = e0.ei.. alle items.
versnijd set Sem met zijn supremum.
vervang S door zijn grootste em item.
verwijder het laatste item em uit de rij.
verminder subsets ei- recursief, en/of:
vernietig alle lege sets in de diepte.
Gangbaar om lengtes af te tellen is verwijdering.

Bij gewone natuurlijke getallen 1.. gebruiken we de typisch ordinale aftel operaties niet. Ordinalen zijn een soort natuurlijke getallen, maar de ordinale structuur biedt veel meer ruimte. Wie met ordinale sets alleen een rij getallen indexeert, merkt geen verschil, maar dan verspilt men hun rijke structuur.

Als een ordinaal 1 toeneemt, verdubbelt de grootte van de expressie en wordt deze in zijn geheel genest. De complexe ordinale structuur, waar voor getal n in totaal 2^n sets zijn gebruikt, kan toch niet de fundamentele definitie van de natuurlijke getallen geven?
Optellen met ordinalen toont hoe onnatuurlijk dit is, zeker vergeleken met automatisch optellen van enen 1.. in unit notatie.

  • 2+2 = 2+1+1 = 3+1 = 4
  • {{},{{}}} + {{},{{}}} = {{},{{}}} + {{}} + {{}} = {{},{{}},{{},{{}}}} + {{}} = {{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}
  • 22 = 1111

Er is nog een probleem met omega ω. We zagen in §1.4 dat de eenvoudige nestgetallen al voldoende expressief waren om de natuurlijke getallen weer te geven. Nu heeft iedere ordinale set alle eerdere ordinalen als subset. Waar tellen 1.. één keer naar limiet ω gaat, gebeurt dat binnen de ordinale structuur oneindig veel keren. …Zou dat ten koste gaan van de eenduidigheid van ordinale getallen?

X

§1.6 Waarden

Door 1 op te tellen bij een ordinaal, neemt de set rij met 1 element toe en wordt de set 1 niveau genest. Lengte en diepte groeien parallel aan het ordinaal getal. We kunnen stellen dat de maten van beide dimensies in sets even belangrijk zijn.
Om de set structuur te waarderen nemen we nu de som van diepte en lengte. Dat werkt ook bij ordinale sets. Deze waardering vormt geen welordening, want de som kan groter worden dan de rij lengte alleen, en is dus ongeschikt om de elementen in een set te indexeren.

De rijen structuur van arrays is dezelfde als die van sets, zonder dat de set regel, dat elk rij element uniek moet zijn, daarbij is opgelegd.
Naast lengte en diepte speelt ook de getalswaarde van elementen mee. Getallen zijn immers uit te drukken als ordinalen en vice versa.

Zo waarderen we arrays en sets net als ordinalen:

  • {0,{0},{0,{0}},{0,{0},{0,{0}}}}{0,1,{0,1},{0,1,{0,1}}}{0,1,2,{0,1,2}}{0,1,2,3} ≡ 4
  • {{{0},1},{2,3},4} = {{1},{2,3},4} = {2,{2,3},4} = {2,4} = 5
  • [[[0,0,0,0],1],[2,3],4] = [[4,1],[2,3],4] = [5,[2,3],4] = [5,4,4] = 6

Door geneste sets vanuit de diepte l-r te vervangen door een getal, determineren we elke set. Zo worden ordinale sets iteratief tot hun ordinaal getal herleid16 en soortgelijke structuren, andere sets en arrays, tot hun ordinale waarde.

Stel nu dat we een getal of parameter koppelen aan elke geneste array. Dan verandert de set structuur in een geneste functie array, waar de sets de parameters indexeren. Maar de output van zo'n array hoeft geen groot getal te zijn. We kunnen de waarde van deze structuur ook weer met optellen determineren.

Ordinale evaluatie van items, lengte, diepte in sets:
Loop in een rij S langs de items. Als een item een rij is, loop daar dan in verder als in S.
Als S de lege set is, zet er waarde 0 voor in de plaats.
Als de rij lengte r>ei groter is dan de waarde van elk item, vervang dan S door waarde r.
Zoek anders het grootste item emei en vervang S door em1.
Ordinale evaluatie van parameter en set in arrays:
Zodra een index array zijn waarde heeft, telt de gekoppelde eipi parameter erbij op.

In geneste functie arrays bepalen parameters op diepte d1 de index array waarde voor een gekoppelde parameter op diepte d. Voor de totale array volgt de waarde pi.. :d door herhaaldelijk optellen. Ofwel w*w als we parameters en diepte de waarde w geven.

Dit in contrast met de hogere array functies, die met dezelfde geneste structuur razend snel groeien en enorm grote getallen produceren.
Dit bewijst dat er een geneste functie is, waarin elke variabele en elke dimensie significant kan zijn, die even langzaam of weinig expressief is als vermenigvuldiging.

De virtuele parameter die we rechts aan sets kunnen koppelen is {X}0 nul. Dan blijken sets nog relatief expressief te zijn, want in functie arrays negeren of elimineren we zulke separatoren bij de tot 0 of 1 afgetelde parameters.

Welke setwaarde natuurlijk is is moeilijk te bepalen.
Gewoon tellen van een verzameling objecten geeft de rij lengte of de kardinale waarde w.
Een set met een genest element of rij lengte w op diepte w kreeg ordinaal de waarde w*2.
Een verzameling getallen die we optellen, heeft een orde van grootte van waarde w*w.
Tellen we alle waarden in geneste sets op vanaf diepte w, dan is het totaal ongeveer w^w.

De structuur van sets en arrays sommeert tot de waarde w^w, wanneer we in elke rij steeds w rijen nesten tot maximaal een diepte w vanaf de basis. Dit vormt een matrix met gelijke dimensies, waar in de diepste rij elk element 1 is.

[[[1,1,1],[1,1,1],[1,1,1]],
 [[1,1,1],[1,1,1],[1,1,1]],
 [[1,1,1],[1,1,1],[1,1,1]]] =
[[3,3,3],[3,3,3],[3,3,3]] =
  [9,9,9] = 27.

Zoals in een volgend blog §2.3 de geneste structuur van index array en getal in functie arrays de waarde w^^w krijgt door het optellen en opladen van een constante w. Deze geneste radix functie noemen we Aasblazer. De waarde ervan is natuurlijk voor deze structuur.
Vandaar dat we de structuur van sets, als voorganger van de geneste functie arrays, het best de waarde w^w toekennen. Met de introductie van index arrays wordt de komma , separator overbodig.

Cantor telde elementen van sets met behulp van ordinalen.17 Toch lijken de ordinalen de drie set tekens {,} te verspillen door er enkel natuurlijke getallen mee weer te geven. We zagen in §1.4 al, dat de expressieve kracht van holle bolle sets, waar eenvoudige nestgetallen in plaats nemen, snel explosief wordt.
Tellen is het zuinigst te funderen met units 1. Ordinale sets zijn erg verkwistend. Tenzij… iemand de extra faciliteiten voor op en aftellen, die Von Neumann ordinalen in §1.5 boden, elegant weet te benutten?

1. Combinaties van het ding 1 met zichzelf, in David Hilbert "On the foundations of logic and arithmetic" 1904, p.131 in "From Frege to Gödel" 1967.
2. Een operatie s, die intuitief gedacht 1 optelt, III.67 The Peano axioms, in "The Princeton Companion to Mathematics" 2008.

3. Opbouw van de ordeningsstructuren, p.43-49 in "Sesam Atlas van de wiskunde 1" 1977.
4. Er is altijd een eerstvolgend getal dat nog niet gebruikt is, ch.10 Cantor's ordinal numbers, in Conway & Guy "The Book of Numbers" 1996.
5. Alle elementen van sets moeten zelf sets zijn, p.89 The Von Neumann universe, in Manin "A Course in Mathematical Logic for Mathematicians" 2010.
6. Tellen is gewoon het vervangen van de onhandige standaard set door cijfers, ch.1 Counting, in Thurston "The Number System" 1956.
7. Een bepaalde niet ter zake doende structuur, h.11 Getallen, in Halmos "Intuïtieve Verzamelingenleer" 1968.
8. De < relatie tussen de natuurlijke getallen is per definitie de relatie, ch.1.10 Transfinite numbers, in Malitz "Introduction to Mathematical Logic" 1979.
9. Een set tellen betekent zijn elementen op die manier te ordenen, in Pohlers "Proof theory" 2009.

10. Er bestaat geen oneindig afdalende serie, ch.4 in Mendelson "Introduction to Mathematical Logic" 1964.
11. Ordinaalgetallen die geen onmiddelijke voorganger hebben noemt men limiet ordinaalgetallen, h.2.3 in Horsten "Eindig, Oneindig, meer dan Oneindig" 2004.

12. Georg Cantor "Contributions to the founding of the theory of transfinite numbers" 1895 & 1897, p.1137 in "God created the integers" 2007.
13. De valkuil om te denken dat kardinalen en ordinalen gelijk zijn, ch.13 Order versus the cardinals, in Clegg "A brief history of Infinity" 2003.
14. Iedere ordinaal is de set van de ordinalen die eraan vooraf gaan, in John von Neumann "On the introduction of transfinite numbers" 1923, p.347 in "From Frege to Gödel".
15. We noemen de lege set of de nul set, p.62-67 Set theory, in Crossley "What Is Mathematical Logic?" 1972.

16. Elke welgeordende set is isomorf aan een uniek ordinaal getal, Ordinal Numbers, theorem 2.12 in Jech "Set Theory" 2006.
17. Ordinalen uitgedrukt als polynomen met machten van ω, 11.7 Ordinal Notations + exercises, in Rogers "Theory of Recursive Functions and Effective Computability" 1967.

Gulliver meegevoerd door de Lilliputters op een groot bed

Blogboek  index

  1. Tellen
    1. Nul
    2. Enen
    3. Optellen
    4. Sets
    5. Nesten
    6. Ordinalen
    7. Waarden
  2. Rijen
  3. Dieper

© 2017
Giga Gerard