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.

Skupine algoritmov glede na vrsto podatkov

Zapis tega, kar se je zgodilo, shranjen, da ga je mogoče prebrati.

Reševalec SMT s potrdilom, priloženim odgovoru.

Pravila kot poimenovani artefakti z razlogom, zakaj je preverjanje spodletelo.

Izberite številčno pogodbo pred prvim izračunom, ohranite utemeljitev, ki je šla z njo, in vsakomur, ki vpraša, izročite zapis, ki ga lahko ponovno zažene na svojem računalniku.

Dobite natančno opravljeno vsoto, povsod enako številko in zapis, kako je bila dosežena.

Zgrajeno je v Evropi, po evropskih pravilih, njegova koda pa je objavljena pod pogoji Apache-2.0 v drugem krogu programa temeljnih izdaj Dweve. Regulatorji in potrošniške organizacije bodo lahko aritmetiko neposredno preverili že na dan, ko bo zaživela.

Ali je pravilo pravilno, ostaja vprašanje za ljudi in imate pravico, da ga postavite. Kar dobite, je nekaj trdnega, s čimer ga lahko postavite: številka, ki je enaka, ko jo kdor koli preveri, pisni zapis, kako je bila dosežena, ki ne sloni na ničijem spominu, in preverjanje, ali je bil zapis pozneje spremenjen.

Če je pravilo, ki se uporablja za vas, nepošteno, ga bo to uporabilo natančno, do centa, za vsakogar, vsakič. Pravila ne naredi poštenega in ne more ugotoviti, da je pravilo nepošteno. Vse, kar naredi, je, da poskrbi, da tudi številka ni napačna, kar je manjša obljuba, kot ste upali, in taka, ki je dejansko izpolnjena.

Nič od tega ne spremeni tistega, kar bi morali slišati naravnost.

Tako do vas pride številka s svojo lastno mejo napake ali prazno mesto, kjer bi bila izmišljena številka. Kje stroj deluje, je prav tako pomembno, bolj, kot ljudje pričakujejo. Enako delo, opravljeno v Franciji in Nemčiji, ima zelo različne ogljične številke, ker je elektrika proizvedena drugače.

Štetje ni popolno in programska oprema to pove brez vprašanja. Dela, ki so premajhna, da bi se zabeležila, ne pustijo nobene sledi. Isto delo, zagnano dvakrat, se vrne nekoliko drugače, odvisno od tega, kako topel je bil stroj. Na nekaterih najetih računalnikih ne vidi ničesar in to pove, namesto da bi ugibalo.

Računalniki uporabljajo elektriko za razmišljanje. To vsi vedo in nihče vam nikoli ni mogel povedati, koliko je šlo za posamezno opravilo. Procesorji vodijo svoje sprotno štetje porabljene energije in to štetje je mogoče prebrati. Tako se lahko delo vrne s porabljeno elektriko, zapisano ob njem, in kjer stroj ne more povedati, z ničemer namesto z ugibanjem.

Lahko odgovori tudi na nekaj, česar pred nekaj leti nihče ni mogel vprašati: koliko je vsota stala v elektriki.

In nič od tega ne potrebuje klica domov. Odčitek, odmerek, zavorna pot: številka se izračuna tam, kjer se meri, zato njena kopija ne leži na tujem računalniku in nič ne čaka na povezavo. To je pomembnejše, ko gre za vaše telo, kot ko gre za vašo vodo.

Števec je poceni deloma zato, ker sploh ne zna ravnati z ulomki, zato šteje v celih številih. To je ista vrsta štetja, ki daje enak odgovor na vsakem stroju. Torej vsota v vaši omarici ni slabša različica bančne vsote, ker je škatla majhna. To je ista vsota.

Števec v vaši omarici odloča, koliko dolgujete za vodo. Črpalka na bolnišničnem oddelku odloča, koliko zdravila gre v telo. Škatla za volanom avtomobila odloča, kako močno zavirati. Nihče jih ne opazuje in vsaka dela isto vrsto aritmetike kot banka z vašim denarjem. To je mogoče narediti po enakem standardu in odgovoru ni treba nikoli zapustiti prostora, kjer je bil izračunan.

organizacija, ki je hranila delo, ga lahko izroči še isti popoldan

prosite za izračun, in to je povsem običajna prošnja

in v vsakem primeru izračun, ne njegov povzetek

javni organ, za odločitev o vašem denarju

bolnišnico, za odmerek, ki je bil izračunan

vašega dobavitelja energije, za račun, ki ga izpodbijate

Tako narejen odgovor ni zgolj nekdo, ki se najbolje spominja. Številke, iz katerih je izhajal, so bile ohranjene, prav tako tisto, kar je bilo z njimi narejeno, in v kakšnem vrstnem redu. Ponovite postopek in rezultat je enak, ne le približen. Če je bil zapis vmes spremenjen, se to pokaže najprej, preden kdorkoli karkoli ponovno zažene.

Verjetno ste to že vprašali in dobili slab odgovor. Nekdo pogleda trenutno različico izračuna, jo zažene na današnjih številkah in vam pove, da je približno pravilna. Nihče se ne izmika. Stvar, ki je lani spomladi ustvarila vašo številko, ne obstaja več, zato ni ničesar, na kar bi lahko pokazali.

Nobeno od teh ne odgovori na vprašanje, ki bi ga kdorkoli vprašal naslednje.

