Numerus και η ίδια απάντηση δύο φορές

Οι διαφορές κινητής υποδιαστολής αγνοούνται εύκολα, μέχρι να αλλάξουν ένα τεστ, μια προσομοίωση, μια αναπαραγωγή ή μια απόφαση. Η Numerus αντιμετωπίζει την...

Numerus και η ίδια απάντηση δύο φορές

Το σφάλμα που υπάρχει μόνο στην άλλη μηχανή

Το πιο εκνευριστικό αριθμητικό σφάλμα είναι εκείνο που αρνείται να εμφανιστεί εκεί που κοιτάς. Το τεστ αποτυγχάνει στο CI, όχι τοπικά. Η προσομοίωση αποκλίνει μετά από μια ενημέρωση εξάρτησης. Ο ενσωματωμένος στόχος παράγει ένα ελαφρώς διαφορετικό αποτέλεσμα από τον διακομιστή. Η αλυσίδα του μοντέλου φαίνεται εντάξει μέχρι που η αναπαραγωγή ζητά τον ίδιο υπολογισμό δύο φορές και λαμβάνει δύο απαντήσεις που είναι αρκετά κοντά ώστε να ξεκινήσουν μια διαφωνία.

Το «κοντά» μερικές φορές είναι εντάξει. Το «κοντά» δεν είναι πάντα συμβόλαιο. Αν ένας υπολογισμός αποτελεί μέρος μιας διαδρομής αναπαραγωγής, ενός ελέγχου ασφαλείας, μιας προσομοίωσης, μιας απόφασης τιμολόγησης, ενός ψηφιακού δίδυμου, ενός αρχείου ελέγχου ή ενός βήματος συμπίεσης μοντέλου, τότε το «κοντά» μπορεί να μετατραπεί σε κίνδυνο για το προϊόν. Η διαφορά μπορεί να είναι ελάχιστη. Οι ελάχιστες διαφορές παραμένουν διαφορές. Το λογισμικό έχει χτίσει ολόκληρες καριέρες στο να προσβάλλεται από ελάχιστες διαφορές.

Αυτός είναι ο λόγος που υπάρχει το Numerus στη στοίβα Dweve. Η σελίδα Numerus το παρουσιάζει ως ένα ανοιχτού κώδικα αριθμητικό θεμέλιο για ντετερμινιστική αριθμητική: δυαδική και δεκαδική σταθερής υποδιαστολής, προσαρμοστική αριθμητική μεταβλητού εκθέτη Dweve AXIOM, λειτουργίες προσανατολισμένες σε ακεραίους, Rust, επιφάνειες συμβατές με no_std, επαλήθευση έναντι αναφορών υψηλής ακρίβειας όπου έχει νόημα, και ντετερμινιστικά προφίλ που στοχεύουν να κάνουν την αναπαραγωγή πιο ήρεμη σε υποστηριζόμενους στόχους. Το κοινό αριθμητικό επίπεδο από κάτω είναι ακόμη ευρύτερο: δυαδικές, τριαδικές, ακέραιες, σταθερής υποδιαστολής, κινητής υποδιαστολής και προσαρμοστικές οικογένειες AXIOM κάτω από ένα συμβόλαιο τύπου Element. Οι ακριβείς λεπτομέρειες υλοποίησης έχουν σημασία για τους μηχανικούς. Το μάθημα για το προϊόν είναι απλούστερο: η αριθμητική δεν είναι θόρυβος στο παρασκήνιο. Είναι υποδομή.

Όταν ένα αποτέλεσμα μπαίνει σε μια διαδρομή αναπαραγωγής ή ελέγχου, η χρήσιμη ερώτηση δεν είναι αν δύο απαντήσεις είναι κοντά. Είναι αν το σύστημα μπορεί να δώσει την ίδια απάντηση δύο φορές.

Αυτό ακούγεται προφανές μέχρι να ακολουθήσεις πού ταξιδεύουν οι αριθμοί. Μια προσομοίωση τροφοδοτεί ένα ψηφιακό δίδυμο. Το δίδυμο τροφοδοτεί έναν πίνακα ελέγχου. Ο πίνακας ελέγχου ενημερώνει μια ανθρώπινη απόφαση. Η απόφαση καταγράφεται. Έναν μήνα αργότερα κάποιος ρωτάει γιατί. Αν το αριθμητικό επίπεδο δεν μπορεί να αναπαράγει τον υπολογισμό, η υπόλοιπη αλυσίδα αποδεικτικών στοιχείων γίνεται επισφαλής. Μπορεί να είναι ακόμη υπερασπίσιμη, αλλά τώρα η ομάδα πρέπει να εξηγήσει μια αποφεύξιμη πηγή απόκλισης. Αυτό είναι ένα κακό χόμπι.

