Epsilon og delta og store O

Når jeg har vejledt projekter, hvor studerende skulle anvende asymptotisk notation til at analysere funktioners vækstrate, er der altid nogle hindringer for forståelsen. Definitionen er egentlig enkel nok.

Lad f og g være funktioner over de naturlige tal. Vi siger at f = O(g), hvis der findes en positiv reel konstant c og et naturligt tal n_0 således at f(n) \leq c \cdot g(n) for alle n > n_0.

Hvis betingelsen gælder, når det bløde ulighedstegn ovenfor gøres skarpt, har vi at f = o(g).

Vi kan så indføre notationen O(f) for at skrive et led h, hvorom vi blot ved at h = O(f) og skrive f.eks.

(x+4)^2 = x^2 + O(x)

Asymptotisk notation stammer fra talteori og dukker op første gang hos Paul Bachmann helt tilbage i 1894. Datalogistuderende kender dog asymptotisk notation fra algoritmeteori, hvor de funktioner, der bliver sammenlignet, er kompleksitetsfunktioner. Derfor kan man opleve forbløffende mange studerende sige at “O-notationen bruges til at måle kompleksitet” eller, om muligt endnu værre, at “O-notationen bruges til at måle funktioners kompleksitet”.

Den legendariske amerikanske matematiker og datalog Donald Knuth skrev i 1988 et kort brev til AMS (American Mathematical Society), hvori han slog til lyd for, at man skulle lære de studerende differential- og integralregning ved brug af netop O-notation. Hans tanke er, at dette skulle være nemmere i læringssammenhæng. Om det er rigtigt, ved jeg ikke. Men når man skal definere f.eks. den afledede af en reel funktion, bliver det nemmere. For da kan vi sige, at f for værdien x er differentiabel med afledet f'(x), hvis der for et tilstrækkeligt lille \epsilon gælder at

f(x+\epsilon) = f(x) + f'(x)\epsilon + O(\epsilon^2)

Nu er det nemt at finde den afledede af f(x) = x^2, for

(x+\epsilon)^2 = x^2 + 2x\epsilon + \epsilon^2

Kontinuitet kan formuleres således: f er kontinuert i x hvis

f(x+\epsilon) = f(x) + o(1)

Jeg ved som sagt ikke, om ideen er god i didaktisk sammenhæng. Men den giver en interessant vinkel på reel analyse. Det gode er, at de kvantorer, der hærger epsilon-delta-definitionerne i analyse, nu i stort omfang er skjult i definitionen af asymptotisk notation. Det er stadig mandag formiddag, og jeg har ikke tænkt over, om det ved brug af asymptotisk notation bliver nemmere at forstå f.eks. den kontraponerede udgave af kontinuitetsdefinitionen, som trækker tænder ud på mange matematikstuderende. Men nogen bør tænke over det.

Man kan finde \TeX-filen med Knuths brev her (og husk, at det er \TeX, ikke \LaTeX!).

3n + 1

Et velkendt problem på grænsefladen mellem talteori og algoritmeteori er Collatz’ formodning. Det skyldes den tyske matematiker Lothar Collatz, stammer fra 1937 og er meget nemt at forklare:

Vælg et naturligt tal n som x_0.

Sæt nu x_{i+1} = 3n+1 hvis n er ulige og x_{i+1} = n/2 hvis n er lige.

På denne måde får vi en følge af værdier x_0, x_1, x_2, \ldots. Det er ikke svært at se, at hvis x_k = 1, vil følgen fra da af være periodisk med elementerne 1,4,2,1,4,2,\ldots. Det er meget nemt at skrive et lille program, der beregner værdierne i følgen, og det viser sig hurtigt, at med alle de startværdier man kan komme i tanke om, ender vi på et tidspunkt med værdien 1. Hvis det er ved x_k, vi når til 1 første gang, kalder vi k for følgens længde.

På grafen ovenfor kan man se følgens længde som funktion af startværdien for mindre værdier af denne.