Lanski marec iz novega sistema izide natanko tako, kot je izšel iz starega, zato vaša oddana napoved še vedno velja in ni izgubljenega popoldneva. Vprašajte, kako je bila številka dosežena, in dobite izračun, ne pa skomig z rameni. Prav tako vam ni treba zaupati, da je bil izračun puščen pri miru, ker se vsaka naknadna sprememba pokaže.

Noben del odgovora ne prihaja iz stroja. Ni zaokroževanja, ki bi na enem čipu potekalo enako in na drugem drugače, in ni bližnjice, ki bi jo hitrejši računalnik naredil, počasnejši pa ne. Zamenjajte stroj in številka se ne premakne, prav tako se ne premakne obrazec, ki ste ga oddali z njim, niti pismo, ki jo je navedlo.

Nekje za vašo banko, vašim dobaviteljem energije ali davčno upravo se programska oprema zamenja. Nihče vam ne pove, in običajno vam je vseeno. Vam pa ni vseeno na dan, ko novi sistem sešteje lansko leto in dobi drugačen rezultat, ker obrazec, ki ste ga že oddali, ni več skladen s sistemom, ki ga je ustvaril, in oseba, ki mora to pojasniti, ste vi.

Račun je poravnan v enem tednu. Dokumentacija se znova prebere leto pozneje.

Tukaj je točka zaokroževanja zapisana enkrat, preden se karkoli sešteje, in vsaka kopija vašega računa ji sledi. Zato ni telefonskega klica, ni zadržanja na računu in ni treh tednov. Kopije se ujemajo, ker so bile izračunane na enak način, ne zato, ker je nekdo naknadno sedel in jih uskladil.

Razlog je manjši, kot se sliši. Davek pride v delčkih centa in nekdo se mora odločiti, kje se ti delčki zaokrožijo. En sistem zaokrožuje na vsaki vrstici. Drugi zaokroži enkrat, na skupnem znesku. Oba sta razumna in lahko se razlikujeta za cent, ne da bi bil kateri od njiju napačen.

En račun, tri kopije: potrdilo v vaši roki, blagajna v trgovini in vaša banka. Vsake toliko se dve od njih končata z različnim centom. Nič ni bilo ukradeno in nihče ni bil malomaren, pa vendar vi prevzamete telefonski klic in vi čakate tri tedne, medtem ko se nekdo odloča, katera kopija je bila pravilna.

Dovolj majhno, da ga prezrete, vse dokler ni številka tisto, kar dolgujete.

To namesto tega šteje v celih številih, tako kot bi šteli kovance, zato nič ne ostane in nič ne odstopa. Kar dobite, je dolgočasno in vredno. Vaš telefon, čitalnik kartic na pultu in računalnik v drugi državi se vsi končajo pri isti številki, in najstarejši od treh ni nič manj pravilen kot najnovejši.

Računalnik zapiše desetino tako, kot bi zapisali tretjino kot decimalno število, kar pomeni, da ne povsem. Sama po sebi je razlika premajhna, da bi jo videli. Ne ostane sama: račun ima vrstice, leto ima dvanajst računov in vsaka od teh razlik je še vedno v skupnem znesku na dnu, ki je številka, ki jo morate plačati.

Številka, ki ste jo dobili, je prišla iz stroja, in drugačen stroj bi vam morda dal nekoliko drugačno. Vprašajte računalnik za desetino plus dve desetini in, če mu pokažete vse števke, ki jih hrani, se odgovor konča s potepuško štirico. Vsak stroj to naredi, zato nihče ne opazi. Vsak pospravi potepuško štirico na svoj način in tako se ena vsota, izračunana tukaj in v drugi državi, konča na dveh različnih mestih.

Kar dobite, je številka, ki odgovarja sama zase, in odločitev o njej z datumom.

Certifikacijski paket začne pogovor z revizorjem, zaključi pa ga vaša oddaja proti vašemu lastnemu izdelku, ki vam je nihče ne more dati. In če nobene številke, ki jo vaša organizacija ustvari, nikoli ni treba zagovarjati pred nekom zunaj nje, je pošten odgovor, da nič od tega ni vredno spremembe.

Merilnik energije pokriva en operacijski sistem na eni arhitekturi, drugje pa zavrne namesto ocene. Dokazovanje lastnosti zahteva nameščen zunanji reševalec, brez njega pa dobite meje in intervale, ki so uporabni, niso pa dokazi.

Nič. Ustvari dokaze, dokaze pa ocenjuje človek. Z doslednostjo bo držal slabo izbran numerični dogovor in ustvaril brezhiben zapis, da je to storil, pri čemer je zapis uporabni del, ne obljuba pravilnosti, saj obljube ni mogoče preveriti, zapis pa je.

In prav tako odkrito je treba povedati, česa vam to ne prinese.

Nobena od teh štirih ni odpravljena. Ne veljajo, kar je bistveno močnejše stališče kot odpoved, in to je razlika med knjižnico in storitvijo, preoblečeno v knjižnico. Vaš izdani artefakt določa različico in licenco, znano zgradbo pa lahko obdržite za incident brez vprašanja kogar koli.

Brez pogodbe o obdelavi za izračun, ker ni obdelovalca. Brez ocene prenosa, ker nič ne zapusti. Brez odvisnosti od razpoložljivosti dobavitelja, ker nobena naša končna točka ni na poti. In brez različice, ki bi vam prišla pod noge po tujem urniku izdaj, ker se sami odločite, kdaj se premaknete.