En tänäänkään löytänyt inspiraatiota jatkaa artikkelia, joka minulta jäi kesken muutama päivä sitten. Aion tietysti palata sen pariin vielä ja julkaista sen kun se on valmis, mutta sen aika ei ole ihan vielä.
Minulla oli kuitenkin voimakas tarve kirjoittaa eräs toinen artikkeli, joka myös oli TODO-listallani. Kello on nyt melkein neljä yöllä, mutta se ei haittaa, sillä olen torstain ja perjantain lomalla. Äsken julkaisemani artikkeli koskee matematiikan filosofiaa ja tarkemmin sanottuna joukko-oppia. Sen nimi on Alternative definition of cardinality. Ydinajatukseni on hautunut pitkään, luultavasti jo yli 25 vuotta, mutta vasta tänään sain päälle riittävän flow-tilan, jotta pystyin muotoilemaan asiat riittävän selkeästi.
Ehdotan siis artikkelissani vaihtoehtoista määritelmää englanninkieliselle joukko-opilliselle käsitteelle "cardinality". Kyseinen termi on suomeksi mahtavuus ja se tarkoittaa yksinkertaisesti joukon alkioiden lukumäärää ts. joukon kokoa. Äärellisille joukoille mahtavuus on melko ongelmaton käsite, mutta kun edetään äärettömän kokoisiin joukkoihin, kohdataan isoja filosofisia ongelmia.
Olen suhtautunut erikokoisten äärettömyyksien olemassaoloon hyvin skeptisesti siitä saakka kun olen kuullut väitteitä niiden olemassaolosta. Mikäli vaihtoehtoinen määritelmäni hyväksytään lähtökohdaksi joukon mahtavuudelle, Georg Cantorin todistus reaalilukujen joukkojen mahtavuuden suuremmmuudesta verrattuna luonnollisten lukujen joukon mahtavuuteen kaatuu. Diagonaaliargumentti todistaisi mielestäni silti edelleen ylinumeroituvien joukkojen olemassaolon, mutta luonnollisten lukujen joukon mahtavuus ja reaalilukujen joukon mahtavuus olisivatkin yhtä suuria.
Pidän itse määritelmääni hyvin järkeenkäypänä ja Cantorin määritelmää taas pidän liian tiukkana. Eli katson, että ehdottamani vaihtoehto vastaa paremmin käsitystämme suuruudesta kuin Cantorin näkemys.
Yritin ensin kirjoittaa artikkelini HTML5-kielellä MathML-laajennuksia käyttäen, mutta tapeltuani varmasti reilusti yli tunnin kaikenlaisten trivialiteettien kanssa, menetin totaalisesti hermoni. Minun piti ihan istahtaa hetkeksi sohvalle ja juoda Teho-merkkinen energiajuoma, jotta sain taas itseni rauhoitettua. Jo oikeiden joukko-opillisten symbolien löytäminen tuntuu olevan HTML5/MathML-maailmassa sellainen urakka, että minua alkoi tosissaan ärsyttää.
Niinpä päädyin käyttämään LaTeX-ohjelmaa, sillä sen pohjalla toimivan TeX-ohjelman kirjoittanut Don Knuth suunnitteli sen muistaakseni ainakin osaksi nimenomaan matemaattisten dokumenttien laatimiseen.
LaTeX on siis eräänlainen käyttöä helpottava makropaketti TeX:in päällä ja se on monessa mielessä hyvin kätevä systeemi. On olemassa myös WYSIWYG-frontendejä LaTeX:ille, mutta itse en välitä niistä yhtään. Kirjoitan mieluummin LaTeX:ia vim-tekstieditorilla, mutta raakaan TeX:iin en ole sentään koskenut. Ei ole ollut tarvetta siihen.
Unix-klassikoista myös groff on minulle jossain määrin tuttu, mutta siinäkin olen lähinnä käyttänyt valmiita makropaketteja.
Nyt olen kuitenkin jo niin uupunut, että laitan tämän blogin julkaisuun ja menen nukkumaan.
LISÄYS YLLÄ OLEVAAN BLOGIKIRJOITUKSEEN 2018-10-18: Unto postasi Usenetin sci.logic
uutisryhmään ja pyysi kommentteja artikkeliini. Niitä onneksi jo tulikin ja niiden joukossa oli myös arvokasta kritiikkiä.
Artikkelini ensimmäinen versio jätti toivomisen varaa siinä, että varsinainen täsmällinen vaihtoehtoinen määritelmä ei ollut eksplisiittisesti muotoiltu, vaan oletin, että lukija hahmottaa sen automaattisesti osion 3 perusteella. Näin ei kuitenkaan ollut, joten lisäsin loppuun ns. rautalangasta väännetyn määritelmän, joka silti saattaa jättää toivomisen varaa tarkkuudessaan.
Enpä kyllä siinäkään erikseen maininnut tyhjän joukon mahtavuutta, mutta jos joku ei sitä ymmärrä, niin tyhjä joukko voidaan vaan mapata mahtavuuteen nolla eli siinä ei ole tietenkään yhtään alkiota. Tämä ei ole kiistanalaista.
Harmillisempi virhe sen sijaan oli se, että menin hulluuksissani väittämään reaalilukujen joukon uskottavan yleisesti olevan mahtavuusluokassa eli se oli ihan muistivirhe, joka on nyt korjattu LaTeX-dokumentin versiossa 2.11.
LISÄYS YLLÄ OLEVAAN BLOGIKIRJOITUKSEEN 2018-10-20: Lisäsin tänään artikkelini loppuun uuden kappaleen Responding to criticism. Lisäys tuli dokumentin versioon 3.00. Uusin on tätä kirjoitettaessa v3.01 ja siinä on eroa v3.00 julkaisuun vain yksi pieni kirjoitusvirhe. Sana "to" oli jäänyt pois. Korjauksen pienuuden vuoksi kasvatin versionumeroa vain vähän.
Mitä tulee itse lisätyn kappaleen asiasisältöön, täytyy myöntää, että olen siihen hyvin tyytyväinen. Siinä kuvattua vasta-argumenttia ei itseasiassa ole vielä kukaan minulle esittänyt, mutta tulin ajatelleeksi, että sellainen voisi olla mahdollista esittää. Keksin kuitenkin mielestäni hyvin uskottavan ja loogisen tavan kumota se, eli siitä syystä riemullani ei ole rajaa.
Näkisinkin, että ehdottamani removeElement
operaatio voidaan hyvinkin nähdä eräänlaisena "peilikuvana" tai vastakkaisena, mutta konseptuaalisesti vastaavana operaationa kuin äärettömien joukkojen määrittelykin. On täysin selvää, että tuntemassamme maailmassa voimme määritellä äärellisen mahtavuuden joukot luettelemalla niiden jäsenet. Mutta kun siirrymme äärettömiin mahtavuuksiin, emme voi enää turvautua eksplisiittiseen luetteluun. Miksi emme?
Ensinnäkin siksi, että esimerkiksi luonnollisten lukujen joukon jäsenten luetteleminen olisi prosessi, joka ajallisesti kestäisi tästä hetkestä ikuisuuteen. Jos joku aloittaisi urakan nyt, se ei tulisi koskaan valmiiksi.
Toiseksi, emme tiedä onko tuntemamme fyysinen maailmankaikkeus äärellinen vai ääretön. Mikäli se on äärellinen ja perimmäiseltä olemukseltaan olennaisesti digitaalinen, meillä on tuolloin äärellinen bittijono käytettävissämme. Koska luonnollisten lukujen joukon mahtavuus on ääretön, niin tässä tapauksessa meillä ei olisi tarjolla varastointitilaa luetella kaikkia luonnollisia lukuja, sillä jossain vaiheessa bittijonon tila tulisi täyteen!
Ja jos luettelisimme luvut, niin meillä pitäisi olla joku tapa tallettaa ja esittää tuo luettelointi käyttäen symboleita. Noiden symbolien fyysiset representaatiot taas ovat tuntemassamme maailmassa esimerkiksi merkkejä paperilla tai sähköisiä tiloja tietokoneiden muistissa - oli miten oli, itse tallennusmetodi ei ole oleellista, vaan se, että symbolit olisi voitava jotenkin tallentaa.
Jos taas universumimme on ääretön ja äärettömän ajan vaatimus olisi jotenkin siedettävissä, niin silloin ehkä luonnollisten lukujen symbolien luetteleminen olisi edes jollain lailla kuviteltavissa oleva operaatio.
LISÄYS YLLÄ OLEVAAN BLOGIKIRJOITUKSEEN 2018-10-21: Eilinen 2018-10-20 lisäykseni jäi kesken. Eli koko tuon sivujuonteen tarkoitus oli se, että äärellinen joukko ei aiheuta mahtavuuden määritelmän suhteen ongelmia. Mutta olin tulossa siihen pointtiin, että jokainen tuntemamme ääretön joukko määritellään tai "luodaan" ihan vastaavaan prosessin avulla kuin ehdottamani removeMember funktio. Eli luontivaiheessa meidän pitää käsittää, että esimerkisi Peanon aritmetiikassa successor-funktio määrittää luonnollisten lukujen joukon kun kuvittelemme, että sitä kutsutaan äärettömän monta kertaa. Tällä funktiolla on siis ääretön arvojoukko, se ei koskaan sitä "suurinta" palauta, koska sellaista ei ole olemassa.
Vastaavasti removeMember - vai kutsuinko sitä nimellä RemoveElement jossain yhteydessä - on vastaava funktio, mutta sitä ei käytetäkään äärettömän joukon määrittelyyn tai rakentamiseen, vaan sen tehtävä on tyhjentää joukko sen mahtavuuden määrittelemiseksi.
Äärellisen joukon tapauksessa algoritmi A kutsuu tätä poistofunktiota äärellisen määrän kertoja ja selvittää äärellisen joukon kardinaliteetin yksinkertaisesti kasvattamalla kokonaislukuarvoa jokaisella funktion kutsukerralla. Konkreettisesti, kolmen alkion joukko tyhjentyy kolmella removeMember kutsukerralla, sillä jokainen kerta poistaa yhden alkion ja silloin algoritmi A päättyy.
Jos taas algoritmi A ei pääty koskaan, niin silloin olemme saaneet selville, että joukon mahtavuus on oltava ääretön. Toisin sanoen, yhden alkion poistaminen ei koskaan tyhjennä sitä vaikka poistaakin siitä yhden alkion.
Mistä tiedämme, että onko kyseessä ääretön joukko jos algoritmi ei pääty koskaan? Voimme tutkia tapaa jolla tutkittava joukko on määritelty. Jos määritelmä on mahdollista esittää enumeraationa eli luettelemalla alkiot, niin silloin tiedämme, että algoritmi A tulee päättymään äärellisessä määrässä poistofunktion kutsukertoja.
Jos taas tutkittavan joukon määritelmä on oleellisesti vastaava äärettömyyden määrittelevä, päättymätän algoritmi kuten Peanon aritmematiikan successor-funktio, niin silloin tiedämme, että emme pysty myöskään äärellisellä määrällä removeElement kutsukertoja tyhjentämään joukkoa.