Η κινητή υποδιαστολή δεν είναι ηθικά λάθος

Αυτό δεν είναι ένα κήρυγμα ότι η κινητή υποδιαστολή είναι κακή. Η κινητή υποδιαστολή είναι ένας από τους λόγους που λειτουργεί το σύγχρονο λογισμικό. Είναι γρήγορη, συμπαγής, καλά υποστηριζόμενη και απολύτως σωστή για πολλούς φόρτους εργασίας. Το πρόβλημα ξεκινά όταν οι ομάδες προσποιούνται ότι η συμπεριφορά της είναι ένα καθολικό συμβόλαιο διακυβέρνησης.

Η κινητή υποδιαστολή ζει σε έναν κόσμο τρόπων στρογγυλοποίησης, διαφορών υλικού, επιλογών μεταγλωττιστή, επιλογής εντολών, συγχωνευμένων πράξεων, διανυσματοποίησης, denormals, συμπεριφοράς βιβλιοθηκών και λεπτομερειών που εξαρτώνται από τον στόχο. Τις περισσότερες φορές αυτό είναι διαχειρίσιμο. Μερικές φορές είναι ακόμη και αόρατο. Τότε χρειάζεσαι αναπαραγωγή με ακρίβεια bit, ή ισοτιμία μεταξύ στόχων, ή ντετερμινιστική προσομοίωση, ή ένα build που θα έπρεπε να συμπεριφέρεται το ίδιο αφού μετακινηθεί από τον διακομιστή στο edge. Ξαφνικά οι λεπτομέρειες παύουν να είναι ακαδημαϊκές. Γίνονται μια συνάντηση.

Το Numerus ακολουθεί διαφορετικό δρόμο για φόρτους εργασίας όπου η επαναληψιμότητα έχει μεγαλύτερη σημασία από το να προσποιείσαι ότι κάθε πράξη είναι ένας μικρός καιρικός σχηματισμός. Η αριθμητική μόνο με ακεραίους κάνει την αναπαράσταση ρητή. Οι μορφές σταθερής υποδιαστολής ορίζουν πού ζει το δεκαδικό. Οι δεκαδικές οικογένειες διαχειρίζονται τιμές όπου τα ακριβή ψηφία έχουν σημασία. Το Dweve AXIOM δίνει έναν τρόπο να προσαρμόζεις το σχήμα του εκθέτη ανά τιμή χωρίς να παραδίδεις τον έλεγχο σε ένα αδιαφανές περιβάλλον κινητής υποδιαστολής. Το ζητούμενο δεν είναι μια αριθμητική μορφή για πάντα. Το ζητούμενο είναι να επιλέξεις μια μορφή με συμβόλαιο.

Αυτό έχει σημασία, γιατί τα συστήματα προϊόντων δεν υπολογίζουν μόνο. Θυμούνται. Αναπαράγουν. Συγκρίνουν. Εξηγούν. Αν ο ίδιος υπολογισμός δίνει διαφορετικά αποτελέσματα σε διαφορετικές υποστηριζόμενες επιφάνειες, η διαφορά γίνεται μέρος του προϊόντος, είτε το σχεδίασε κάποιος είτε όχι.

Μία αριθμητική βιβλιοθήκη είναι στην πραγματικότητα πολλές υποσχέσεις

Ένα αριθμητικό θεμέλιο δεν είναι ένα πράγμα. Είναι ένα σύνολο υποσχέσεων με διαφορετικό κοινό. Ο μηχανικός ενσωματωμένων συστημάτων νοιάζεται ότι οι περιορισμένοι στόχοι μπορούν να τρέξουν τα σχετικά προφίλ ακεραίων χωρίς να σέρνουν μαζί τους ένα άνετο περιβάλλον εκτέλεσης διακομιστή. Ο μηχανικός προσομοίωσης νοιάζεται ότι η αναπαραγωγή μπορεί να αναπαράγει μια κατάσταση. Ο ελεγκτής νοιάζεται ότι η διαδρομή της απάντησης μπορεί να εξηγηθεί. Ο ιδιοκτήτης του προϊόντος νοιάζεται ότι το πράγμα δεν συμπεριφέρεται σαν νευρική αριθμομηχανή όταν μετακινείται από το ένα περιβάλλον στο άλλο.