Men gælder det virkelig altid at en følge har en længde? Dvs. når vi altid frem til 1 til sidst? Collatz’ formodning er, at det altid er tilfældet. I matematik er det som bekendt ikke nok med anekdotisk evidensgrundlag; der skal et generelt argument til. Den tyske matematiker Gerhard Opfer, som i sin tid havde Collatz som vejleder, har i år hævdet at have bevist Collatz’ formodning, men han har for nylig måttet trække sin påstand tilbage. Et lidt kynisk argument for at der måtte være en fejl er, at et påstået bevis på kun 11 sider næppe kan være korrekt! Paul Erdös sagde i sin tid, at matematikken endnu ikke er rede til at kunne levere et bevis – og tilbød 500 dollars i præmie til den, der kunne.

Men er Collatz’ formodning overhovedet vigtig? Som i så mange andre tilfælde er svaret, at det afhænger af definition af vigtighed. I en grundforskningssammenhæng er svaret et ubetinget ja, for som det er tilfældet for så mange andre åbne problemer i de matematiske fag, har arbejdet med Collatz’ formodning kastet en masse interessante matematiske opdagelser af sig. På Wikipedias udmærkede side om Collatz’ formodning kan man læse meget mere om disse.

F.eks. viste Kurtz og Simon i 2007, at man kan generalisere problemet til såkaldte Collatz-funktioner og bevise, at det er uafgørbart om en given Collatz-funktion og en given startværdi vil give en følge, der ender i 1. Beviset bygger på en generalisation af et resultat af John Conway, der kun kan håndtere startværdier på formen 2^k. Det spændende ved sådanne beviser for uafgørbarhed er, synes jeg, at de afslører at et begrebsapparat er “tilpas interessant”.

Kurtz og Simons resultat siger ikke noget om Collatz’ formodning. Formodningen handler ikke om afgørbarhed, og selve formodningen er trivielt afgør – den er jo enten sand eller falsk. Hvad der så faktisk er tilfældet, ved vi derimod ikke.

Alle har mødt hver deres Frege

Gottlob Frege, den tyske logiker og filosof, der levede fra 1848 til 1925, er en legende, og alene hans navn ansporer tilsyneladende til en rejse i fantasiens verden. En af mine gamle medstuderende kaldte ham Lille Frække Frege, og en kollega fandt senere på sangen “Jeg går og hedder Frege”. Historien om Freges korrespondance med Bertrand Russell i forbindelse med Russells paradoks er lavet af det stof, romaner er lavet af – og dukker da også op i tegneserien Logicomix, som Palle Raabjerg har anbefalet mig. Mere om det en anden gang.

I går sad jeg til et seminar, hvor en PhD-studerende fremlagde resultaterne fra første år af sit forløb. Jeg nævnte i den forbindelse lineær logik og her til morgen bestemte jeg mig til at kigge i mit gamle eksemplar af Proofs and Types, som er det første sted (mig bekendt) hvor Jean-Yves Girard præsenterer lineær logik i bogform. Bogen, forfattet af Girard sammen med Yves Lafont og Paul Taylor er i øvrigt nu frit tilgængelig i PDF-format fra Paul Taylors webside.

Jeg faldt over dette citat fra første kapitel, hvor Girard (skrivestilen afslører ham!) er i det filosofiske hjørne og taler om Gottlob Frege:

So, one of the most fundamental distinctions in logic is that made by Frege: given a sentence A, there are two ways of seeing it:

  • as a sequence of instructions, which determine its sense, for example A \vee B means “A or B”, etc..
  • as the ideal result found by these operations: this is its denotation.
    “Denotation”, as opposed to “notation”, is what is denoted, and not what denotes. For example the denotation of a logical sentence is t (true) or f (false), and the denotation of A \vee B can be obtained from the denotations of A and B by means of the truth table for disjunction.

Frege kaldte det første for Sinn, det andet for Bedeutung og skrev en hel bog med denne titel, Über Sinn und Bedeutung. Hvorfor blev jeg fanget ind af dette sted i teksten? Vel netop fordi det er her, vi kan se en stor forhindring i undervisning i både matematik og datalogi: mange studerende taler konsekvent om Sinn, mens vi underviser i Bedeutung.

