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.
Το αρχείο του τι συνέβη, τηρημένο ώστε να μπορεί να διαβαστεί εκ των υστέρων.
Ένας επιλυτής SMT, με πιστοποιητικό προσαρτημένο στην απάντηση.
Κανόνες ως ονομασμένα τεχνουργήματα, με τον λόγο για τον οποίο απέτυχε ένας έλεγχος.
Επιλέξτε το αριθμητικό συμβόλαιο πριν από τον πρώτο υπολογισμό, κρατήστε τη συλλογιστική που το συνόδευε και δώστε σε όποιον ρωτήσει ένα αρχείο που μπορεί να εκτελέσει ξανά στη δική του μηχανή.
Αυτό που παίρνετε είναι το άθροισμα υπολογισμένο ακριβώς, το ίδιο νούμερο παντού, και ένα αρχείο του πώς επιτεύχθηκε.
Είναι χτισμένο στην Ευρώπη, υπό ευρωπαϊκούς κανόνες, και ο πηγαίος κώδικάς του δημοσιεύεται υπό τους όρους Apache-2.0 στον δεύτερο γύρο του προγράμματος εκδόσεων θεμελίωσης του Dweve. Οι ρυθμιστικές αρχές και οι φορείς καταναλωτών θα μπορούν να επιθεωρούν την αριθμητική άμεσα, την ημέρα που θα τεθεί σε λειτουργία.
Το αν ένας κανόνας είναι σωστός παραμένει θέμα για τους ανθρώπους και έχετε το δικαίωμα να το θέσετε. Αυτό που σας δίνει είναι κάτι στέρεο για να το θέσετε: ένα νούμερο που βγαίνει το ίδιο όταν το ελέγχει οποιοσδήποτε, ένα γραπτό αρχείο του πώς επιτεύχθηκε που δεν βασίζεται στη μνήμη κανενός, και ένας έλεγχος που λέει αν το αρχείο αυτό τροποποιήθηκε εκ των υστέρων.
Αν ο κανόνας που εφαρμόζεται σε εσάς είναι άδικος, αυτό θα τον εφαρμόσει ακριβώς, μέχρι το λεπτό, σε όλους, κάθε φορά. Δεν κάνει τον κανόνα δίκαιο και δεν μπορεί να πει ότι ο κανόνας είναι άδικος. Το μόνο που κάνει είναι να διασφαλίζει ότι το νούμερο δεν είναι επίσης λάθος, μια μικρότερη υπόσχεση από αυτή που ελπίζατε και μία που πραγματικά τηρείται.
Τίποτα από αυτά δεν αλλάζει το ένα πράγμα που πρέπει να ακούσετε ξεκάθαρα.
Έτσι, αυτό που φτάνει σε εσάς είναι ένα νούμερο με το δικό του περιθώριο προσαρτημένο, ή ένα κενό εκεί όπου θα πήγαινε ένα επινοημένο νούμερο. Το πού βρίσκεται η μηχανή έχει επίσης σημασία, και περισσότερο από όσο περιμένουν οι άνθρωποι. Η ίδια εργασία που γίνεται στη Γαλλία και στη Γερμανία βγαίνει σε πολύ διαφορετικά νούμερα άνθρακα, επειδή ο ηλεκτρισμός παράγεται διαφορετικά.
Η μέτρηση δεν είναι τέλεια και το λογισμικό το λέει χωρίς να το ρωτήσετε. Δουλειές πολύ μικρές για να καταγραφούν δεν αφήνουν κανένα ίχνος σε αυτό. Η ίδια δουλειά που εκτελείται δύο φορές βγαίνει λίγο διαφορετική ανάλογα με το πόσο ζεστή ήταν η μηχανή. Σε μερικούς ενοικιαζόμενους υπολογιστές δεν μπορεί να δει τίποτα, και το λέει αντί να μαντέψει.
Οι υπολογιστές χρησιμοποιούν ηλεκτρισμό για να σκέφτονται. Όλοι το ξέρουν, και κανείς δεν μπόρεσε ποτέ να σας πει πόσο από αυτόν πήγε σε οποιαδήποτε μεμονωμένη δουλειά. Οι επεξεργαστές κρατούν το δικό τους συνεχές μέτρημα της ενέργειας που έχουν ξοδέψει, και αυτό το μέτρημα μπορεί να διαβαστεί. Έτσι, ένα κομμάτι εργασίας μπορεί να επιστρέψει με τον ηλεκτρισμό που χρειάστηκε γραμμένο δίπλα του, και όπου η μηχανή δεν μπορεί να το πει, με τίποτα αντί για μια εικασία.
Μπορεί επίσης να απαντήσει σε κάτι που κανείς δεν μπορούσε να ρωτήσει πριν από λίγα χρόνια: πόσο κόστισε το άθροισμα σε ηλεκτρισμό.
Και τίποτα από αυτά δεν χρειάζεται να τηλεφωνήσει πουθενά. Η ένδειξη, η δόση, η απόσταση φρεναρίσματος: το νούμερο υπολογίζεται εκεί όπου μετριέται, οπότε δεν υπάρχει αντίγραφό του σε κάποιου άλλου υπολογιστή, και τίποτα δεν περιμένει μια σύνδεση. Αυτό έχει μεγαλύτερη σημασία όταν ο αριθμός αφορά το σώμα σας παρά όταν αφορά το νερό σας.
Ένας μετρητής είναι φθηνός εν μέρει επειδή δεν μπορεί να χειριστεί καθόλου κλάσματα, οπότε μετρά σε ακέραιους αριθμούς. Αυτό συμβαίνει να είναι το ίδιο μέτρημα που δίνει μια πανομοιότυπη απάντηση σε κάθε μηχανή. Έτσι, το άθροισμα στο ντουλάπι σας δεν είναι μια πιο χονδρική εκδοχή του αθροίσματος της τράπεζας επειδή το κουτί ήταν μικρό. Είναι το ίδιο άθροισμα.
Ο μετρητής στο ντουλάπι σας αποφασίζει πόσα οφείλετε για το νερό. Μια αντλία σε έναν θάλαμο νοσοκομείου αποφασίζει πόσο από ένα φάρμακο μπαίνει. Ένα κουτί πίσω από τον τροχό ενός αυτοκινήτου αποφασίζει πόσο δυνατά να φρενάρει. Κανείς δεν παρακολουθεί κανένα από αυτά, και όλα κάνουν το ίδιο είδος αριθμητικής που κάνει μια τράπεζα με τα χρήματά σας. Μπορεί να γίνει στο ίδιο επίπεδο, και η απάντηση δεν χρειάζεται ποτέ να φύγει από το δωμάτιο όπου υπολογίστηκε.
ένας οργανισμός που κρατούσε τα στοιχεία εργασίας μπορούσε να τα παραδώσει το ίδιο απόγευμα
ζητάτε τον υπολογισμό, και αυτό είναι φυσιολογικό να το ζητάτε
και σε κάθε περίπτωση, τον υπολογισμό, όχι μια σύνοψή του
ένας δημόσιος φορέας, για μια απόφαση σχετικά με τα χρήματά σας
ένα νοσοκομείο, για μια δόση που υπολογίστηκε
ο πάροχος ενέργειάς σας, για έναν λογαριασμό που αμφισβητείτε
η τράπεζά σας, για ένα ποσό στην κατάστασή σας
Με αυτόν τον τρόπο, η απάντηση δεν είναι η καλύτερη ανάμνηση κάποιου. Οι αριθμοί από τους οποίους ξεκίνησε διατηρήθηκαν, και διατηρήθηκε και το τι έγινε με αυτούς και με ποια σειρά. Τρέξτε το ξανά και βγαίνει πανομοιότυπο, όχι περίπου. Αν το αρχείο άλλαξε στο μεταξύ, αυτό φαίνεται πρώτα, πριν κανείς ξανατρέξει οτιδήποτε.
Πιθανόν να το έχετε ρωτήσει και να πήρατε μια φτωχή απάντηση. Κάποιος κοιτάζει την τρέχουσα έκδοση του υπολογισμού, την τρέχει με τα σημερινά νούμερα και σας λέει ότι βγαίνει περίπου σωστά. Κανείς δεν αποφεύγει την απάντηση. Το πράγμα που παρήγαγε το ποσό σας την περασμένη άνοιξη δεν υπάρχει πια, οπότε δεν έχει μείνει τίποτα να δείξετε.
Τίποτα από αυτά δεν απαντά στην ερώτηση που θα έκανε οποιοσδήποτε στη συνέχεια.
Ο περασμένος Μάρτιος βγαίνει από το νέο σύστημα ακριβώς όπως βγήκε από το παλιό, οπότε η δήλωση που υποβάλατε εξακολουθεί να ισχύει και δεν υπάρχει απόγευμα να χάσετε. Ρωτήστε πώς προέκυψε ένα ποσό και παίρνετε τον υπολογισμό, όχι ένα σήκωμα των ώμων. Δεν χρειάζεται να εμπιστευτείτε ότι ο υπολογισμός έμεινε ως είχε, γιατί οτιδήποτε άλλαξε μετά φαίνεται.
Καμία από την απάντηση δεν προέρχεται από τη μηχανή. Δεν υπάρχει στρογγυλοποίηση που πάει αλλιώς στο ένα τσιπ και αλλιώς στο επόμενο, και δεν υπάρχει συντόμευση που κάνει ένας γρηγορότερος υπολογιστής και δεν την κάνει ένας πιο αργός. Αλλάξτε τη μηχανή και το ποσό δεν μετακινείται, ούτε και η φόρμα που υποβάλατε με αυτήν ή η επιστολή που το ανέφερε.
Κάπου πίσω από την τράπεζά σας, τον πάροχο ενέργειας ή την εφορία, το λογισμικό αντικαθίσταται. Κανείς δεν σας λέει, και κανονικά δεν θα σας ένοιαζε. Σας νοιάζει τη μέρα που το νέο σύστημα προσθέτει την περασμένη χρονιά και βγάζει διαφορετική απάντηση, γιατί η φόρμα που ήδη υποβάλατε δεν ταιριάζει πια με το σύστημα που την παρήγαγε, και αυτός που πρέπει να το εξηγήσει είναι εσείς.
Ένας λογαριασμός εξοφλείται σε μια εβδομάδα. Τα χαρτιά ξαναδιαβάζονται ένα χρόνο αργότερα.
Εδώ το σημείο στρογγυλοποίησης καταγράφεται μία φορά, πριν προστεθεί οτιδήποτε, και κάθε αντίγραφο του λογαριασμού σας το ακολουθεί. Άρα δεν υπάρχει τηλεφώνημα, δεν υπάρχει κράτημα στον λογαριασμό και δεν υπάρχουν τρεις εβδομάδες. Τα αντίγραφα ταιριάζουν γιατί υπολογίστηκαν με τον ίδιο τρόπο, όχι επειδή κάποιος κάθισε μετά και τα έκανε να συμφωνούν.
Ο λόγος είναι μικρότερος από όσο ακούγεται. Ο φόρος βγαίνει σε κλάσματα του λεπτού, και κάποιος πρέπει να αποφασίσει πού στρογγυλοποιούνται αυτά τα κλάσματα. Το ένα σύστημα στρογγυλοποιεί σε κάθε γραμμή. Το άλλο στρογγυλοποιεί μία φορά, στο σύνολο. Και τα δύο είναι λογικά, και μπορούν να διαφέρουν κατά ένα λεπτό χωρίς κανένα από τα δύο να είναι λάθος.
Ένας λογαριασμός, τρία αντίγραφα: η απόδειξη στα χέρια σας, η ταμειακή του καταστήματος και της τράπεζάς σας. Κάθε τόσο δύο από αυτά καταλήγουν σε διαφορετικό λεπτό. Τίποτα δεν κλάπηκε και κανείς δεν ήταν απρόσεκτος, και παρόλα αυτά εσείς σηκώνετε το τηλέφωνο, και εσείς περιμένετε τρεις εβδομάδες όσο κάποιος αποφασίζει ποιο αντίγραφο ήταν σωστό.
Αρκετά μικρό για να το αγνοήσετε, μέχρι τη στιγμή που το ποσό είναι αυτό που οφείλετε.
Αυτό μετράει σε ακέραιους αριθμούς αντίθετα, όπως θα μετρούσατε κέρματα, οπότε δεν περισσεύει τίποτα και δεν παρασύρεται τίποτα. Αυτό που κερδίζετε είναι βαρετό και αξίζει να το έχετε. Το τηλέφωνό σας, ο αναγνώστης καρτών στον πάγκο του καταστήματος και ένας υπολογιστής σε άλλη χώρα καταλήγουν όλοι στο ίδιο ποσό, και το παλαιότερο από τα τρία δεν είναι λιγότερο σωστό από το νεότερο.
Ένας υπολογιστής γράφει το ένα δέκατο όπως θα γράφατε το ένα τρίτο ως δεκαδικό, δηλαδή όχι ακριβώς. Από μόνο του το κενό είναι πολύ μικρό για να φανεί. Δεν μένει μόνο του: ένας λογαριασμός έχει γραμμές, ένας χρόνος έχει δώδεκα λογαριασμούς, και κάθε ένα από αυτά τα κενά εξακολουθεί να βρίσκεται στο σύνολο στο κάτω μέρος, που είναι το ποσό που καλείστε να πληρώσετε.
Το ποσό που σας δόθηκε βγήκε από μια μηχανή, και μια διαφορετική μηχανή μπορεί να σας είχε δώσει ένα ελαφρώς διαφορετικό. Ζητήστε από έναν υπολογιστή ένα δέκατο συν δύο δέκατα και, αν τον κάνετε να δείξει κάθε ψηφίο που κρατάει, η απάντηση καταλήγει σε ένα άτακτο τέσσερα. Κάθε μηχανή το κάνει αυτό, οπότε κανείς δεν το προσέχει. Κάθε μία καθαρίζει το άτακτο τέσσερα με τον δικό της τρόπο, και έτσι ένα άθροισμα, υπολογισμένο εδώ και υπολογισμένο σε άλλη χώρα, καταλήγει σε δύο διαφορετικά σημεία.
Αυτό που παίρνετε είναι ένα ποσό που απαντά για τον εαυτό του, και μια απόφαση για αυτό με ημερομηνία.
Το πακέτο πιστοποίησης ξεκινά τη συζήτηση με έναν ελεγκτή, και αυτό που την κλείνει είναι η υποβολή σας έναντι του δικού σας προϊόντος, που κανείς δεν μπορεί να σας δώσει. Και αν κανένα ποσό που παράγει ο οργανισμός σας δεν χρειαστεί ποτέ να υπερασπιστεί σε κάποιον εκτός αυτού, η ειλικρινής απάντηση είναι ότι τίποτα από αυτά δεν αξίζει την αλλαγή.