Onderstaand artikel was aanvankelijk bedoeld voor lezers van een creationistisch tijdschrift: Weet Magazine. Maar het is daar nooit in gepubliceerd.
Ho eens even! Wiskunde is toch wiskunde? Ja en nee. Om de zaken wat scherper te stellen. Denk bij "theoretische" wiskunde aan wat je op de middelbare school leert. En denk bij "praktische" wiskunde eerder aan computers, iPads, draagbare telefoons en dergelijke. Met enige overdrijving zou men kunnen zeggen dat de praktische wiskunde - meer bekend onder de naam "informatica" - zich heeft afgesplitst van de zuivere wiskunde. Dergelijke afscheidingen zijn in de wetenschap niet ongewoon. Destijds was de wiskunde een onderdeel van de filosofie. Nu echter zijn het gescheiden vakgebieden. Niemand die daar een probleem mee heeft.
Je zou het misschien niet verwachten, maar aan de hand van een paar voorbeelden zal ik proberen duidelijk te maken dat de twee verschillende invalshoeken - zuivere wiskunde versus informatica - leiden zal tot verschillende resultaten. Waarschuwing vooraf. Welke wiskunde dan ook is altijd heel precies en hangt sterk op details. Dit artikel zo maar even doorlezen betekent dus dat je volledig naast de inhoud zult grijpen. Aanbevolen wordt om alles eigenhandig te controleren en eventueel internet te gebruiken om je kennis aan te vullen. Wiskundekennis op middelbare school niveau (zeg HAVO) zou voldoende moeten zijn om het onderstaande te kunnen snappen.
Voorbeeld. Beschouw het volgende bitpatroon: 1010011010 , waarbij de bits in het patroon genummerd zijn van rechts naar links en deze nummering begint bij 0. Neem verder aan dat verder alle bits aan de linkerkant nul zijn. Dan kunnen we de bijbehorende verzameling weergeven als { 9 7 4 3 1 } , of { 1 3 4 7 9 } , of { 1 7 3 4 9 } ; de volgorde van de elementen in een verzameling doet er namelijk niet toe.
Afgezien van de eindigheid van verzamelingen in een computer, zijn er andere verschillen met de theoretische verzamelingenleer Wel degelijk! Om dit in te zien moeten we ons realiseren dat bitpatronen in een computer niet alleen dienen voor het weergeven van verzamelingen, maar voor de weergave van alles en nog wat: video's, foto's, teksten, getallen, om maar een paar dingen te noemen.
Echter laten we ons in het vervolg beperken tot de binaire
weergave van natuurlijke getallen. Het volgende rijtje komt menigeen wellicht bekend
voor.
Decimaal = binair: 0 = 0 , 1 = 1 , 2 = 10 , 3 = 11 , 4 = 100 , 5 = 101 , 6 = 110 , 7 = 111 , 8 = 1000 , 9 = 1001 enzovoort.
Het bitpatroon behorende bij de verzameling { 9 7 4 3 1 } uit het voorbeeld is 1010011010 en komt overeen met het volgende getal:
$2^1 + 2^3 + 2^4 + 2^7 + 2^9 = 2 + 8 + 16 + 128 + 512 = 666$ .
Omgekeerd kan men de getallen in de verzameling { 9 7 4 3 1 } omzetten in
nog weer andere verzamelingen, via het binaire patroon.
Als volgt: 9 = 1001 = { 3 0 } , 7 = 0111 = { 2 1 0 } , 4 = 0100 = { 2 } ,
3 = 0011 = { 1 0 } , 1 = 0001 = { 0 } . En vervolgens: 2 = 0010 = { 1 } , 0 = 0000 = { } .
Let op! De laatste verzameling bevat helemaal
geen elementen meer en staat bekend als de lege verzameling.
Vullen we dit alles in bij onze voorbeeld verzameling, dan vinden we in
een paar stappen het volgende. Goed opletten, want het wordt al snel onleesbaar! Als je een computer hebt met Microsoft Windows,
dan kun je bijvoorbeeld knippen en plakken met Kladblok, om geen fouten te maken bij het invullen.
666 = { 9 7 4 3 1 } =
{ { 3 0 } { 2 1 0 } { 2 } { 1 0 } { 0 } } =
{ { { 1 0 } { } } { { 1 } { 0 } { } } { { 1 } } { { 0 } { } } { { } } } =
{ { { { 0 } { } } { } } { { { 0 } } { { } } { } } { { { 0 } } } { { { } } { } } { { } } } =
{ { { { { } } { } } { } } { { { { } } } { { } } { } } { { { { } } } } { { { } } { } } { { } } } .
Verder kunnen we niet gaan.
Op deze manier kan men ieder natuurlijk getal laten overeenkomen met een verzameling die uitsluitend bestaat uit verzamelingen,
om precies te zijn: uit lege verzamelingen.
Omdat nu zowel onze natuurlijke getallen als onze computer verzamelingen overeenkomen
met dezelfde bitpatronen kunnen ze niet wezenlijk van elkaar worden onderscheiden. Getallen en verzamelingen zijn dus binnen
dit stukje informatica - praktische wiskunde - gelijkwaardig, het zijn twee verschijningsvormen van een en hetzelfde.
Maar dat wisten we eigenlijk al.
Hoe anders is dit bij de theoretische verzamelingenleer! Een gebruikelijke manier om daar natuurlijke getallen te definiëren
zijn de zogenaamde von Neumann ordinaalgetallen.
Deze werken als volgt. Neem iedere keer de getallen die je al hebt, maak er
een verzameling van en ken deze verzameling telkens toe aan het volgende getal. Begin met de lege verzameling. Dan krijgen we:
0 = { } , 1 = { 0 } , 2 = { 1 0 } , 3 = { 2 1 0 } , 4 = { 3 2 1 0 } , 5 = { 4 3 2 1 0 } , enzovoort.
We doen dit nog een keer,
maar dan met de von Neumann getallen aan de linkerkant en de getallen volgens de informatica methode aan de rechterkant. Vergelijkt
men nu de "theoretische" getallen links met de "praktische" getallen rechts dan is al na een paar stappen duidelijk dat we met totaal
verschillende opvattingen te maken hebben. Misschien weer knippen en plakken met Kladblok, om geen fouten te maken bij het invullen:
| wiskunde | verzameling | informatica |
| 0 = | { } | = 0 |
| 1 = { 0 } = | { { } } | = { 0 } = 1 |
| 2 = { 1 0 } = | { { { } } { } } | = { 1 0 } = 3 |
| 3 = { 2 1 0 } = | { { { { } } { } } { { } } { } } | = { 3 1 0 } = 11 |
| 4 = { 3 2 1 0 } = | { { { { { } } { } } { { } } { } } { { { } } { } } { { } } { } } | = { 11 3 1 0 } = 2059 |
C:\Users\Han\Desktop\ZERMELO>set2num {{{{{}}{}}{{}}{}}{{{}}{}}{{}}{}}
2059
C:\Users\Han\Desktop\ZERMELO>num2set 2059
{{}{{}}{{}{{}}}{{}{{}}{{}{{}}}}}
Dit zal het allemaal en stuk gemakkelijker maken. Gaan we weer, maar nu precies andersom als daarnet.
| informatica | verzameling | wiskunde |
| 0 = 00000 = { } = | {} | = 0 |
| 1 = 00001 = { 0 } = | {{}} | = { 0 } = 1 |
| 2 = 00010 = { 1 } = | {{{}}} | = geen |
| 3 = 00011 = { 1 0 } = | {{}{{}}} | = { 0 1 } = 2 |
| 4 = 00100 = { 2 } = | {{{{}}}} | = geen |
| 5 = 00101 = { 2 0 } = | {{}{{{}}}} | = geen |
| 6 = 00110 = { 2 1 } = | {{{}}{{{}}}} | = geen |
| 7 = 00111 = { 2 1 0 } = | {{}{{}}{{{}}}} | = geen |
| 8 = 01000 = { 3 } = | {{{}{{}}}} | = geen |
| 9 = 01001 = { 3 0 } = | {{}{{}{{}}}} | = geen |
| 10 = 01010 = { 3 1 } = | {{{}}{{}{{}}}} | = geen |
| 11 = 01011 = { 3 1 0 } = | {{}{{}}{{}{{}}}} | = { 0 1 2 } = 3 |
| 12 = 01110 = { 3 2 1 } = | {{{{}}}{{}{{}}}} | = geen |
Maar vooruit. Stel dat Alles inderdaad een Verzameling is. Opgevat in termen van de praktische wiskunde betekent dit nog iets anders. Verzamelingen hebben hoe dan ook te maken met bitpatronen, die zijn opgeslagen in computergeheugens. Wanneer alles een verzameling zou zijn dan zouden we technologisch gesproken te maken hebben met computers die die uitsluitend bestaan uit geheugen. Maar is dit niet in strijd met de werkelijkheid? Immers naast geheugen bevatten computers ook nog zoiets als een processor. Processoren zorgen ervoor dat een computer "leeft", dat bitpatronen kunnen veranderen. Een werkende processor is als het ware de "geest" van een computer. Maar de geest is geen verzameling. Een zuivere wiskunde met als credo "Alles is een verzameling" geeft zodoende geen antwoord op de belangrijke vraag hoe iets (in de tijd) kan veranderen. En nog minder hoe iets kan ontstaan (booten heet dat in computertermen). Zoiets abstracts als de de vraag of alles in de wiskunde een verzameling is zou wel eens raakvlakken zou kunnen hebben met heel andere, spirituele zaken.