Formalizing the Real Numbers in Homotopy Type Theory with Cubical Agda
Dit artikel presenteert een formalisering van de constructie van Cauchy-reële getallen in Homotopietypetheorie binnen Cubical Agda, en toont aan dat deze aanpak de problemen met aftelbare keuze, setoid-overhead en universe-niveau-tracking die inherent zijn aan andere constructieve definities vermijdt, terwijl het typecontroleert zonder postulaat.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Stel je voor dat je probeert een perfecte, oneindige liniaal te bouwen om alles in het universum te meten. In de wereld van de klassieke wiskunde is deze liniaal eenvoudig te beschrijven: je neemt gewoon alle mogelijke "benaderende" metingen (zoals 3,1; 3,14; 3,141; enzovoort) en zegt: "Als twee reeksen metingen steeds dichter bij elkaar komen, vertegenwoordigen ze hetzelfde punt op de liniaal."
Echter, in Constructieve Wiskunde – een stijl van wiskunde die erop staat dat je het waarover je spreekt daadwerkelijk moet kunnen bouwen of berekenen – stuit deze eenvoudige aanpak op een muur. Om te bewijzen dat je liniaal compleet is, moet je een magische keuze maken: je moet één specifieke meting kiezen uit een oneindige lijst van opties om het uiteindelijke punt te vertegenwoordigen. Constructieve wiskunde zegt: "Geen magie toegestaan. Als je me niet kunt laten zien hoe je het hebt gekozen, heb je de liniaal nog niet gebouwd."
Decennialang moesten wiskundigen compromissen sluiten. Ze gebruikten ofwel "administratieve" trucs die elke berekening rommelig maakten, of ze bouwden de liniaal op een manier die het bijhouden van complexe "universum-niveaus" vereiste (zoals het bijhouden van de score van hoe groot je dozen zijn).
Het Nieuwe Ontwerp (HoTT-boek Reële Getallen)
Dit proefschrift presenteert een nieuw ontwerp voor het bouwen van de liniaal, overgenomen uit het beroemde Homotopy Type Theory (HoTT)-boek. In plaats van de liniaal te bouwen door stukken aan elkaar te lijmen en ze vervolgens glad te strijken, bouwt deze methode de liniaal en de "gladheids"-regels gelijktijdig.
Stel je voor dat je een huis bouwt waarbij de muren en het bouwplan op exact hetzelfde moment worden getekend.
- De Bakstenen: Je begint met eenvoudige, bekende getallen (zoals breuken).
- De Lijm: Je voegt een speciale regel toe die zegt: "Als twee punten dicht genoeg bij elkaar liggen, zijn ze eigenlijk hetzelfde punt."
- De Magie: Omdat de regel voor "dichtbij" in de definitie van het huis zelf is ingebouwd, hoef je later geen van die magische keuzes meer te maken. Het huis is compleet op het moment dat je de laatste baksteen legt.
De Uitdaging: De Computervertaler
De auteur, Jackson Brough, nam dit theoretische ontwerp en probeerde het te vertalen naar een taal die een computer kan begrijpen en verifiëren: Cubical Agda.
Stel je voor dat je probeert een complexe dansroutine uit te leggen aan een robot die alleen strikte, letterlijke instructies begrijpt.
- Het Probleem: Eerdere pogingen om dit ontwerp te vertalen mislukten omdat de computertaal niet de juiste "bewegingen" had (specifiek kon het niet omgaan met de gelijktijdige definitie van de liniaal en de regels voor dichtbij). De vertalers moesten zeggen: "Neem aan dat deze beweging bestaat", wat in de wiskunde bedriegen is.
- De Oplossing: Cubical Agda is een nieuwere, slimmere robot die deze complexe bewegingen natief begrijpt. Het stelt de auteur in staat het ontwerp exact te schrijven zoals het was ontworpen, zonder te bedriegen.
Wat Er Gebeurde Tijdens de Vertaling?
Het proefschrift gaat niet alleen over het typen van code; het gaat over wat er gebeurde toen de auteur probeerde de computer de wiskunde te laten begrijpen. De strenge aard van de computer dwong de auteur om verborgen gaten in de oorspronkelijke uitleg te vinden:
- De "Alternatieve" Kaart: Het oorspronkelijke boek beschreef hoe je kunt controleren of twee punten dicht bij elkaar liggen. Maar toen de auteur probeerde de code te schrijven, realiseerde hij zich dat de methode in het boek als een "eenrichtingsstraat" werkte. Je kon bewijzen dat punten dicht bij elkaar lagen, maar je kon niet eenvoudig terugwerken om te zien waarom. De auteur moest een tweede, "berekenende" kaart bouwen (een alternatieve relatie genoemd) die fungeert als een achteruitversnelling, waardoor de computer het antwoord daadwerkelijk kan berekenen.
- Het Ontbrekende Ingrediënt: Het boek beschreef een regel voor het bouwen van functies (zoals vermenigvuldiging) alsof de computer het oorspronkelijke lijstje met benaderingen kon "onthouden". De eerste codeversie van de auteur vergat dit geheugen. De computer verwierp het. De auteur moest de regel herschrijven om het geheugen expliciet mee te nemen, en besefte dat de oorspronkelijke tekst te vaag was voor een machine.
- De Meervariabele Puzzel: Het boek suggereerde dat regels voor enkele getallen eenvoudig kunnen worden toegepast op paren of drietallen getallen. De computer was niet overtuigd. De auteur moest een nieuw, specifiek lemma bewijzen dat laat zien dat als een regel werkt voor één variabele, het ook werkt voor twee, mits je ze één voor één controleert.
Het Resultaat
Het eindproduct is een enorme, open-source bibliotheek met code (meer dan 13.000 regels) die bewijst dat de HoTT-boek reële getallen perfect werken.
- Het bewijst dat deze getallen een compleet, geordend lichaam vormen (je kunt ze optellen, aftrekken, vermenigvuldigen, delen en vergelijken).
- Het bewijst dat de liniaal "Archimedisch" is (wat betekent dat ongeacht hoe klein een gat je hebt, je altijd een breuk kunt vinden die erin past).
- Het allerbelangrijkste: het doet dit alles zonder te bedriegen. De computer controleerde elke enkele stap, en de code draait zonder "magische aannames".
Samenvattend
Dit proefschrift is het verhaal van het nemen van een mooi, hoog-niveau wiskundig idee en het dwingen om te overleven in de strenge, letterlijke wereld van computerverificatie. Door dit te doen, bouwde de auteur niet alleen een digitale liniaal; hij polijste het ontwerp zelf, onthulde verbonden details en maakte de theorie sterker en nauwkeuriger dan voorheen. De code is nu beschikbaar voor iedereen om te gebruiken als een solide fundament voor toekomstige wiskundige ontdekkingen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.