← Nieuwste papers
💻 computer science

DSLean: A Framework for Type-Correct Interoperability Between Lean 4 and External DSLs

Dit artikel introduceert DSLean, een framework dat de bidirectionele vertaling tussen Lean 4 en externe domeinspecifieke talen vereenvoudigt door alleen een specificatie te vereisen, waardoor nieuwe automatiseringstactieken voor onder meer intervalrekening en differentiaalvergelijkingen mogelijk worden gemaakt.

Oorspronkelijke auteurs: Tate Rowney, Riyaz Ahuja, Jeremy Avigad, Sean Welleck

Gepubliceerd 2026-03-02
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Tate Rowney, Riyaz Ahuja, Jeremy Avigad, Sean Welleck

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 een talenmeester bent die twee heel verschillende werelden met elkaar moet laten praten.

Aan de ene kant heb je Lean, een superstreng, wiskundig taal die wordt gebruikt door computers om onfeilbare bewijzen te leveren. Lean is als een zeer strenge architect: als je ook maar één haakje verkeerd zet, zegt hij: "Nee, dit klopt niet, probeer het opnieuw." Alles moet perfect logisch en type-correct zijn.

Aan de andere kant heb je externe tools (zoals rekenmachines voor complexe formules of software voor natuurkunde). Deze tools spreken hun eigen "strakke" taal (DSL's), maar ze zijn vaak slordiger of gebruiken een heel andere grammatica dan Lean. Ze kunnen wel snel rekenen, maar ze begrijpen niet direct wat Lean bedoelt.

Het Probleem: De Vertaalbarrière

Vroeger was het werk om deze twee te laten praten een enorme klus. Je moest als ingenier handmatig bruggen bouwen. Je moest elke zin die de externe tool produceerde, letterlijk in stukjes hakken, de onderdelen sorteren, en ze dan weer in Lean's strenge vorm gieten. Dit was saai, foutgevoelig en vereiste dat je een expert was in Lean's geheime code. Het was alsof je elke brief die je van een vriend kreeg, handmatig in een ander alfabet moest herschrijven voordat je hem kon lezen.

De Oplossing: DSLean

De auteurs van dit paper hebben DSLean bedacht. Je kunt DSLean zien als een slimme, automatische tolk die de zware heffing op zich neemt.

In plaats van dat jij de vertaalspeling moet regelen, geef je DSLean alleen een woordenboek (een specificatie). Je zegt simpelweg:

  • "Als je in het externe systeem 'True' ziet, denk dan aan 'True' in Lean."
  • "Als je 'sin(x)' ziet, denk dan aan 'sin(x)' in Lean."
  • "En als je 'int(1)' ziet, denk dan aan het getal 1 in Lean."

DSLean doet de rest. Het kijkt naar de strenge regels van Lean en zorgt ervoor dat de vertaling altijd klopt. Het lost zelfs de lastige dingen op, zoals:

  • De volgorde van bewerkingen: "Moet ik eerst vermenigvuldigen of optellen?" (DSLean weet dit automatisch).
  • Verborgen variabelen: "Welk getal hoort bij welke letter?" (DSLean raadt dit slim af).

Hoe werkt het in de praktijk? (De Drie Voorbeelden)

De auteurs tonen aan hoe krachtig deze tolk is door drie nieuwe "hulpjes" (tactics) te bouwen:

  1. De Interval-Check (gappa):
    Stel je hebt een berekening met getallen die niet exact zijn (bijvoorbeeld: "tussen 0.3 en 0.4"). Een externe tool (Gappa) kan dit snel checken. DSLean vertaalt het antwoord van Gappa terug naar Lean, zodat Lean kan zeggen: "Ja, dit bewijs is geldig." Het is alsof je een snelle schatting van een vriend laat controleren door de strenge architect, zonder dat je zelf de cijfers hoeft over te schrijven.

  2. De Differentiaalvergelijkingen-Solver (desolve):
    Dit is een tool voor complexe bewegingen en veranderingen (zoals hoe snel een bal valt). De externe tool (SageMath) vindt de oplossing. DSLean pakt die oplossing, vertaalt hem naar Lean's taal, en zegt: "Kijk, dit is de oplossing." Omdat Lean niet alle wiskundige theorieën over deze bewegingen heeft, vertrouwt het hier op de "orakel"-kwaliteit van de externe tool, maar DSLean zorgt ervoor dat de vorm van het antwoord perfect past.

  3. De Ring-Check (lean_m2):
    Dit gaat over het controleren of bepaalde getallen of formules in een specifieke "verzameling" (een ideaal) passen. De externe tool (Macaulay2) is hier heel goed in. Vroeger kostte het schrijven van de code om dit te koppelen aan Lean enorm veel tijd. Met DSLean is de code 5 keer korter geworden. Het is alsof je een ingewikkeld raadsel oplost met een hulpmiddel dat de moeilijke vertaalslag voor je doet.

Waarom is dit geweldig?

Het belangrijkste is dat DSLean de complexiteit verbergt.

  • Voor de gebruiker: Je hoeft geen expert te zijn in de diepe, technische details van hoe Lean werkt. Je geeft alleen de regels, en de tolk doet het zware werk.
  • Voor de code: De code die nodig is om deze verbindingen te maken, is kort, leesbaar en makkelijk te onderhouden.
  • Veiligheid: Omdat DSLean Lean's eigen regels gebruikt, is de kans op fouten in de vertaling minimaal. Het zorgt ervoor dat wat er uit de externe tool komt, altijd "type-correct" is voor Lean.

Kortom: DSLean is de universele adapter die het mogelijk maakt dat Lean 4 samenwerkt met de krachtigste rekenmachines en wiskundige tools van de wereld, zonder dat je als gebruiker de ingewikkelde stekkers en kabels zelf hoeft te solderen. Het maakt geavanceerde wiskunde toegankelijker en sneller.

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.

Probeer Digest →