Η δημόσια σελίδα Numerus αναδεικνύει τις οικογένειες για τις οποίες ρωτούν πρώτα οι περισσότεροι: σταθερής υποδιαστολής Q-format, Decimal και AXIOM. Η βάση κώδικα είναι ευρύτερη. Το common/numeric φέρει δυαδικές μορφές XNOR και POPCNT, τριαδικές τιμές, εγγενείς και υπο-byte ακεραίους, ψευδώνυμα σταθερής υποδιαστολής, μικρές μορφές κινητής υποδιαστολής και προσαρμοστικό AXIOM. Η πρόσοψη Numerus προσθέτει στη συνέχεια τις επιφάνειες δεκαδικών και αριθμητικών πράξεων που απευθύνονται στο προϊόν, γύρω από αυτό το θεμέλιο. Αυτός ο διαχωρισμός έχει σημασία, γιατί αποφεύγει την ψεύτικη κομψότητα του να αναγκάζεις κάθε αριθμό να φορέσει το ίδιο ένδυμα.

Διαφορετικοί φόρτοι εργασίας χρειάζονται διαφορετικά σχήματα αριθμών. Η κοινή υπόσχεση είναι η ντετερμινιστική συμπεριφορά σε ολόκληρη την ευρύτερη αριθμητική επιφάνεια, όχι μια μοδάτη αναπαράσταση για τα πάντα.

Αυτό είναι ένα πολύ ευρωπαϊκό είδος μηχανικής με την καλή έννοια. Λιγότερο δράμα, περισσότερο συμβόλαιο. Ο υπολογισμός πρέπει να δηλώνει τι είναι. Το εύρος πρέπει να είναι γνωστό. Η δεκαδική συμπεριφορά πρέπει να είναι ρητή. Οι περιορισμοί του στόχου πρέπει να γίνονται σεβαστοί. Το αποτέλεσμα πρέπει να είναι αναπαράξιμο. Κανείς δεν χρειάζεται μια κεντρική ομιλία για αυτό. Χρειάζονται να δουλεύει.

Το AXIOM αξίζει το δικό του άρθρο, γιατί δεν είναι απλώς άλλο ένα ψευδώνυμο στη λίστα. Είναι η προσαρμοστική οικογένεια μεταβλητής υποδιαστολής της Dweve: πρόσημο, δείκτης εκθέτη και μάντισσα συσκευασμένα σε μια συμπαγή αναπαράσταση, με λίστες εκθετών επιλεγμένες για γενικά, πυκνά, λεπτόκοκκα ή διαμορφωμένα σαν νευρωνικό δίκτυο δεδομένα. Αυτή η ανάρτηση το τοποθετεί μόνο στον χάρτη Numerus. Η βαθύτερη ιστορία είναι πώς η προσαρμοστική επιλογή εκθέτη δίνει περισσότερο χώρο στις μεταβαλλόμενες τάξεις μεγέθους χωρίς να καθιστά την αριθμητική ξανά μη ντετερμινιστική.

Αυτό επίσης αποτρέπει τις υπερβολικές υποσχέσεις. Το Numerus δεν κάνει κάθε αριθμητικό πρόβλημα εύκολο. Δεν αφαιρεί την ανάγκη να επιλέξεις κλίμακες, εύρη, συμπεριφορά στρογγυλοποίησης, λίστες εκθετών, πλάτη μάντισσας ή τομείς επαλήθευσης. Τόσο η σταθερής όσο και η μεταβλητής υποδιαστολής αριθμητική μπορούν να κακοποιηθούν με μεγάλο ενθουσιασμό. Η αξία είναι ότι η κακοποίηση γίνεται πιο ορατή. Ένα ρητό αριθμητικό συμβόλαιο σου δίνει κάτι να ελέγξεις. Μια κρυφή υπόθεση κινητής υποδιαστολής σου δίνει ένα μικρό φάντασμα στην παραγωγή.

Η επαλήθευση δεν είναι σήμα κατατεθέν

Κάθε αριθμητική βιβλιοθήκη μαθαίνει τελικά ότι λέξεις όπως σωστό και ακριβές είναι φθηνές μέχρι να συνδεθούν με ένα σύστημα ελέγχου. Σωστό πού; Ακριβές σε σύγκριση με τι; Πάνω από ποιο πεδίο εισόδου; Με ποια συμπεριφορά στρογγυλοποίησης; Σε ποια έκδοση; Κάτω από ποιες δοκιμές;

