§2.6 Belnesten · vlak
Hoe dieper de arrays of rijen in een systeem genest zijn,
hoe groter de getallen die ermee geschreven kunnen worden.
Elke iterator of iter in de top array bevindt zich op het
1e niveau.
Die begint met de eerste rij, waar elke separator of
sep een enkelvoudige index heeft, zie
§2.5.
Steeds als we een iter in Bellenblazer aftellen,
laden we een grotere bel b
op naar de iter die ervoor komt.
Om hogere iteraties in de top array te kunnen noteren,
breiden we de sep index uit tot een rij op het
2e niveau.
Deze sep array krijgt zelf ook weer hogere indexen,
genest op het 3e niveau.
Indexen op elk array niveau kunnen tot rijen verlengd worden.
Iters en hun indexen tellen we af tot 0
en dan ruimen we een blazer element tijdelijk weg.
Aan de uiteinden van arrays komt een getal, geen sep.
Arrays zijn lexicaal begrensd:
ieder opener haakje [
links heeft een eigen sluiter haakje
]
rechts, zie
box 1.0.
Om bij het begin van een geneste array
het einde te vinden is in complexe expressies verre van triviaal.
Tijdens een scan moeten we het nest niveau
op en aftellen tot we weer een haakje
van het originele niveau tegenkomen.
Ook onderscheiden we Bird's dimensionale ruimtes, zie
box 2.4.
Wat vereist dat we gelijke arrays herkennen,
omdat we de ruimte ertussen in blazers niet apart merken.
Bellenblazer is qua array structuur een tellerij.
In de evaluatie van een tellerij
komt elke iter op een positie met een eigen index te staan.
Wát de huidige array is
en wàt de index array, is relatief
en ligt aan de match die de regel maakt.
Bij verschillende soorten geneste arrays, de een in de ander,
kunnen we het niveau van haakjes
wellicht expliciet aangeven,
zoals posities in blazers altijd hun eigen index krijgen.
We breiden nu de regels voor de eerste rij
B.I
uit en herladen de eerste index.
Als die index leeg komt, hebben we subtotaal b
zojuist verplaatst naar de iter rechts buiten de index array.
Het substituut getal zal dus van die iter moeten komen,
niet van de nieuwe bel a
, omdat de functie anders
stokt…i
Echt grotere getallen zouden dan niet snel van de grond komen.
De eerste index geeft de iter positie aan in de meest rechtse rij.
De tweede index telt de rijen af in de twee-dimensionale ruimte.
Binnen een matrix geeft die index het aantal rijen
in het rechtse vlak
.
De hele index rij beslaat de multi-dimensionale ruimte of
matrix
. In de eerste subindex
,[d]p
op het derde niveau lezen we het getal van de dimensie.
Index p
is het aantal dim d
ruimtes,
dat onderdeel is van de meest rechtse dim
d1
ruimte.
De twee-dimensionale ruimte begint dus na de subindex
,[1]
die we hier af zullen korten tot ,
enkele komma.
We werken recursies over de twee indexen
van het array vlak onder uit.
De regels zijn:
separator eliminatie (sep elim),
bel en begin index introductie (bel intro) en
element introductie (elem intro).
Definitie Bellenblazer B.II specifiek voor het array vlak.
- B.0. B.1.
- B.2. ,[S]0 ≡ 0
- B.3a. [,[1S]1Z]a = [a,[1S]Z]a
- B.3b. ,[,1n]b ≡ ,[b,n]a
- B.4a. [b,[1n]1Z]a {n>0} = [,[n]b,[1n]Z]a
- B.4b. [b,[1,n]1Z]a {n>0} = [,[,n]b,[1,n]Z]a
De aas a
staat steeds rechts van de top array.
Hier is variabele b>0
en constante a>1
,
maar doorgaans is bel b>a
veel groter.
Equivalentie ≡
werkt overal in de expressie, met voorrang op andere regels.
Vooralsnog kan na elke evaluatie eenduidig worden bepaald,
welke regel daarna komt.
Bij het overladen
van de bel had anders een kopie gebruikt kunnen worden,
terwijl de originele b
in de array erboven of in de basis al zou blijven staan.
Maar we vinden het mooi als grote bellen
b
stap voor stap groeien,
zolang het kan. Daarom vervangt regel
B.3b.
hier de zojuist opgeladen iter b
door aas a
.
Regel
B.4b.
telt de eerste index in
,[1,1n]
af en verschuift een bel naar
,[,1n]b
de nieuwe iter. Daarna kan regel
B.3b.
de oude bel inladen
,[b,n]a
in de index array. Dan pas laadt
B.3a.
de nieuwe basis bel a
,
om vervolgens in tandem met regel
B.4a.
de array van rechts naar links met een nieuwe rij elementen
,[i,n]a
op te vullen.
# Googologie 2.6
De array functies van Bowers & Bird
(B&B)
rollen series van gelijke separatoren uit.
Dit schept een ruimtelijke structuur, waar dezelfde index arrays
in verschillende posities kunnen staan.
Zowel 1.) de B&B snellere start,
als 2.) de B&B
arrays met herhaalde indexen,
zijn overbodig voor het maken van grote getallen,
zodra we de nest diepte direkt opblazen.
Het 1e) bleek uit ons Btrix systeem,
dat langzaam op gang komt, maar net als
B&B
subarrays herhaalt.
Met het begin trio drukt Btrix
dubbele recursie uit, net als de eerste rij in Bellenblazer.
Met de index voor dimensies benadert
Btrixj
de lineaire array van
B&B.
Ondanks de voorsprong van B&B
lopen zij met hun geneste arrays niet verder uit op Btrix,
qua niveau.k
Ten 2e), door herhaling van seps verdubbelt bij
B&B
per genest array niveau de expressieve kracht,
ten opzichte van onze belnesten
die elke sep apart indexeren.
We geven hier twee argumenten voor:
2a.) Uit de eerdere vergelijking in
box 2.4
bleek, dat een structuur met unieke seps met index
[n]
op het 3e array niveau,
dezelfde getallen maakt als herhaalde seps met index
[n1]
op het 2e niveau.
Aasblazer is een super radix,
waar elke array apart reduceerbaar is
en dus blijft de gevonden proportie op ieder niveau van kracht.
Maar omdat het puur om de data capaciteit van structuren gaat,
verwachten we dat ook in Bellenblazer de unieke index arrays
dubbel genest zijn ten opzichte van de herhalende,
bij even grote uitkomsten.
2b.) Beide geneste structuren hebben we al eens afgelopen
met onze Alexal
super radix.
Toen bleek de structuur van unieke indexen op genest niveau
:kk:
en :kk1:
gelijk aan herhaalde indexen op :k:
niveau.
We werkten de vloeibare arrays van Alexa uit tot
tetratie.
En net als bij Aasblazer
kwam per nest een exponent op de machtstoren.
Ook zochten we een natuurlijk algoritme,
om de unieke index structuur opnieuw te laden
met subtotalen. De eerste poging was
Blixam
die bel b
verlaadde en verving door aas a
.
De tweede opzet heette
half geneste arrays
n
en daar hielden we bel b
en stuurden een kopie.
Chris Bird herhaalt14
elke separator, zodat zijn array niveau's
twee keer zoveel indexen bevatten dan bij unieke seps.
Maar halvering van nestdiepte stelt weinig voor,
vergeleken bij de bel op/inlaad recursie,
in de wedloop tussen Bellenblazer en Bird's arrays.
Door hierna de diepte op te blazen met de bel valt die factor
2
verschil in het niet.
Hier ontwikkelen we Bellenblazer
over de tweede dimensie, met rijen in het array vlak.
Net zo lang als er vergelijkbare expressies zijn
in het systeem voor grote getallen van de
wiskundige John H. Conway.
Conway's pijlketen15
[Conway's chained arrows]
is een recursieve functie, die getallen ver voorbij de
Ackermann functie
noteert.
Conway bedacht zijn pijlketen als vervolg op
Knuth's pijlen
↑
ofwel ^
supermachten.
Zijn enkele pijlen →
spelen dezelfde rol als komma's in een array functie.
Vanaf supermachten
a↑{c}b
=
a→b→c
bouwt Conway verder aan zijn hypermacht functie,
waar met elke volgende pijl →z
een dubbele recursie (over de hele expressie)
wordt genest in y
.
Conway lost zijn keten van de rechter zijde op,
zonder de voorlaatste parameter
y=1
opnieuw te laden.
De laatste parameter →1
≡
0
of de laatste twee
→1→z
≡
0
vallen weg,
zodra z
of y
zijn afgeteld.
Stapsgewijze definitie C.I van Conway's pijlen.
- a→b = a↑b
- X→1→z = X
- X→1 = X
- X→y1→z1 = X→(X→y→z1)→z == X→(..X..)→z :y:
Een getal herhalen a..
is vermenigvuldigen, primitieve recursie.
Die operatie herhalen geeft ↑
een macht. En zo, door operaties meerdere keren te herhalen
↑..
krijgen we supermachten:
dubbele recursie.
Bij herhaling zet z
in y
nu een dubbele recursie in over de hele keten,
tot de binnenste y
is afgeteld.
Over de hele lengte van de pijlketen vormt dit
de volgende hogere functie, een tripel recursie.
Voorbij supermachten liggen de gebieden van de
hypermachten
en de snel groeiende hierarchie
.
Dit zijn vage historische aanduidingen voor functies,
waar Conway's pijlfunctie concrete grenzen heeft.
We zullen het begrip hyper
invullen zoals Bird16.
In het verlengde van zijn ene multi-dimensionale index
drukt hij de hyper-dimensies uit met een rij indexen.
Zo volgt bij Conway na de supermachten c
een rij parameters, die elk dezelfde recursie
toepassen op de hele expressie. Conway's pijlketen
is dus de hypermacht functie bij uitstek.
Graham's getal uit
§2.2
wordt met
[6,[1,1]64]3
benaderd ≈>
via het nesten van supersterren in het derde item.
Want de dominante supermacht
3*{6}2
=
3↑↑↑↑3
vormt de top van een toren van 63
dubbele recursies.
Ook is [6,[1,1]64]2
minimaal kleiner <≈
dan Graham's getal. En met a=4
is die expressie al veel >
groter.
Maar meestal nemen we het niet zo aas nauw
met onze minimaal groter ≈>
benaderingen.
De vergelijkingen beginnen met dubbele recursie, het trio in Conway's pijlketen. We refereren naar de eerste rij formule van Bellenblazer.
- [b,[1,[1]1]1]a := [,[,1]b]a = [,[b]a]a = a*{b}a = a→a→b- = a→2→b
- [,[2]b,[1,1]1]a := a**b,[1,1]1 = a*{a^b}a ≈ a→b→2→2 {a≈b}
- [b,[1,1]1c]a = [,[,1]b,[1,1]c]a := a*{b}a,[1,1]c = a*{a*{b}a}a,[1,1]c- = a*{..a*{b}a..}a :c: ≈> a→b→(..a↑b..) :c: = a→b→c1→2
- [1b,[2,1]1c]a := a,[1,1]b,[2,1]c = a*{..a..}a.,[2,1]c :b: ≈> a→a→b→2,[2,1]c ≈> a→a→(..b..)→2 :c1: ≈> a→b1→c1→3
- [1b,[1d,1]1c]a := a,[d,1]b,[1d,1]c ≈> a→a→b→d1,[1d,1]c ≈> a→a→(..b..)→d1 :c1: ≈> a→b1→c1→d2
Op zich drukte de Bellenblazer rij met zijn
1e index supermachten uit, ongeveer
≈
als een pijlketen met 3 parameters.
Op de tweede rij met seps ,[d,1]
houdt die index d-
gelijke tred met Conway's 4e parameter,
als die de laatste in de keten is.
Evalueer Bellenblazer's 2e index
in vergelijking met de hele pijlketen van Conway.
Met e
rijen in het vlak is iter index
d
ongeveer gelijk aan
a→..d1
:e2
Conway's laatste parameter z
(en gelijker nog met een pijlketen variant,
die z
zou aftellen tot
0
in plaats van 1
).
- [b,[1,[1]2]1]a := [,[,2]b]a := ,[b,1]a = a,[b,1]a- ≈> a→a→a-→b1
- [b,[1,2]1c]a := ,[b,1]a,[1,2]c ≈> a→a→a→b,[1,2]c ≈> a→a→b→2→2,[1,2]c- ≈> a→a→b→c1→2
- [1b,[1d,2]1c]a := a,[d,2]b,[1d,2]c ≈> a→a→a→b→d1,[1d,2]c ≈> a→a→b1→c1→d2
- [b,[1,3]1c]a := a,[b,2]a-,[1,3]c ≈> a→a→a→a→b,[1,3]c ≈> a→a→a→b→c1→2
- [b,[d,3]c]a ≈> a→a→a→b→c→d1
- [b,[1,e]1]a ≈> a→..b :e1>2
- [b,[d,e]c]a ≈> a→..b→c→d1 :e>0
Met index e
maken we in Bellenblazer de sprong
over de hele keten van Conway.
Die tweede index is even krachtig als
Bird's 4e element [entry].
Check zelf het bewijs17
van Chris Bird, dat dit getallen in de orde
van Conway's pijlketen functie betreft…!
Bird's formule voor Conway's pijlketen versus de Bellenblazer formule met twee indexen, die onze dim 2 array ruimte met rijen van iters vult.
{a,b+1,c,d+1} {a>2,b>0,d>0} ≈> a→..b→c1 :d1 <≈ [1b,[1c,d]1]a := a,[c,d]b
Doordat we indexen in Bellenblazer aftellen tot 0
loopt onze d
hier 1
voor op Bird's parameter waarde.
De Bellenblazer rij was trager, dus begint deze index array
2
posities verder.
In
box 2.6
zagen we, dat door complete indexering
de oneven array niveau's in Bellenblazer functioneren
als separator herhaling in Bird's array ruimtes.
Dat begint op ons 1e of top niveau. De factor 2
niveau verschil van geneste arrays
blijft onze grootste achterstand op Bird.
Welke formule Conway's pijlketen het dichtste benadert…? Voor het vervolg is dit onbelangrijk. Maar doe onze demonstratie over en druk Bird's functie uit in Bellenblazer…!
Hoe heten de grote getallen?, gg: Nummer namen App in "Ogen op Stokjes!" voor de jeugd (iteror 2014).
j.
Bird's lineaire array lengte is gelijk aan Btrix' multidimensionale index, gg: Cubic and Dimensional in "Bea's dimensions" voor Btrix matrix (iteror 2014).
k.
Btrix dim-rij wisseling is even snel als Bird's rij-dim wisseling, verder nesten verandert deze structurele afstand niet, gg: Nesting depth in "Beat nested arrays" voor Btrix matrix (web 2014).
l.
Als alle substructuren uniek zijn, verdubbelt dit het aantal geneste niveau's, gg: Sentry to row format in "Alexa 2nd - Fluid Structures" voor Brobdingnagians (blog feb 2015).
m.
Hoofdregels: opladen, subladen, gg: Blixa system in "Blixa Nested Arrays" voor Brobdingnagians blog (concept apr 2015).
n.
Onze arrays zijn half genest, gg: Half nested arrays in "Big number systems" voor Iteror (blog okt 2015).
Bird's geneste arrays, behandelt recursieve functies
met limiet ordinaal ε0
,
Chris Bird,
Nested Array Notation,
2012.15.
Onze eigen pijlketen notatie benoemt nog veel grotere getallen, p.61 in Conway & Guy "The Book of Numbers" 1996.
16.
Is een [a,b,c,...]
dimensionale array
,
Chris Bird, p.1 in
Hyper-Dimensional Array Notation, 2017.17.
Bewijs dat Bird's lineaire array met 5 of meer elementen voorbij Conway's pijlketen gaat, Chris Bird, Proof, 2006.