Enhver, der har undervist i automatteori, vil opleve at mange studerende opfatter determinisering af nondeterministiske endelige automater som først og fremmest fortællingen om en algoritme, man skal udføre, mens vi i undervisningen opfatter determinisering som en udvidelse af overføringsfunktionen \delta fra at være \delta : Q \times \Sigma \rightarrow Q til at være en funktion over mængder \delta : \mathcal{P}(Q) \times \Sigma \rightarrow Q. Tilsvarende kan man opleve mange studerende, der opfatter en matematisk funktion f ikke som en binær relation, men som en forskrift, der fortæller os hvordan vi, givet et argument x beregner f(x).

Også i programmering støder man på forskellen – imperative sprog som C og dets mange efterkommere (C++, C#, Java osv.) er Sinn-sprog, mens applikative sprog stræber efter at være Bedeutung-sprog (men trods alt skal implementeres på en maskine!). Mange studerende hævder at kunne forstå imperative sprog, men også at have gevaldige kvaler med de applikative.

Jeg grubler over, hvordan vi kan få de studerende til bedre at forstå, at der både er Sinn og Bedeutung, så vi ikke kun forstår hver vores halvdel af Den Lille Frække Frege.

Hvorfor skal man lære at programmere?

Engang for snart mange år siden havde Aalborg Universitet en basisuddannelse, hvor alting var fælles. De studerende var under et fælles optag, så man kom til at tilbringe de første to semestre sammen med studerende, der enten ville studere et helt andet fag eller var i tvivl. På dén konto fik jeg lavet projekter om henholdsvis bølgeenergi og vindmøller placeret på skibe. Jeg smuglede selv nogle formler ind, og fordi jeg var den eneste, der havde lyst til at programmere – i Pascal – fik jeg æren af dét, da vi skulle undersøge vores snedige fluiddynamiske model for vindmøller på skibe. Vi havde fælles kurser i mekanisk fysik, funktioner af flere variabler, differentialligninger/lineær algebra og programmering – i Pascal!

Efterhånden blev mange meget trætte af denne fælles indgang, og efterhånden var det kun kurserne, der var fælles. Reelt var der nu mange forskellige projektforløb. Da var det, at jeg 16 år efter at jeg selv gik der, fik æren af at undervise i programmering – i Pascal. Ud over at vi måtte slås med en allerede da forældet udgave af Borlands Turbo Pascal, som de studerende ikke selv kunne anskaffe sig og kun kørte under Windows NT, var det en blandet oplevelse; mange studerende våndede sig helt enormt over at skulle lære at programmere, og især hvis man fik kemi/bioteknologi-holdet, kunne det være en kamp op ad bakke. Igen og igen fik jeg spørgsmålet om hvorfor man dog skulle lære at programmere. Det var legitimationsproblemet, som man kender fra fagdidaktik (og især fra matematikkens didaktik, hvor det altid truer), der stak sit ækle hoved frem. Selv ikke et vue ud over de mange computere og tale om computeren som en programmerbar maskine hjalp. Hvorfor skal man dog lære noget så meningsløst?

Og hvad værre var: der var allerede dengang tre slags studerende:

  • dem, der allerede kunne programmere og programmerede godt; de var et bittelille mindretal, og der var
  • dem, der allerede troede, de kunne programmere og programmerede elendigt; dem var der en hel del af, og så var der
  • dem, der aldrig havde programmeret før, og de var flertallet.

Den første gruppe er aldrig kritisk, den sidste var der faktisk håb for, mens dem i midten…

Efter nogle år fik jeg omsider lov at lave kurset om, og jeg bestemte sammen med en kollega, at alle skulle lære – ML. Ikke OCaml, men gode gamle Standard ML. Tanken var dels at lave en stor `nulstilling’ ved at vælge et sprog, som ingen kendte, dels at undervise i et sprog, der havde en ordentlig matematisk teori i ryggen. Ikke, at vi skulle lære de studerende typet lambda-kalkyle, men at vi kunne give en systematisk forklaring af meningen med galskaben i stedet for at pege tilbage på alle hoc-beslutningerne bag Pascal.

Det fik jeg lov til i et år med blandede erfaringer – den første gruppe ovenfor blev udfordret, og den tredje gruppe var tilsyneladende nemmere at fange. Den midterste gruppe troede, de kunne fortsætte med at Basic-programmere, bare i SML nu. De fik et chok, når programmerne ingen ting lavede! På den måde skete der også omsider noget nyt for (nogle af) dem. Nogle blev bare forargede, andre blev nysgerrige. Og alle blev undervist i typer, typer, typer og polymorfi og mere polymorfi. De fleste studerende fandt ud af, at der er en voldsom forskel på tekststrengen "hest" og listen [ "hest" ]. Den første har typen string, den anden har typen string list. De fleste studerende fandt også ud af, at en funktion har en argumenttype og en resultattype.

Og stadig blev jeg spurgt af mange studerende, hvorfor man dog skulle lære at programmere.

Så besluttede nogen, at kurserne på basisuddannelsen også skulle være forskellige, og hermed døde det fælles programmeringskursus. På kemi/bioteknologi åndede de lettet op og begyndte at drømme henført om den dag, hvor den sidste computer ville blive smidt i havnen eller kun ville være i stand til at køre Microsoft Word.

I dag er det kun bestemte studieretninger, der har programmeringskurset, mens alle skal lære matematik (og det har jeg selvfølgelig ikke det fjerneste imod). Nu vil jeg tillade mig at stille det provokerende modspørgsmål: Hvorfor skal man ikke lære at programmere? Hvorfor skal man især ikke lære at programmere i et stærkt typet sprog?

Jeg kunne selvfølgelig i faglig stolthed godt hævde, at den erkendelse som Turing m.fl. gjorde af, at man kan konstruere en generelt programmerbar maskine er en af de helt store naturvidenskabelige erkendelser fra de seneste 100 år – men nogle ville så indvende, at det samme kan siges om opdagelsen af DNA-molekylets struktur, og det betyder vel ikke, at alle skal undervises i dét?

Jeg kunne også tale om glæden ved at kunne se matematiske objekter realiseret; det var sådan, jeg selv opdagede at programmering er interessant. Men der er også Maple og Matlab og Mathematica og selv om det selvfølgelig også indebærer en form for specialiseret programmering, er det heller ikke her, nogen bliver overbevist.

Der må være et bedre argument, og det tror jeg, der er. Nogle af de store problemer i matematikundervisningen kan føres tilbage til problemer, som man direkte må gøre noget ved, når man skal lære at programmere:

  • Mange studerende ikke kan kende forskel på elementet a og mængden \{ a \}. Matematik har sit eget typebegreb, men ingen taler om det. Professionelle matematikere og dataloger med matematisk baggrund ved at dette typebegreb findes, men der er ikke noget godt sprog at tale om denne fundamentale skelnen i.
  • Mange studerende har ikke noget klart begreb om hvad en funktion er, og at en funktion f : A \rightarrow B har definitionsmængde A og værdimængde B. Dette er typebegrebet igen – de kan godt hævde, at f(7) = 8, men at f(42) = sand. (Og nej, det er ikke fordi de har opdaget sumtyper.)
  • Mange studerende skriver matematiske udtryk, hvor der dukker ukendte størrelser op, og de opdager det aldrig selv.  Så spørger man dem, hvor z kommer fra, og de melder pas. I moderne programmeringssprog skal alle størrelser erklæres, før de kan bruges, og man får pænt at vide, hvis det ikke er blevet gjort.
  • Rigtig mange studerende kan ikke læse en definition, fordi de ikke kan skelne mellem hvordan en definition angiver betingelser som det definerede objekt skal overholde (det, man i datalogi kalder en specifikation), og hvordan objektet rent faktisk skal bringes til at eksistere (det, man i datalogi kalder en implementation).

Omvendt er der mange studerende, der gerne vil programmere, men ikke ved, at det, de programmerer, egentlig realiserer et (ofte meget lille og måske noget knudret) matematisk univers.

Så igen: hvorfor er det, man ikke skal lære at programmere, når vi ved, at det er vigtigt at lære matematik?

Indlysende/trivielt (?)


Timothy Gowers, der er matematiker i Cambridge, har en side med `matematiske diskussioner’, der er en liste med overvejelser om en lang række helt fundamentale (og ofteste elementære) spørgsmål. Et interessant spørgsmål på listen er det tilsyneladende banale: Hvorfor er multiplikation af naturlige tal egentlig en kommutativ operation? Mere præcist, hvorfor er formlen

\forall x \in {\mathbb{N}}.\forall y. \in {\mathbb{N}}. x \cdot y = y \cdot x

sand? Gowers har to bud:

  • Et bevis, der udnytter at mængden af felter i et m \times n-gitter har samme kardinalitet som et n \times m-gitter
  • Et bevis, der gør brug af `tælledefinitionen’, at m \cdot n = \underbrace{n + \ldots + n}_{m \mbox{ gange }} og foretager induktion i m

Men vil vi generalisere til de hele tal, dvs. bevise at

\forall x \in {\mathbb{Z}}.\forall y. \in {\mathbb{Z}}. x \cdot y = y \cdot x

er sand. Her bliver man i beviset nødt til først at vise det lille lemma, at ethvert negativt tal er på formen -n, hvor n \in \mathbb{N}, og så er vi tilbage ved overvejelser om konstruktionen af de ikke-positive tal som den mindste udvidelse af \mathbb{N}, der giver os en gruppe.

Nogle læsere synes formodentlig, at her er tale om trivialiteternes overdrev, og at der rettes et batteri af kanoner mod en stakkels gråspurv. (Det gælder ikke kun `lægfolk’, også de fleste ingeniører vil sikkert udstøde suk. I en ikke så fjern fortid husker jeg ingeniørstuderende, der våndede sig over `alle de mange beviser’ i min undervisning. Det var nu sjældent, fordi de syntes, de var trivielle.)

Men for mig illustrerer Gowers’ overvejelser dels den vigtige forskel mellem det indlysende og det trivielle. Det er nemlig indlysende, at multiplikation af hele tal er kommutativ, og også indlysende at ethvert negativt tal er på formen -n, men et trivielt faktum, det er det ikke. Hvis det var, ville der ikke være noget at lære for skolebørn, vel? (Der har været udfordringer netop her, kan jeg som fader godt røbe.)

Denne overskrift er selvrefererende

I går aftes snublede jeg over en samtale på Sverige 2 med den svenske kognitionsforsker Peter Gärdenfors, som er professor på universitetet i Lund. Det første, der faldt mig ind, var at jeg tilbage i 1995 mødte Gärdenfors til et symposium i Georgien om logik, sprog og beregning. Jeg havde en artikel med om det, der senere er blevet min yndlingskæphest, nemlig \pi-kalkylen. Det jeg kan huske, er at jeg sad ved siden af Gärdenfors i et gammelt folkevognsrugbrød under konferenceudflugten mellem Kaukasus’ bjerge. Vi snakkede om vejr og vind; vel egentlig en lidt dårlig brug af en sådan kapacitet. Der var ikke mange andre fra de nordiske lande, kun Morten Heine Sørensen fra Københavns Universitet, Peter Gärdenfors  og så undertegnede.

Efter at jeg havde genkaldt mig dagene i Georgien, gav jeg mig til at lytte ordentligt efter. TV-programmet var vel nærmest det, nogen har kaldt for filmet radio – skiftevis halvtotaler og nærbilleder af to mennesker, der sidder på hver sin side af et bord og taler sammen. Men alligevel fascinerende, for Gärdenfors er interessant at høre på.

Mange af spørgsmålene var variationer over temaet “Hvad ved mennesker om sig selv?”, og her slog det mig, at netop henvisningen til sig selv er et helt central element i de mange forskellige studier af den menneskelige tankes muligheder, en række discipliner, der mødes netop i den såkaldte kognitive videnskab. I matematik er det selvreferencen, der komplicerer f.eks. mængdelæren med Russells diagonalmængde \{ x \mid x \not \in x \} og dermed afføder typeteorien, og det er selvreferencen, der skaber grundlaget for Gödels berømte (og meget misforståede) resultat om grænserne for fuldstændig aksiomatisering af interessante fragmenter af matematik.

I datalogi dukker selvreferencen op som rekursion, og det er muligheden for selvreference, der er grundlaget for Turings første resultater om uafgørbarhed. I didaktikken er det refleksionen over egen læring – hvad ved jeg, at jeg ved? hvad ved jeg, at jeg har lært? osv. – der er central. Og i filosofi er mange paradokser intimt forbundet med selvreference. Paradokser kunne jeg skrive meget om; jeg har et bogmanuskript til en populær bog liggende. Mon ikke der kommer noget mere her på bloggen en gang ved lejlighed?

Men lad mig standse her, og nævne, at I kan se hele afsnittet af Vad är en människa, hvor Gärdenfors er i samtale med Frederik Lindström på Sveriges TVs websted. Hvis I ikke er gode til svensk, inden I sætter jer til at kigge med, er I det forhåbentlig bagefter!

Bevisets stilling

Jeg har siddet og rettet ca. 30 eksamenssæt fra kurset “Syntaks og semantik”, som jeg har holdt i dette forårssemester. Det er en blandet fornøjelse; mange har heldigvis svaret godt, men der er nogle misforståelser, der går igen og igen. Af og til spekulerer jeg på, om hvorfor det mon er tilfældet. Er der mon nogle fredagsbar-seancer, hvor man aftaler den slags? (“Er vi så enige om, at hvis vi får en opgave om det her, så skriver vi ikke det rigtige, men at…”)

Tankegangen bag matematiske beviser falder en del studerende meget svært, og meget af problemet kan føres tilbage til problemer med at forstå kvantorer fra førsteordenslogik og konnektiver fra udsagnslogik. Et sted, hvor man ser dette meget tydeligt, er i anvendelserne af de to Pumping Lemmaer fra formel sprogteori. Det er matematiske sætninger, der er på formen:

Hvis L er et regulært (eller kontekstfrit) sprog, så findes der en konstant p, så at der for enhver streng s \in L af længde mindst p findes en opsplitning som opfylder…

Disse sætninger har form af en implikation (hvis…så). Det eneste, man kan bruge disse sætninger til, er derfor at vise at et sprog ikke er regulært, hhvs. kontekstfrit – netop fordi der ikke er tale om en biimplikation. Bevisteknikken er kontraposition; vi viser, at konklusionen ikke kan være sand for L. Men dette har en del studerende problemer med; enten tror de, en implikation og en biimplikation er det samme eller også vender de implikationen forkert.

Et andet problem – og det er her, man skulle tro, misforståelserne var aftalt, for jeg har kunnet finde et stort mindretal blandt de 30, der går ind får det – er i beviset for at konklusionen er falsk for et givet L. Konklusionen har en eksistenskvantor (“der findes et p…”) yderst, og for at modbevise den, skal vi vælge en streng s \in L og vise, at intet valg af p giver en gyldig opsplitning af s, dvs. vi skal undersøge alle opsplitninger for et vilkårligt p. Men en udbredt fejl er nu denne:

Vi sætter p=2, vælger en streng af længde 2 og en opsplitning af denne. Men denne opsplitning er ugyldig, og beviset er nu færdigt.

Med andre ord er der mange, der tror på et aksiom på formen

(\exists p. \exists s. \neg P(p,s)) \Rightarrow (\forall p.\forall s \neg P(p,s))

Jeg har aldrig rigtig kunnet finde ud af, hvor dette udbredte fejl-ræsonnement kommer fra. Det kan næppe stamme fra dagligsproget; når jeg fortæller de studerende, at jeg ikke kan konkludere, at min kuglepen ikke er på universitetets område, bare fordi den ikke er på mit kontor, kan de sagtens se det fejlagtige i ræsonnementet.

Når det er så svært at lære studerende matematiske ræsonnementer, skyldes det formodentlig netop, at der for dem ikke fremstår nogen simpel forbindelse mellem dagligsprogets logik og tilsvarende ræsonnementsformer i matematik. Det er, som om matematikkens sprog og dagligsproget ofte kommer til at rejse i hver sin kupé. For nogle studerendes vedkommende er de ikke engang placeret i samme tog.

Det er ikke blevet lettere med årene, for indholdet af matematiske ræsonnementer i ungdomsuddannelsernes matematikundervisning er nedtonet en hel del efterhånden. (Og moderne datalogistuderende har ikke matematik som deres andet fag; næ, da far var dreng…) Men også da jeg gik i gymnasiet, var der en splittethed i undervisningen. Jeg kunne nemt anvende teknikkerne og f.eks. beregne bestemte integraler med brug af stamfunktion, og jeg vidste, at et integral er det tal, der skiller oversummer fra undersummer og jeg så også beviset for Fundamentalsætningen. Men hvor godt forstod jeg sammenhængen? Det var som om regneteknikker og ræsonnementer levede i hver deres verden.

Og når vi i dagligsproget rask væk benytter os af usunde slutningsregler, gør vi livet endnu vanskeligere for os selv. Dagligsprogets “argumentation” er fuld af fejlslutninger i logisk forstand; hvis nogen er i tvivl om dette, skal de bare se tv-avis!

De underlige talmennesker

Med meget ujævne mellemrum dukker der fiktion op, der handler om de matematiske fag. De eneste film, jeg kan komme i tanke om, er faktisk begge fra nyere tid, nemlig

  • Et smukt sind om John Nash, der fik Nobelprisen i økonomi for sit arbejde om spilteori og Nash-ligevægte, men også var paranoid-skizofren (hans psykiske sygdom er filmens fokus) og
  • Good Will Hunting om den fiktive Will Hunting fra M.I.T. Han er vist grafteoretiker, men er også (undskyld ordspillet) en irrationel rod, der græder ud ved Robin Williams’ skulder.

I begge disse dramaer er matematikeren et martret geni, der slås mod misforståelser og for at holde kærligheden til en kvinde i live. Heldigvis for det kvindelige publikum er hovedrolleindehaveren en mand, der ser godt ud (henholdsvis Russell Crowe og Matt Damon). Så er der også It’s My Turn helt tilbage fra 1980. Den har jeg så desværre ikke set, thi den er ikke nem at opdrive, men i den film er matematikeren en kvinde, Jill Clayburgh (der ser godt ud), og filmen er vist i den mere muntre ende. Det mest matematiske øjeblik i filmen – ja, måske i hele Hollywoods historie – optræder så vidt jeg ved i filmens start og kan ses herover.

Det drejer sig om slangelemmaet fra homologisk algebra (som mindst én af denne blogs læsere vil kunne forklare bedre, end jeg tør prøve), komplet med et bevis ved diagram chasing. Det er altid hyggeligt at starte en romantisk komedie med kommutative diagrammer og en lille snak om entydighed af morfier.

Jeg tror ikke, der har været nogen film om forskere fra datalogi – et om muligt endnu mere misforstået fag end matematik. Der er også kommutative diagrammer i teoretisk datalogi, men de vil næppe blive filmatiseret foreløbig. Til gengæld har der været masser af computere.

Faktisk er jeg ret overbevist om at man kunne lave en god film om Alan Turing. Der er i hvert fald tale om en historie med kostskoleliv, krig, matematik, maskiner og en martret mand, der slås med og for sin seksualitet og ender med at begå selvmord. Men måske har Hollywood lige så svært ved denne kombination af en decideret unhappy ending og en helt, der er bøsse, som briterne havde ved at anerkende Turings store indsats?

Uendelighedens navne

Jeg blev for nylig færdig med at læse Naming Infinity, en spændende bog af Loren Graham (amerikansk matematikhistoriker) og Jean-Michel Kantor (fransk matematiker). Naming Infinity fortæller historien om en uventet forbindelse mellem matematik og religiøs mysticisme. En russisk-ortodoks sekt af såkaldte “navnetilbedere”, der var aktiv i årene op til den russiske revolution og blev fordømt som kættere, talte også en matematik-uddannet munk ved navn Pavel Florensky (som man ser ovenfor; også efter revolutionen var “navnetilbederne” forfulgt, nu ikke af den ortodokse kirke, men af kommunisterne). Florensky var ven med Nikolai Luzin (kendt fra Luzins sætning i målteori) og havde igennem ham også påvirkning på “Moskvaskolen”, den meget aktive kreds af matematikere omkring Egorov. Og via Egorov var der forbindelse til den franske skole med Lebesgue, Baire og Borel.

Bogens tese er, at “navnetilbedernes” tro på at man ved at gentage en kort bøn med guds navn igen og igen kunne komme nærmere til sin gud afspejles i bl.a. mængdelærens behandling af transfinitte ordinaler. Ved at navngive et matematisk objekt via dets egenskaber gøres det virkeligt – en slags “omvendt nominalisme”.

Sjovt nok er mit eget forskningsområde inden for teoretisk datalogi nominelle proceskalkyler, notationer for parallelle beregninger. Robin Milner (der selv havde studeret matematik og filosofi – det var før datalogien fik et navn og dermed blev virkelig) var med til at skabe dette område via pi-kalkylen, og her er ideen om at kende en beregningsresurse ved at kende navnet på dens reference-kanal central.

Naming Infinity er hermed anbefalet, hvis man vil vide noget om en interessant periode i matematikkens historie og (endnu engang) få udfordret en forestilling om at den tilsyneladende mest rationelle aktivitet vi kender, kun har rationel oprindelse. Det er også interessant at læse om menneskene Lebesgue, Borel, Luzin og andre og derigennem få sat ansigt og livshistorie på navne, jeg ellers kun har kendt i forbindelse med sætninger i et kursus fra for længe siden.

Og hvor blev jeg så opmærksom på bogen? Såmænd via en anmeldelse af bogen i dagbladet Information af Annegrethe Rasmussen, der så vidt jeg ved aldrig har studeret matematik. Nu spekulerer jeg så på, hvad hun fik ud af bogen og hvorfor hun kunne lide den.

Hvad er matematik?

Engang var jeg en vred ung matematikstuderende; i dag er jeg en vranten midaldrende universitetslærer på Institut for datalogi. Sic transit gloria mundi. Dengang i 1983-84 stykker var jeg sammen med en række andre vrede unge matematikstuderende om at lave Mat 3-projekt under problemformuleringen Hvad er matematik?

Selvfølgelig fandt vi aldrig svaret; spørgsmålet var alt for bredt og naivt, og vi blev da også belønnet på passende vis med en for nogle af os uvant middelmådig karakter. I en del år brugte jeg mest “Hvad er matematik?” som en slags selvhånende kommentar i samtaler med gamle studiekammerater. Men efterhånden dukkede spørgsmålet op hos mig som et ærligt spørgsmål, efterhånden som jeg begyndte at interessere mig for matematisk logik i forbindelse med mit virke i teoretisk datalogi.

Sidste år fik jeg omsider læst Andrew Hodges’ monumentale biografi af Alan Turing, Alan Turing: The Enigma, og her kan man allerede i forordet læse om hvordan en af Turings studerende, Audrey Bates, blev inspireret til at programmere Manchester-maskinen til at finde normalformer i lambda-kalkyle.

Lambda-kalkylen skyldes Alonzo Church og er en lille notation for beregnbare funktioner, og notationen er forsynet med få og enkle reduktionsregler. Ovenfor kan man se beta-reduktionsreglen, som intuitivt set blot forklarer, at en funktion anvendes på en værdi ved at indsubstituere værdien på argumentets plads overalt i forskriften. Et lambda-udtryk er på normalform, hvis ingen reduktionsregel kan anvendes på det.

På Turings tid var Audrey Bates’ arbejde lidt underligt, syntes man – for var det overhovedet matematik? Alonzo Church’s arbejde om beregnbare funktioner havde ikke rigtig noget med tal at gøre, og matematik er da videnskaben om tal, ikke? Og computere kan kun bruges til store beregninger på tal, ikke?

Også i dag kan man møde denne holdning: at matematik først og fremmest er videnskaben om tal. Nogle matematikere synes, at matematisk analyse er “den rigtige matematik”, andre holder på algebraen som “den rigtige matematik” – og mange er enige om at f.eks. teoretisk datalogi i hvert fald ikke er rigtig matematik.

Jeg ved ikke, om jeg er matematiker i dag. Det vildeste resultat fra analyse, jeg har brugt i min forskning, er Banachs fikspunktssætning for kontraktioner, og det er meget tamt. Nogle matematikere har kaldt mig matematik som en form for erkendelse af et fællesskab, nogle dataloger har kaldt mig det i en slags forsøg på at definere mig som forskellig fra dem. Men hvis matematik ikke defineres ud fra et genstandsområde men snarere som en metode, der anvender præcist definerede begreber og opstiller sætninger, der skal bevises ved brug af alment gyldige, tilstræbt objektive inferenser, da er vel også jeg matematiker i 2011. Jeg har aldrig lavet forskning uden denne metode, og jeg kommer formodentlig aldrig til det.