Το υλικό του Numerus φέρνει την επαλήθευση στο προσκήνιο: CORDIC μόνο με ακεραίους για υπερβατικές συναρτήσεις, σύγκριση με ένα υψηλής ακρίβειας MPFR σημείο αναφοράς, δοκιμές ιδιοτήτων και έλεγχοι έκδοσης. Ο ακριβής ισχυρισμός έχει νόημα μόνο όταν συνδέεται με αυτόν τον μηχανισμό. Ένα σήμα που λέει ακριβές είναι διακόσμηση. Ένα σύστημα ελέγχου που συγκρίνει, συρρικνώνει και αποτυγχάνει είναι μηχανική.

Η αριθμητική αξιοπιστία πρέπει να προέρχεται από μια διαδρομή μαντείου και δοκιμές ιδιοτήτων, όχι από ένα διάγραμμα που δείχνει ικανοποιημένο με τον εαυτό του.

Αυτή η διάκριση έχει σημασία επειδή τα αριθμητικά σφάλματα συχνά κρύβονται στα άκρα. Το μέσο του πεδίου τιμών συμπεριφέρεται σωστά. Το demo συμπεριφέρεται σωστά. Οι συνήθεις τιμές συμπεριφέρονται σωστά. Και τότε φτάνει η οριακή τιμή κρατώντας έναν φάκελο. Οι αρνητικές είσοδοι, οι τιμές κοντά στο μηδέν, τα όρια υπερχείλισης, οι μεταβάσεις κλίμακας, οι ισοπαλίες στρογγυλοποίησης, τα όρια λιστών εκθετών και οι επαναλαμβανόμενες πράξεις είναι τα σημεία όπου οι αριθμητικές βιβλιοθήκες είτε κερδίζουν την εμπιστοσύνη είτε αρχίζουν να γράφουν μυθοπλασία.

Οι δοκιμές ιδιοτήτων είναι χρήσιμες επειδή οι άνθρωποι δεν μπορούν εύκολα να φανταστούν όλους τους τρόπους με τους οποίους ένας αριθμός μπορεί να γίνει ενοχλητικός. Ένα μαντείο υψηλής ακρίβειας είναι χρήσιμο επειδή η υλοποίηση χρειάζεται μια αναφορά που δεν είναι ο εαυτός της. Οι έλεγχοι έκδοσης είναι χρήσιμοι επειδή ένας επαληθευμένος ισχυρισμός από τον περασμένο μήνα δεν αποτελεί εγγύηση για αυτόν τον μήνα. Το λογισμικό δεν παραμένει σωστό από ευγένεια.

Η ντετερμινιστικότητα ανήκει στην αρχιτεκτονική, όχι σε μια υποσημείωση

Είναι δελεαστικό να αντιμετωπίζεται η ντετερμινιστική αριθμητική ως λεπτομέρεια χαμηλού επιπέδου της βιβλιοθήκης. Εκεί χάνουν την ευκαιρία πολλές ομάδες. Όταν το προϊόν χρειαστεί αναπαραγωγή, οι αριθμητικές παραδοχές έχουν ήδη εξαπλωθεί σε υπηρεσίες, σημειωματάρια, ενσωματωμένους στόχους, εργαλεία μοντέλων και δοκιμές ολοκλήρωσης. Τότε ο ντετερμινισμός γίνεται εκ των υστέρων προσαρμογή. Οι εκ των υστέρων προσαρμογές είναι εκεί όπου οι προϋπολογισμοί αναπτύσσουν χαρακτήρα.

Η σωστή στιγμή για να αποφασιστεί η αριθμητική στάση είναι νωρίς. Χρειάζεται αυτός ο φόρτος εργασίας αναπαραγωγή σταθερή ως προς τα bit; Διασχίζει μηχανές; Διασχίζει αρχιτεκτονικές; Υποστηρίζει μια ρυθμιζόμενη απόφαση; Τροφοδοτεί μια προσομοίωση; Γίνεται δεδομένα εκπαίδευσης, είσοδος συμπερασμού, έξοδος συμπίεσης μοντέλου ή κατάσταση ψηφιακού διδύμου; Αν ναι, η αριθμητική είναι αρχιτεκτονικό ζήτημα.

