Dit is geen platte handleiding maar documentatie in vier lagen, voor vier lezers: wie het gebruikt, wie het idee wil begrijpen, wie het bouwt, en wie verder wil. Elke laag draagt een label dat zegt hoe lang hij houdbaar is.
Laag 1 — voor de gebruiker1Wat je ermee doet beweegt met de code
/aiDe vraagpaneel vraag
- Typ een vraag en druk op "vraag". De lus berekent het adres van je vraag (dezelfde poort als al het materiaal), kijkt eerst in het grootboek en dan in de store, en geeft precies één getypte uitvoer terug.
/aiDe uitvoerpaneel uitvoer
- Is je vraag precies de naam van een bewoner (de naam-brug), dan is dat het adres: afgeleid via "exacte naam". Lijkt de bovenste bewoner van het beeld weinig op de vraag (cosinus onder 0,32), dan staat er zwak bij: wél in de store, geen antwoord.
- Afgeleid (groen): een bewoner van de store op het berekende adres of op een beeld ervan (een truncatie), met de afleiding: het adres, het beeld, de diepte, hoeveel bewoners het beeld telt, en de cosinus waarmee deze bovenaan kwam. Met kwitantie (bron) en het adres in het net. De claim staat eronder: dit staat in de store — niets meer.
- Geattesteerd (goud): iemand heeft eerder voor deze canon-vraag een adres beslecht; je ziet wie, wanneer en de ketenhash. De machine bewijst dat die gebeurtenis in het grootboek staat en dat de inhoud in de store staat; of de beslechting juist was, is van de mens die tekende.
- Vacature (roest): op het berekende adres en zijn beelden tot diepte 6 staat niets. Leeg is leeg; er wordt niets verzonnen.
- Voorstel (blauw, gedempt): wat het taalmodel over de gevonden bronnen zegt, met de adressen die het citeert. Het beweert niets en is nooit het antwoord.
- Onder een afgeleide uitvoer staat beslecht: vul je naam in (en de beheersleutel, of gebruik straks je SWARP-inschrijving) en de vraag krijgt vanaf dan dit adres als geattesteerd antwoord — een regel in het grootboek.
/aiStand van zakenpaneel stand
- Bovenaan de MAZE.AI-pagina, uitklapbaar: wat het systeem wel en niet kan op de datum van de laatste boeking — zodat "klaar" nooit meer verkeerd gelezen wordt. Wel: het net, de lus die nooit verzint (bewezen), het grootboek, het kantoor, het veld als meter, de calibratiereeks. Niet: zelf denken (het voorstel komt van een extern taalmodel), plaatsing 71–78%, leeg grootboek, externe inbedding, één resonantiemaat die alleen als scheidsrechter telt.
/ai/kantoorHet kantoorregisterpanelen kantoor-vraag, kantoor-vacatures, kantoor-kast, kantoor-register, kantoor-sleutel
- Een register, geen chatbot (ontwerp J. Konstapel 20-9). Vraag: één vraagveld met rechtsgebied; daaronder antwoordkaarten met vaste anatomie — statusbalk in vaste kleur en bewoording (GEATTESTEERD "Vastgesteld antwoord" + wie, datum; AFGELEID "Uit de kantoorkast"; VACATURE "Hierover is niets vastgesteld in de kast."; VOORSTEL grijs, altijd onderaan: "Voorstel van het taalmodel — geen antwoord."), de inhoud, de herkomstregel (adres, bron, kwitantie, afleiding, cos), bij zwakke plaatsing een amberen band, de Keten-knop (canonieke vraag, canon-versie, hash, grootboekregel, vorige hash), buurvakken, en Kaart als PDF (de afdruk van de geverifieerde kaart met keten — geen tweede pad).
- Vaststellen als handeling: alleen de rol notaris/kandidaat-notaris ziet de knop; een aparte bevestigstap toont letterlijk wat wordt vastgelegd (canonieke vraag, adres, stuk, naam, datum, sleutelvingerafdruk) en pas de knop Vaststellen schrijft de grootboekregel — getekend met de eigen kantoorsleutel. Twee vaststellingen van dezelfde vraag blijven beide zichtbaar; de recentste is operatief.
- Vacatures = de werkvoorraad: per rechtsgebied welke vragen zonder kastinhoud bleven, hoe vaak, door wie het laatst; "Stuk toevoegen" opent de opname. Kast: opname alleen met receipt (bronbestand, versie, wie uit de sleutel, datum); na opname het berekende adres en de buurvakken; een bewoond adres meldt "dit adres is bewoond; een nieuwe versie is een nieuw stuk". Register: het grootboek doorzoekbaar op vraag, persoon, datum; "Keten controleren" en "Mijn handtekeningen controleren" (alleen de houder van een sleutel kan zijn eigen handtekeningen nalopen). Sleutel: aanmelden met de kantoorsleutel (blijft in de browser-sessie; de server bewaart alleen een vingerafdruk); beheer kent rollen toe met de beheersleutel.
- Eigen kast eerst (21-9, uit de kantoortoets `kantoor-toets.md`): met een kantoorsleutel wordt elke vraag eerst tegen alle stukken van de eigen kast gelegd op gelijkenis (embedding van naam + tekst); een treffer vanaf cos 0,45 gaat vóór alles uit het gedeelde net (`afleiding.via = "kast"`), onder 0,60 met de zwak-band. Zonder sleutel bestaat deze stap niet.
- Kantoorkast (21-9, open sinds 27-10): stukken met bron
kantoor:…zijn gewone bewoners, voor iedereen vindbaar (Hans: geheimhouding belemmert de uitwisseling). Met een kantoorsleutel wordt de eigen kast eerst doorzocht (`lus(vraag, { kantoor })`). De tekst gaat voor het inbedden naar OpenAI. - Begrenzing, op elke pagina: dit is geen authentieke akte en vervangt geen wettelijke vorm. Uitleg voor de notaris (waarom, wat, hoe; proefversie): /ai/kantoor/uitleg (PDF).
/ai/veldHet veld (RAI)panelen veld-stand, veld-regio, veld-koppeling, veld-dagen
- RAI als gesimuleerd veld naast de lus (definities Hans 21-9, `maze/rai/veld.mjs`, plan `maze/rai/plan-veld.md`): één oscillator per bewoonde regio (adresvoorvoegsel diepte 6) met een regioframe (centrum, hoofdrichting, teken uit het vroegste stuk); de fase van elk stuk — ook een vers voorstel — is φ = atan2(x·e₂, x·e₁); vragen, opnames en vaststellingen trekken de regio-fase; koppelingen tussen regio's leren bij elke vaststelling op resonantie r·cos(θ_a − θ_q) en vervallen dagelijks naar de basis. De pagina toont de stand (regio's, r, koppelingen, dagstanden). Bij elke uitvoer van
/api/ai/vraagkomtveldmee als advies — het veld adviseert, de poort beslist, niets in de lus verandert erdoor. Twee toetsen staan vooraf vast (schud-toets na 14 dagstanden; leerregel na 30 vaststellingen).
/aiHet grootboekpaneel grootboek
- Alle beslechtingen: canon-vraag, bewoner, wie, wanneer, hash. Append-only en hash-geketend; onderaan de ketentoets (aantal regels, intact of niet, eindhash).
Laag 2 — voor de denker2Het idee & de regels blijvend
Een bewijsbare AI is niet een AI waarvan elk gedrag bewezen is — dat blokkeert Tarski: er is geen totale, gecertificeerde betekenisrelatie voor open taal. Het is een AI waarvan elke claim bewezen is (paper Provable AI, Konstapel 2026, criterium P). Daarom beweert de lus maar één ding: dit is de inhoud van de gecertificeerde store op het berekende adres, bereikt langs de opgeschreven afleiding. Nooit "dit is waar van de wereld". Natuurlijke taal levert voorstellen; een leeg adres levert een vacature; de betekenis wordt beslecht door een mens, en die beslechting is een gebeurtenis in een geketend grootboek — controleerbaar als feit, nooit als waarheid.
Drie invarianten dragen het, en ze zijn in Lean 4 bewezen tegen draaiende definities (maze/lean/MazeAI/Lus.lean): afgeleid ⇒ het paar staat in de store; vacature ⇒ het adres is leeg; geattesteerd ⇒ een grootboekregel beslechtte dit adres voor deze canon-vraag door een genoemde mens op een datum, én de inhoud staat in de store. Daaronder ligt de kern van het adres zelf: bijectie, bereik, uniciteit, truncatie idempotent en prefix-stabiel — ook bewezen, en differentieel getoetst tegen de draaiende JavaScript-kernel (30.572 adressen, 0 verschillen).
De MAZE-invarianten keren hier terug als typen: het adres komt uit de inhoud (dezelfde poort voor vraag en materiaal), leeg is leeg, tellers raken geen adres, en niets bereikt de gebruiker buiten de lus om.
Laag 3 — voor de bouwer3Hoe het werkt — lus, grootboek & API beweegt met de code
Context ónder the-maze: maze/ai/lus.mjs (de lus, beslechten, ketentoets), canon.mjs, verifier.mjs, route.mjs, pagina.html; tabel ai_attest (canon_versie, canon_q, vraag, materiaal_id, pad, who, via, date, prev_hash, hash). canon-1: NFKC, kleine letters, alleen letters/cijfers/spaties, één spatie, getrimd, max 400 tekens — deterministisch, geen semantiek; elke regel draagt de canon-versie. De lus: grootboek op (canon-versie, canon_q) → laatste regel → bewoner uit de store (anders valt de regel weg en gaat de lus door); anders adresVoorTekst (generatie 2) → thuiskomst met minDiepte 6 → bovenste bewoner op cosinus = afgeleid (het beeld = het diepste bewoonde prefix), geen bewoners = vacature. Beslechten: hash = sha256(prev ⧺ canon-versie ⧺ canon_q ⧺ materiaal_id ⧺ pad ⧺ who ⧺ date); prev = laatste hash of 64 nullen; verifieerKeten loopt de hele lijst na (de chain_snoc-vorm uit Lean). Het voorstel komt uit de bestaande vraagkant (gesprek.mjs, gpt-4o) en wordt getypt bijgevoegd; wisselbaar model (DeepSeek, BitNet) zonder dat de lus verandert.
Whitepaper (EN): /ai/whitepaper, PDF. De spec maze.ai/1 (19-9), wat staat. Canon als eigen module maze/ai/canon.mjs (canon-1, bevroren voorbeelden) met determinisme-toets canon-toets.mjs (idempotentie, herhaling, vorm, 5.000 willekeurige invoeren). Verifier C4 maze/ai/verifier.mjs: een kleine aparte module waar élke uitvoer langs moet vóór ze naar buiten gaat — hij leest store en grootboek opnieuw en toetst de drie invarianten; weigert hij, dan gaat er niets naar buiten (500 met reden), nooit een stille herschrijving. Eén uitvoerpad (§9): ook de hoofdpagina (POST /api/gesprek) gaat door de lus — het gesprek is het voorstel, de lus-uitvoer staat erboven, beide langs de verifier. Het ene controlecommando (§8d) node maze/ai/controle.mjs: Lean-herbouw + axioma-rapport, differentiële kerneltoets (30.572 adressen), canon-toets en — met DATABASE_URL — de productiepad-toets lus-toets.mjs (de echte lus op de echte store, elke uitvoer langs de verifier, ketentoets). Een lege vraag is een vacature met reden. Vraagkant na de calibratie (20-9, plan 5–11, `uitkomst-honderd*.md`): woordreeksen van 2–6 woorden uit de vraag exact tegen de namen (plus haakjes-varianten en losse hoofdletterwoorden), gekozen op cosinus tot de vraag; het taalmodel als titel-voorsteller (het noemt een Wikipedia-titel, het net beslist op lidmaatschap en cosinus — via: "voorstel-titel"); en de omgekeerde richting maze_noemt (wie noemt wie, uit de DBpedia-beschrijvingen): bij een omschrijvende vraag zoekt de lus onder wie het anker noemt (via: "genoemd-door"). Gemeten op honderd blinde vragen: 18 → 71–73, verse set 76–78; de naam-brug zoekt sinds plan 18 in álle bronnen (ook de eigen essays van Konstapel, `konstapel:essay`, 99 stukken met receipt) en kent afkortingen (plan 19). Sinds plan 17 beslist de ringmaat R_Q (Maxwell-essay 4e ed. §15, regioframes van het veld, Markley-middeling; plan 16d AUC 0,70) bij een gelijkstand < 0,05 in cosinus tussen de twee hoogste kandidaten — geboekt in afleiding.ringmaat. Buurvakken (§8i): de lus geeft bij een afgeleide uitvoer de buren op het beeld mee, elk met eigen adres; de hoofdpagina toont ze als vakken naast de bewoner.
Bekende grenzen. "Afgeleid" gebruikt het diepste bewoonde prefix als beeld en rangschikt met de cosinus; de Lean-lus modelleert exacte lookup — de verifier toetst daarom store-lidmaatschap en adres-herkomst (adres van de bewoner, of beeld als prefix), niet de betekenis; de zwak-vlag (cos < 0,32) zegt wanneer de bovenste bewoner weinig op de vraag lijkt. Elke regel draagt nu een handtekening (HMAC-sha256 over de regelhash met de sleutel die het beslechten toeliet, plus de vingerafdruk van die sleutel — handtekening, sleutel_vinger); de ketentoets controleert haar en telt ondertekend. Openbaar te controleren (27-10): sinds 27-10 tekent de server elke nieuwe regel óók met Ed25519 (ed_handtekening, ed_vinger), waarvan de publieke helft op /api/ai/sleutel staat. De HMAC-handtekening kan alleen de sleutelhouder nagaan; de Ed25519-handtekening iedereen. Oudere regels zijn niet herschreven: de getekende kop (aantal regels + eindhash) dekt ze via de keten. Controleren zonder sleutel of database: node maze/ai/verifieer-extern.mjs. Grens: de handtekening bewijst dat de server de regel zo vastlegde, niet wie er achter het toetsenbord zat; wie zekerheid tegen de server zelf wil, bewaart af en toe een kop — een latere export moet die kop als beginstuk bevatten. Toets ed-toets.mjs (tien geplante fouten, alle rood). Persoonlijke sleutels per mens zijn er nog niet (who blijft een naam naast de sleutel-vingerafdruk); de keten bewijst volgorde en onveranderlijkheid onder de hypothese dat sha256 botsingsvrij is. De store is in Lean ook als eindige afbeelding bewezen (MazeAI/Winkel.lean: afgeleid ⇔ in de store, write-once als stelling). De plaatsingskwaliteit van open vragen is ongemeten (de twintig-vragen-toets is voorgeschreven).
Laag 4 — voor de verbinder4Links, bronnen & verder beweegt met de code
- MAZE.AImaze.swarp.nl/ai · API · de bewijzen:
maze/lean/(Trit, Kern1, Brug, Keten, Lus) - theorieJ. Konstapel, Provable AI — A Claim-Bounded Criterion, a Semantic Boundary, and a Machine-Checked Construction (2026); Where Computation Comes From (2026); Tarski 1936; Necula, Proof-Carrying Code (1997); Klein e.a., seL4 (2009)
- familiethe MAZE (de store, de poort) · de Bank en de Doorgang (dezelfde hash-ketens) · de Patentgenerator
- eerlijkheidbewezen wat bewezen kan (herkomst), gemeten wat gemeten moet (plaatsing), beslecht wat niemand bewijzen kan (betekenis) — en elk van de drie zo genoemd