Deterministic Fixed Point Arithmetic | Dweve Numerus
Numerus: deterministic fixed-point, decimal and integer arithmetic in Rust; same bits under a declared execution contract. Publishing in round two.
Die Aufzeichnung des Geschehenen, aufbewahrt, damit sie zurückgelesen werden kann.
Ein SMT-Löser, mit einem Zertifikat an der Antwort.
Regeln als benannte Artefakte, mit dem Grund, warum eine Prüfung fehlschlug.
Wählen Sie den numerischen Vertrag vor der ersten Berechnung, bewahren Sie die dazugehörige Begründung auf und geben Sie jedem, der fragt, eine Aufzeichnung, die er auf seiner eigenen Maschine erneut ausführen kann.
Was Sie erhalten, ist die Summe exakt berechnet, dieselbe Zahl überall und eine Aufzeichnung, wie sie erreicht wurde.
Es ist in Europa unter europäischen Regeln gebaut, und sein Quellcode erscheint unter Apache-2.0-Bedingungen in der zweiten Runde von Dweves Grundlagenveröffentlichungsprogramm. Regulierungsbehörden und Verbraucherorganisationen können die Arithmetik direkt am Tag der Einführung prüfen.
Ob eine Regel richtig ist, bleibt eine Frage für Menschen, und Sie haben das Recht, sie aufzuwerfen. Was Sie hier erhalten, ist etwas Solides, womit Sie sie aufwerfen können: eine Zahl, die bei jeder Prüfung gleich herauskommt, eine schriftliche Aufzeichnung, wie sie erreicht wurde, die nicht auf dem Gedächtnis von jemandem beruht, und eine Prüfung, die sagt, ob diese Aufzeichnung danach verändert wurde.
Wenn die Regel, die auf Sie angewendet wird, unfair ist, wird diese sie exakt anwenden, auf den Cent genau, für alle, jedes Mal. Sie macht die Regel nicht fair, und sie kann nicht erkennen, dass die Regel unfair ist. Alles, was sie tut, ist sicherzustellen, dass die Zahl nicht auch falsch ist, was ein kleineres Versprechen ist, als Sie gehofft haben, und eines, das tatsächlich gehalten wird.
Nichts davon ändert das eine, das Sie direkt hören sollten.
Was Sie also erreicht, ist eine Zahl mit ihrer eigenen Marge, oder eine Leerstelle, wo eine erfundene Zahl gestanden hätte. Wo die Maschine sitzt, spielt auch eine Rolle, und mehr als die Leute erwarten. Dieselbe Arbeit in Frankreich und in Deutschland ergibt sehr unterschiedliche Kohlenstoffzahlen, weil der Strom unterschiedlich erzeugt wird.
Die Zählung ist nicht perfekt, und die Software sagt das unaufgefordert. Zu kleine Aufträge, um registriert zu werden, hinterlassen keine Spur. Derselbe Auftrag zweimal ausgeführt kommt ein wenig anders zurück, je nachdem, wie warm die Maschine war. Auf einigen gemieteten Computern kann sie nichts sehen, und sie sagt es, statt zu raten.
Computer nutzen Strom zum Denken. Jeder weiß das, und niemand konnte je sagen, wie viel davon auf einen einzelnen Auftrag entfiel. Prozessoren führen eine eigene laufende Zählung der verbrauchten Energie, und diese Zählung kann gelesen werden. So kann eine Arbeit mit dem Strom, den sie benötigte, daneben geschrieben zurückkommen, und wo die Maschine es nicht sagen kann, mit nichts statt einer Schätzung.
Sie kann auch etwas beantworten, das vor ein paar Jahren niemand fragen konnte: was die Summe an Strom kostete.
Und nichts davon muss irgendwohin telefonieren. Der Messwert, die Dosis, der Bremsweg: Die Zahl wird dort berechnet, wo sie gemessen wird, also gibt es keine Kopie davon auf dem Computer eines anderen, und nichts wartet auf eine Verbindung. Das ist wichtiger, wenn die Zahl über Ihren Körper geht, als wenn es um Ihr Wasser geht.
Ein Zähler ist billig, teilweise weil er keine Brüche verarbeiten kann, also zählt er in ganzen Zahlen. Das ist zufällig dieselbe Zählweise, die auf jeder Maschine eine identische Antwort ergibt. Die Summe in Ihrem Schrank ist also keine gröbere Version der Banksumme, weil die Box klein war. Es ist dieselbe Summe.
Der Zähler in Ihrem Schrank entscheidet, was Sie für Wasser schulden. Eine Pumpe auf einer Krankenstation entscheidet, wie viel von einem Medikament hineingeht. Eine Box hinter dem Rad eines Autos entscheidet, wie stark gebremst wird. Niemand beobachtet sie, und jede macht dieselbe Art von Arithmetik wie eine Bank mit Ihrem Geld. Es kann auf demselben Standard gemacht werden, und die Antwort muss den Raum, in dem sie berechnet wurde, nie verlassen.
eine Organisation, die die Arbeitsweise aufbewahrte, könnte sie am selben Nachmittag übergeben
Sie fragen nach der Rechnung, und das ist eine normale Bitte.
und in jedem Fall die Rechnung, nicht eine Zusammenfassung davon
eine öffentliche Stelle, für eine Entscheidung über Ihr Geld
ein Krankenhaus, für eine Dosis, die berechnet wurde
Ihr Energieversorger, für eine Rechnung, die Sie anfechten
Ihre Bank, für eine Zahl auf Ihrem Kontoauszug
So durchgeführt ist die Antwort nicht die beste Erinnerung von jemandem. Die Zahlen, mit denen begonnen wurde, wurden aufbewahrt, und ebenso, was mit ihnen gemacht wurde und in welcher Reihenfolge. Führen Sie es erneut aus, und es kommt identisch heraus statt annähernd. Wenn der Datensatz zwischendurch verändert wurde, zeigt sich das zuerst, bevor jemand etwas erneut ausführt.
Sie haben es wahrscheinlich gefragt und eine schlechte Antwort erhalten. Jemand schaut sich die aktuelle Version der Berechnung an, führt sie mit den heutigen Zahlen aus und sagt Ihnen, dass sie ungefähr stimmt. Niemand weicht aus. Das, was Ihre Zahl im letzten Frühjahr erzeugt hat, existiert nicht mehr, also gibt es nichts mehr, worauf man zeigen könnte.
Nichts davon beantwortet die Frage, die jeder als Nächstes stellen würde.
Der letzte März kommt aus dem neuen System exakt so heraus wie aus dem alten, also bleibt Ihre eingereichte Erklärung gültig und es gibt keinen Nachmittag zu verlieren. Fragen Sie, wie eine Zahl erreicht wurde, und Sie erhalten die Rechnung statt eines Achselzuckens. Sie müssen auch nicht darauf vertrauen, dass die Rechnung unangetastet blieb, denn alles, was danach verändert wurde, zeigt sich.
Kein Teil der Antwort stammt von der Maschine. Es gibt keine Rundung, die auf einem Chip so und auf dem nächsten anders funktioniert, und keine Abkürzung, die ein schnellerer Computer nimmt, die ein langsamerer nicht nimmt. Ändern Sie die Maschine, und die Zahl bewegt sich nicht, und auch nicht das Formular, das Sie damit eingereicht haben, oder der Brief, der sie zitierte.
Irgendwo hinter Ihrer Bank, Ihrem Energieversorger oder dem Finanzamt wird die Software ersetzt. Niemand sagt es Ihnen, und normalerweise wäre es Ihnen egal. Es ist Ihnen an dem Tag wichtig, an dem das neue System das letzte Jahr zusammenzählt und ein anderes Ergebnis erhält, denn das Formular, das Sie bereits eingereicht haben, stimmt nicht mehr mit dem System überein, das es erzeugt hat, und die Person, die das erklären muss, sind Sie.
Eine Rechnung wird in einer Woche beglichen. Die Unterlagen werden ein Jahr später erneut gelesen.
Hier wird der Rundungspunkt einmal niedergeschrieben, bevor etwas addiert wird, und jede Kopie Ihrer Rechnung folgt ihm. Also gibt es keinen Anruf, keine Kontosperre und keine drei Wochen. Die Kopien stimmen überein, weil sie auf dieselbe Weise berechnet wurden, nicht weil jemand sich danach hingesetzt und sie angeglichen hat.
Der Grund ist kleiner, als es klingt. Steuern fallen in Bruchteilen eines Cents an, und jemand muss entscheiden, wo diese Bruchteile gerundet werden. Ein System rundet in jeder Zeile. Das andere rundet einmal, auf der Summe. Beides ist vernünftig, und sie können einen Cent auseinanderliegen, ohne dass eines falsch ist.
Eine Rechnung, drei Kopien: die Quittung in Ihrer Hand, die Kasse des Geschäfts und die Ihrer Bank. Hin und wieder enden zwei von ihnen mit einem anderen Cent. Nichts wurde gestohlen und niemand war nachlässig, und trotzdem sind Sie es, der den Anruf entgegennimmt, und Sie, der drei Wochen wartet, während jemand entscheidet, welche Kopie richtig war.
Klein genug, um es zu ignorieren, bis die Zahl das ist, was Sie schulden.
Dies zählt stattdessen in ganzen Zahlen, so wie Sie Münzen zählen würden, sodass nichts übrig bleibt und nichts abweicht. Was Sie dafür bekommen, ist langweilig und es wert, es zu haben. Ihr Telefon, das Kartenlesegerät an der Ladentheke und ein Computer in einem anderen Land kommen alle auf dieselbe Zahl, und das älteste der drei ist nicht weniger richtig als das neueste.
Ein Computer schreibt ein Zehntel so, wie Sie ein Drittel als Dezimalzahl schreiben würden, das heißt nicht ganz. Für sich allein ist die Abweichung viel zu klein, um sie zu sehen. Sie bleibt nicht für sich allein: Eine Rechnung hat Zeilen, ein Jahr hat zwölf Rechnungen, und jede dieser Abweichungen sitzt immer noch in der Summe unten, die die Zahl ist, die Sie zahlen sollen.
Die Zahl, die Sie erhalten haben, kam aus einer Maschine, und eine andere Maschine hätte Ihnen eine leicht andere geben können. Fragen Sie einen Computer nach einem Zehntel plus zwei Zehnteln, und wenn Sie ihn jede Ziffer anzeigen lassen, die er hält, endet die Antwort mit einer überzähligen Vier. Jede Maschine tut das, also bemerkt es niemand. Jede räumt die überzählige Vier auf ihre eigene Weise weg, und so endet eine Summe, die hier und in einem anderen Land berechnet wurde, an zwei verschiedenen Stellen.
Was Sie bekommen, ist eine Zahl, die für sich selbst spricht, und eine Entscheidung darüber mit einem Datum.
Das Zertifizierungspaket beginnt das Gespräch mit einem Prüfer, und was es beendet, ist Ihre Einreichung gegen Ihr eigenes Produkt, die Ihnen niemand geben kann. Und wenn keine Zahl, die Ihre Organisation erzeugt, jemals gegenüber jemandem außerhalb verteidigt werden muss, ist die ehrliche Antwort, dass nichts davon die Änderung wert ist.