Το Numerus ταιριάζει δίπλα στα FMI και Twin ακριβώς για αυτόν τον λόγο. Το FMI ενδιαφέρεται για ντετερμινιστικούς πυρήνες προσομοίωσης και ανταλλαγή μοντέλων. Το Twin ενδιαφέρεται για την αναπαραγωγή λειτουργικής ή φυσικής κατάστασης με την πάροδο του χρόνου. Το Ledger καταγράφει λειτουργικά συμβάντα. Το Trace μεταφέρει αναπαραγώγιμα υπολογιστικά αποδεικτικά στοιχεία. Αυτά τα επίπεδα γίνονται πιο ήρεμα μόνο όταν το υποκείμενο αριθμητικό επίπεδο δεν παρασύρεται σαν καρότσι με ένα χαλασμένο ρόδα.

Στα συστήματα τεχνητής νοημοσύνης αυτό γίνεται ακόμα πιο συγκεκριμένο. Η κβάντιση, η βαθμολόγηση, η κατάταξη, η προσομοίωση, οι περιορισμοί, η βαθμονόμηση, η συμπίεση και η αναπαραγωγή χρησιμοποιούν όλα αριθμούς. Αν αυτοί οι αριθμοί συμπεριφέρονται διαφορετικά μεταξύ περιβαλλόντων, το μοντέλο μπορεί να μην είναι ο ένοχος. Είναι απλώς ο πιο εμφανής ύποπτος. Βολικό, αλλά όχι πάντα σωστό.

Οι μικρές μηχανές δεν είναι πολίτες δεύτερης κατηγορίας

Μεγάλο μέρος της αρχιτεκτονικής τεχνητής νοημοσύνης και προσομοίωσης υποθέτει σιωπηλά μια άνετη μηχανή. Θα υπάρχει ένας διακομιστής. Θα υπάρχει μια GPU. Θα υπάρχει αρκετή μνήμη. Θα υπάρχει μια υπηρεσία cloud. Θα υπάρχει ένας λογαριασμός που θα κάνει κάποιον να εφεύρει τη φράση στρατηγική επένδυση.

Τα πραγματικά συστήματα είναι λιγότερο τακτοποιημένα. Ορισμένοι υπολογισμοί πρέπει να εκτελούνται σε ενσωματωμένους στόχους. Κάποιοι ζουν στην άκρη. Κάποιοι βρίσκονται μέσα σε συσκευές χωρίς μονάδα κινητής υποδιαστολής. Κάποιοι χρειάζονται συμβατότητα no_std. Κάποιοι πρέπει να συνεχίσουν να λειτουργούν όταν το δίκτυο δεν είναι καλεσμένο. Αν το αριθμητικό θεμέλιο συμπεριφέρεται σωστά μόνο στην άνετη περίπτωση, δεν είναι θεμέλιο. Είναι έπιπλο.

Το ίδιο αριθμητικό συμβόλαιο πρέπει να επιβιώνει στους περιορισμούς ανάπτυξης, όχι μόνο στον φορητό υπολογιστή του προγραμματιστή όπου όλα είναι γενναιόδωρα και ζεστά.

Ο ακέραιος προσανατολισμός βοηθά εδώ, επειδή μειώνει την εξάρτηση από τη συμπεριφορά κινητής υποδιαστολής που εξαρτάται από την πλατφόρμα, όπου το φόρτο εργασίας μπορεί να χρησιμοποιήσει αυτά τα προφίλ. Οι επιφάνειες που υποστηρίζουν no_std βοηθούν, επειδή δεν έχει κάθε περιβάλλον τις πολυτέλειες της τυπικής βιβλιοθήκης ενός διακομιστή. Το ζητούμενο δεν είναι νοσταλγία για μικρότερες μηχανές. Είναι ο έλεγχος του ποιο αριθμητικό συμβόλαιο ταξιδεύει σε περιορισμένα περιβάλλοντα.

Αυτό δεν είναι νοσταλγία για μικρότερες μηχανές. Είναι έλεγχος. Αν ο υπολογισμός είναι μέρος του προϊόντος, το προϊόν δεν θα έπρεπε να απαιτεί το πιο άνετο περιβάλλον για να είναι αξιόπιστο.

Το βαρετό παράδειγμα είναι το σημαντικό

Φανταστείτε έναν υπολογισμό δοσολογίας, έναν υπολογισμό τιμολογίου, ένα βήμα προσομοίωσης, μια αναπαραγόμενη τιμή αισθητήρα ή ένα όριο συμπίεσης μοντέλου. Τίποτα από αυτά δεν ακούγεται εντυπωσιακό. Καλώς. Η εντυπωσιακότητα είναι συνήθως εκεί που αρχίζουν οι γενικολογίες. Τα βαρετά παραδείγματα είναι εκεί που η αριθμητική ντετερμινιστικότητα αποδεικνύει την αξία της.

Αν το αποτέλεσμα χρησιμοποιηθεί μία φορά και ξεχαστεί, μια μικρή απόκλιση μπορεί να μην έχει σημασία. Αν το αποτέλεσμα καταγράφεται και αναπαράγεται, έχει. Αν συγκρίνεται μεταξύ περιβαλλόντων, έχει. Αν τροφοδοτεί μια μεταγενέστερη απόφαση, έχει. Αν ένας πελάτης, ένας ελεγκτής ή ένας μηχανικός μπορεί να ρωτήσει γιατί εμφανίστηκε αυτή η τιμή, σίγουρα έχει. Σε εκείνο το σημείο, ο υπολογισμός δεν είναι πλέον μια εσωτερική λεπτομέρεια υλοποίησης. Είναι μέρος της ιστορίας που αφηγείται το προϊόν.

Γι' αυτό το Numerus δεν είναι απλώς μια βιβλιοθήκη μαθηματικών αφηρημένα. Είναι ένα στοιχείο μιας αρχιτεκτονικής τεκμηρίωσης. Δίνει σε άλλα συστήματα ένα πιο ήρεμο αριθμητικό επίπεδο για να σταθούν. Το Reed μπορεί να αναλύει πηγαίο κώδικα με αποδείξεις. Το Ledger μπορεί να καταγράφει γεγονότα. Το BitWeave μπορεί να κάνει την ανάκτηση ντετερμινιστική. Το HEDL μπορεί να κάνει τα δομημένα δεδομένα λιγότερο σπάταλα. Το Numerus κάνει την αριθμητική λιγότερο ολισθηρή. Κάθε κομμάτι αφαιρεί ένα σημείο όπου το σύστημα θα συμβιβαζόταν διαφορετικά.

Το μάθημα

Το μάθημα του Numerus είναι ότι οι αριθμοί είναι συμπεριφορά προϊόντος. Όχι απλώς λεπτομέρεια υλοποίησης. Όχι απλώς μαθηματικά. Συμπεριφορά. Αν η ίδια είσοδος μπορεί να παράγει διαφορετική απάντηση όταν μετακινηθεί σε άλλο υποστηριζόμενο περιβάλλον, αυτή η διαφορά ανήκει πλέον στο προϊόν.

Η ντετερμινιστική αριθμητική δεν απαιτείται πάντα. Όταν απαιτείται, θα έπρεπε να σχεδιάζεται εξαρχής και όχι να ζητιέται εκ των υστέρων. Επιλέξτε σαφείς αριθμητικές οικογένειες. Επαληθεύστε με ένα σημείο αναφοράς. Δοκιμάστε τις ακραίες περιπτώσεις. Σεβαστείτε τους περιορισμούς ανάπτυξης. Έχετε κατά νου την αναπαραγωγή πριν το πρώτο αναφορά περιστατικού κάνει τους πάντες ξαφνικά φιλοσοφημένους.

Το Numerus είναι χρήσιμο επειδή μετατρέπει την αριθμητική σε ένα συμβόλαιο στο οποίο μπορεί να βασιστεί το υπόλοιπο σύστημα. Το Binary, το Ternary, το Integer, το Fixed, το Float, το Decimal και το AXIOM δεν είναι συνθήματα. Είναι τρόποι να διαμορφώσετε τους αριθμούς ώστε η ίδια απάντηση να μπορεί να εμφανιστεί δύο φορές, επίτηδες. Το AXIOM έχει τη δική του βαθύτερη ιστορία, επειδή είναι το σημείο όπου το ίδιο το ζητούμενο αρχίζει να κινείται ενώ το συμβόλαιο παραμένει ντετερμινιστικό. Αυτό δεν είναι εντυπωσιακό. Είναι καλύτερο από εντυπωσιακό. Είναι το είδος της βαρετής σταθερότητας που επιτρέπει στα σοβαρά συστήματα να κοιμούνται ήσυχα τη νύχτα.