Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Εφαρμογές της Λογικής στην Πληροφορική Ενότητα 5 Πέτρος Στεφανέας, Γεώργιος Κολέτσος
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε Άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναγράφεται ρητώς.
ΑΛΓΕΒΡΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ Τυπικές Μέθοδοι Ο όρος Τυπικές Μέθοδοι (Formal Methods) αναφέρεται σε τεχνικές σχεδιασμού συστημάτων οι οποίες χρησιμοποιούν αυστηρά (τυπικά) μαθηματικά εργαλεία για την κατασκευή μοντέλων λογισμικού και υλικού υπολογιστών (software, hardware).
Σε αντίθεση με άλλες μεθοδολογίες σχεδιασμού, οι τυπικές μέθοδοι χρησιμοποιούν μαθηματικές αποδείξεις συμπληρωματικά με τον έλεγχο μέσω τεστ ενός συστήματος έτσι ώστε να διασφαλίσουν τη σωστή του συμπεριφορά.
Καθώς τα υπολογιστικά συστήματα γίνονται όλο και πιο σύνθετα και η σωστή τους λειτουργία παρουσιάζει όλο και περισσότερη σημασία (αυτόματοι πιλότοι, ιατρικά συστήματα κτλ.) η χρήση των τυπικών μεθόδων κατά το σχεδιασμό ενός συστήματος προσφέρει ένα πολύ καλύτερο επίπεδο εμπιστοσύνης στα συστήματα αυτά.
Η κυριότερη διαφορά μεταξύ των Τυπικών και άλλων μεθόδων σχεδιασμού συστημάτων είναι η τυπική επαλήθευση του συστήματος. Η ορθότητά του σχεδιασμού και οι ιδιότητες του συστήματος αποδεικνύονται με μαθηματικό τρόπο στις Τυπικές Μεθόδους, ενώ με άλλες μεθοδολογίες σχεδιασμού γίνεται μόνο έλεγχος μέσω πειραμάτων.
Τα πειράματα αυτά μπορούν δηλαδή να δείξουν ότι κάτω από ορισμένες συνθήκες ένα σύστημα δεν θα αποτύχει, αλλά δεν μπορούν να εξασφαλίσουν τη συμπεριφορά του εκτός αυτών των συνθηκών. Αντίθετα, όταν ένα θεώρημα αποδειχθεί ότι ισχύει θα ισχύει πάντα.
Σε γενικές γραμμές ο τυπικός σχεδιασμός ενός συστήματος μπορεί να θεωρηθεί ότι αποτελείται από τα τρία παρακάτω βήματα: 1. Τυπική Προδιαγραφή 2. Επαλήθευση 3. Υλοποίηση
ΑΛΓΕΒΡΙΚΕΣ ΠΡΟΔΙΑΓΡΑΦΕΣ Με τον όρο Αλγεβρικές Προδιαγραφές (Algebraic specification) αναφερόμαστε σε μία από τις μεθοδολογίες των τυπικών μεθόδων η οποία υιοθετεί ως σημασιολογία για τις προδιαγραφές που ορίζει διάφορες άλγεβρες (κυρίως Άλγεβρα με πολλούς τύπους και διάταξη).
Η κεντρική ιδέα πίσω από αυτή τη μεθοδολογία είναι ότι οι τύποι δεδομένων και τα συστήματα πρέπει να χαρακτηρίζονται μόνο από τη συμπεριφορά των στοιχείων που ανήκουν σε αυτούς, χωρίς καμία αναφορά στην αναπαράσταση/υλοποίηση τους.
Με άλλα λόγια, χρησιμοποιώντας αλγεβρικές προδιαγραφές ορίζουμε ένα σύστημα, τυπικά, ως ένα σύνολο από τύπους δεδομένων και τελεστές πάνω σε αυτούς τους τύπους. Οι τελεστές αυτοί χωρίζονται συνήθως σε κατασκευαστές constructors) και επιπρόσθετους τελεστές.
Οι πρώτοι δημιουργούν και αρχικοποιούν τα στοιχεία των τύπων που ορίζουν είτε ορίζουν πιο σύνθετα στοιχεία από απλούστερα, ενώ οι δεύτεροι ορίζουν πράξεις πάνω στους τύπους δεδομένων χρησιμοποιώντας όρους από τους κατασκευαστές.
Για να το επιτύχει αυτό κάθε αλγεβρική προδιαγραφή ορίζει μία λίστα από ονόματα και τύπους για ένα σύνολο από τελεστές (η λίστα αυτή ονομάζεται χαρακτηριστική της προδιαγραφής) και ένα σύνολο εξισώσεων το οποίο προσδιορίζει τη σημασιολογία των τελεστών αυτών (οι εξισώσεις αυτές συνήθως καλούνται τα αξιώματα της χαρακτηριστικής).
Η ΟΙΚΟΓΕΝΕΙΑ ΤΩΝ ΓΛΩΣΣΩΝ OBJ Ο όρος γλώσσα (OBJ), αναφέρεται σε μια οικογένεια γλωσσών αλγεβρικού προγραμματισμού και προδιαγραφών οι οποίες βασίζονται στην εξισωτική λογική με τύπους και διάταξη (order sorted equational logic) και είναι συνήθως εμπλουτισμένες με άλλες μορφές λογικής, όπως λογική αναγραφών (rewriting logic), ή πρωτοβάθμια λογική (first order logic).
Τα κυριώτερα μέλη της οικογένειας αυτής είναι οι γλώσσες OBJ), OBJ3, CafeOBJ, και BOBJ. Το τμηματικό σύστημα, των γλωσσών αυτών βασίστηκε σε πρωτοπόρες ιδέες οι οποίες είχαν υλοποιηθεί στη γλώσσα CLEAR από τον Joseph Goguen και τον Rod Burstall στη δεκαετία του 1970.
Κοινά χαρακτηριστικά όλων των γλωσσών OBJ αποτελούν: Η σημασιολογία σε λογικά συστήματα. Υποστήριξη σύνταξης mixfix η οποία μπορεί να οριστεί από το χρήστη, ορισμός τρατηγικών εκτέλεσης οι οποίες ορίζονται από τον χρήστη και αναγραφή των όρων. Παροχή δυνατοτήτων παραμετροποιημένου προγραμματισμού.
Η Γλώσσα CafeOBJ Η CafeOBJ είναι μία νέας γενιάς γλώσσα αλγεβρικών προδιαγραφών η οποία έχει αναπτυχθεί στην Ιαπωνία. Η CafeOBJ διατηρεί πολλά από τα χαρακτηριστικά της OBJ3, όπως η μικτή σύνταξη των τελεστών, ο ορισμός υποτύπων με βάση τη διάταξη σε αυτούς, και τμηματικό σύστημα.
Προσθέτει νέα στοιχεία στην Κρυφή Άλγεβρα hidden algebra), τη λογική των αναγραφών (rewriting logic) και σε συνδυασμούς με την άλγεβρα με πολλούς τύπους και διάταξη. Αυτή η προσέγγιση περικλείει πολλά διαφορετικά λογικά συστήματα και έχει ορισθεί με πολύ κομψό μαθηματικό τρόπο χρησιμοποιώντας εμφυτεύσεις της θεωρίας Θεσμών (Institution Theory).
Όσο αφορά τις δυνατότητες απόδειξης της γλώσσας, η CafeOBJ υποστηρίζει αναγραφή με βάση συμπεριφοριακές θεωρίες και συνεπαγωγή ιδιοτήτων.
Η Γλώσσα Maude Η Maude συμπεριλαμβάνει τα περισσότερα χαρακτηριστικά της OBJ3, συνήθως με μικρές συντακτικές αλλαγές, και προσθέτει μία υλοποίηση της λογικής αναγραφής, χρησιμοποιώντας μία πολύ δυνατή μηχανή αναγραφών και γενίκευση της σχέσης μέλους της εξισωτικής λογικής (με πολλούς τύπους και διάταξη).
Η ομάδα CoFI και η γλώσσα CASL Η ομάδα CoFI η οποία αποτελείται επι το πλείστον από Ευρωπαίους επιστήμονες της θεωρητικής επιστήμης των υπολογιστών, έχει σχεδιάσει και υλοποιήσει μια κοινή γλώσσα αλγεβρικών προδιαγραφών που ονομάζεται CASL (Common Algebraic Specification Language).
CafeOBJ Είναι μία εκτελέσιμη γλώσσα αλγεβρικών προδιαγραφών βιομηχανικής δύναμης. Είναι απόγονος της OBJ και ενσωματώνει νέες μεθόδους αλγεβρικών προδιαγραφών. Η CafeOBJ αναπτύχθηκε κυρίως για τη προδιαγραφή συστημάτων, για την απόδειξη ιδιοτήτων των συστημάτων αυτών, για προγραμματισμό κτλ.
Μερικά από τα χαρακτηριστικά της γλώσσας είναι: Εξισωτικές προδιαγραφές και προγραμματισμός Συμπεριφοριακές προδιαγραφές Προδιαγραφές με βάση τη λογική των αναγραφών Τμηματικό σύστημα προδιαγραφών Αυστηρός έλεγχος τύπων και μερικότητας αυτών
Μη-ντετερμινισμός Σύνθεση συμπεριφοριακών αντικειμένων Συγχρονισμός αντικειμένων Η CafeOBJ είναι κατα βάση μία δηλωτική γλώσσα με αυστηρά μαθηματικά και λογικά θεμέλια (όπως και όλα τα μέλη της οικογένειας γλωσσών OBJ). Στηρίζεται σε τελευταίας τεχνολογίας τεχνικές αλγεβρικών προδιαγραφών, θεωρίας κατηγοριών και θεωρίας θεσμών.
Οι κυριότερες αρχές με τις οποίες δημιουργήθηκε η γλώσσα είναι οι εξής: [ ] Η ύπαρξη μίας μαθηματικής λογικής με βάση την οποία όλα τα κατασκευάσματα της γλώσσας και οι ιδιότητές της μπορούν να εξηγηθούν αυστηρά [ ] Να παρέχει ένα συνεπή, περιεκτικό και ενιαίο τρόπο για τη σημασιολογία των προδιαγραφών που γράφονται σε αυτή
[ ] Να επιτρέπει τη δημιουργία όλων των εννοιών και συμπερασμάτων της στο μεγαλύτερο δυνατό επίπεδο αφαίρεσης Έτσι λοιπόν δημιουργήθηκε σαν μία πολυπαραδειγματική γλώσσα. Καθένα από τα κύρια παραδείγματα χρήσης της βασίζεται σε κάποια λογική. Τα παραδείγματα που προκύπτουν από τους συνδυασμούς αυτών των κύριων χαρακτηριστικών βασίζονται στου συνδυασμούς των αντίστοιχων λογικών.
Συντακτικό Θα δούμε το συντακτικό της χρησιμοποιώντας ένα παράδειγμα ορισμού μιας απλής προδιαγραφής των φυσικών αριθμών: mod! SNat{ pr(eql) -- sorts [SNat]
-- operations op 0 : -> SNat. op s : SNat -> SNat. -- variables vars N M : SNat. -- axioms eq (s(n) = 0) = false. ceq (S(M) = S(N)) = true if (M = N) }
Με τη λέξη κλειδί mod δηλώνουμε την αρχή μίας προδιαγραφής που θα βρίσκεται μέσα στο σώμα του mod, δηλαδή ανάμεσα από τα. Ο χαρακτήρας! ή {*} μετά από τη λέξη κλειδί mod δηλώνει ότι η προδιαγραφή που θα ακολουθήσει θα έχει είτε πρωταρχική είτε χαλαρή σημασιολογία (δηλαδή τα μοντέλα που ικανοποιούν την προδιαγραφή και όχι μόνο τα ισομορφικά με το πρωταρχικό μοντέλο).
Tελεστές. Τα ονόματα των τύπων που ορίζει η προδιαγραφή δηλώνονται μέσα σε αγκύλες (π.χ. [SNat]). Ένα σύμβολο <, ανάμεσα στα ονόματα δύο τύπων δηλώνει ότι ο ένας είναι υποτύπος του άλλου.
Εξισώσεις. Η λέξη κλειδί eq σηματοδοτεί την έναρξη του ορισμού μίας εξίσωσης, στην οποία το δεξί της μέρος δηλώνεται πριν από το σύμβολο = ενώ το αριστερό μετά από αυτό. Το τέλος της δήλωσης μιας εξίσωσης σηματοδοτείται από μία τελεία.
Μεταβλητές. Οι μεταβλητές δηλώνονται χρησιμοποιώντας τη λέξη κλειδί var ακολουθούμενη από το όνομα της μεταβλητής, μία άνω και κάτω τελεία και το τύπο της μεταβλητής. Είναι δυνατόν να συμπτύξουμε τους ορισμούς πολλών μεταβλητών ίδιου τύπου σε μία γραμμή χρησιμοποιώντας τη λέξη κλειδί vars.
Ακόμα είναι δυνατό να χρησιμοποιήσουμε σε μία εξίσωση μεταβλητές που δεν έχουν οριστεί προηγουμένως, απλά δηλώνοντας το τύπο και το όνομα της μεταβλητής μέσα στην εξίσωση. Αυτή η μεθοδολογία καλείται επιτόπου δήλωση μεταβλητών.
Εξισώσεις υπό συνθήκη. Ακόμα η δήλωση μίας υπό-συνθήκης εξίσωσης γίνεται με τη χρήση της κωδικής λέξης ceq, που ακολουθείται από μία εξίσωση στο τέλος της οποίας βρίσκεται μία έκφραση της μορφής if P, όπου P είναι κάποιο κατηγόρημα.
Ισότητες. Τέλος στη γλώσσα ορίζονται δύο ειδών ισότητες μέσω δύο κατηγορημάτων. Ο πρώτος τελεστής ισότητας ορίζεται ως =, ενώ ο δεύτερος ως ==. Και οι δύο τελεστές επιστρέφουν true αν τα δύο τους ορίσματα μπορούν να αναγραφούν (με βάση το σύστημα αναγραφής της γλώσσας) στον ίδιο όρο.
Σχόλια. Τέλος οι γραμμές που αρχίζουν με -- αποτελούν σχόλια και αγνοούνται από τη μηχανή.
Τμηματικό σύστημα προδιαγραφών (Module System). Το τμηματικό σύστημα της γλώσσας μας επιτρέπει τη χρήση διαφόρων ειδών εισαγωγής άλλων προδιαγραφών στη θεωρία που ορίζουμε (μέσω των λέξεων κλειδιών pr, ex, ) και παραμετρικού προγραμματισμού: πολλαπλές παραμέτρους σε μία προδιαγραφή views για την αρχικοποίηση των παραμέτρων
Σύστημα τύπων. Το σύστημα τύπων της CafeOBJ είναι βασισμένο στην άλγεβρα με πολλούς τύπους και διάταξη (ΑΤΔ) έτσι επιτρέπει τον ορισμό υποτύπων. Αυτό προσφέρει αυστηρό έλεγχο των τύπων της προδιαγραφής καθώς και μία μεθοδολογία για τον χειρισμό σφαλμάτων βασισμένη σε αυτό.
Ακόμα αυτό το σύστημα επιτρέπει συντακτική ευελιξία στη γλώσσα συγκρίσιμη με αυτή των γλωσσών χωρίς τύπους ενώ ταυτόχρονα διατηρεί όλα τα πλεονεκτήματα των τύπων. Η CafeOBJ δεν επιτρέπει τον απευθείας τον ορισμό μερικών τελεστών. Για να μπορέσουμε να ορίσουμε τέτοιους τελεστές μπορούμε να χρησιμοποιήσουμε το σύστημα των υποτύπων που μας προσφέρει η γλώσσα.
Behavioural Specifications. Η CafeOBJ υποστηρίζει απευθείας τις συμπεριφοριακές προδιαγραφές και την θεωρία αποδείξεών τους μέσω ειδικών κατασκευασμάτων της γλώσσας. Πιο συγκεκριμένα ένας κρυφός τύπος ορίζεται μέσα σε αγκύλες περιβαλόμενες από αστερίσκους, δηλαδή [* hiddensortnames*].
Η σημασιολογία ενός τέτοιου τύπου είναι αυτή της κρυφής άλγεβρας δηλαδή αυτή των καταστάσεων ενός συστήματος. Οι συμπεριφοριακοί τελεστές (behavioral operations) που όπως είπαμε περιέχουν στο πεδίο ορισμού τους ένα κρυφό τύπο ορίζονται με τη λέξη κλειδί bop.
Αυτοί οι τελεστές κατά αντιστοιχία με τη κρυφή άλγεβρα μπορούν να διαχωριστούν σε παρατηρήσεις όταν ο τύπος του συνόλου τιμών τους είναι ορατός και σε πράξεις όταν είναι κρυφός.
Η CafeOBJ διευκολύνει τις αποδείξεις που γίνονται με τη μέθοδο της συνεπαγωγής ορίζοντας απευθείας μία σχέση ισοδυναμίας σε κάθε κρυφή προδιαγραφή η οποία συμβολίζεται ώς =*=.
Στη συνέχεια η μηχανή της γλώσσας προσπαθεί να αποδείξει αυτόματα ότι η σχέση αυτή είναι Γ-διατηρητική (χρησιμοποιώντας ώς Γ όλους τους συμπεριφοριακούς τελεστές) και ενημερώνει για το αποτέλεσμα της απόδειξης.
Αν η μηχανή επιτύχει στην απόδειξή της τότε η σχέση $=*=$ μπορεί να χρησιμοποιηθεί σαν κρυφή ισοδυναμία για την απόδειξη συμπεριφοριακών ιδιοτήτων με τη μέθοδο της συνεπαγωγής.
Εκτός από τα ειδικά κατασκευάσματα η CafeOBJ υποστηρίζει τις συμπεριφοριακές προδιαγραφές και την απόδειξη ιδιοτήτων γι' αυτές με διάφορες άλλες μεθοδολογίες και συγκεκριμένα κυρίως μέσω της συμπεριφοριακής αναγραφής (behavioral rewriting).
Δηλαδή η μηχανή υλοποιεί τους κανόνες αναγραφής (ο πιο σημαντικός από τους οποίους είναι η χρήση του κανόνα της ισοδυναμίας μόνο σε συμπεριφοριακά διατηρητικούς τελεστές) εξασφαλίζοντας έτσι την ορθότητα των αποδείξεων που δημιουργούνται χρησιμοποιώντας το σύστημα αναγραφής.
Προδιαγραφές βασισμένες σε λογική αναγραφής Η λογική του συστήματος αναγραφής της CafeOBJ βασίζεται στη λογική αναγραφής (RWL) του Meseguer η οποία δίνει μία μη τετριμμένη επέκταση στις παραδοσιακές αλγεβρικές προδιαγραφές επιτρέποντας έννοιες όπως ο παραλληλισμός των υπολογισμών.
Η RWL ενσωματώνει πολλά διαφορετικά μοντέλα παραλληλισμού με ένα απλό και φυσικό τρόπο και έτσι παρέχει στην CafeOBJ ευρύ πεδίο εφαρμογών. Η γλώσσα επιτρέπει την απόδειξη ιδιοτήτων για την ύπαρξη μεταβάσεων ανάμεσα από καταστάσεις συστημάτων μέσω του τελεστή ==> ο οποίος ενσωματώνει τη θεωρίας αποδείξεων της RWL με την εξισωτική λογική.
Συστήματα Παρατηρήσεων Μεταβάσεων (Observational Transition Systems) - Αναλλοίωτες ιδιότητες (Ιnvariant properties) Τα Συστήματα Παρατηρήσεων Μεταβάσεων (ΣΠΜ) αποτελούν μία γνήσια υπό-κλάση των συμπεριφοριακών προδιαγραφών. Παρόλ' αυτά είναι ικανά να περιγράψουν μία πληθώρα προβλημάτων και για αυτό το λόγο έχουν χρησιμοποιηθεί πολύ στη βιβλιογραφία.
Πιο συγκεκριμένα, υποθέτουμε ότι υπάρχει ένας χώρος καταστάσεων, τον οποίο συνήθως συμβολίζουμε με Υ. Ακόμα υποθέτουμε ότι όλοι οι τύποι δεδομένων που θα χρειαστεί να χρησιμοποιήσουμε έχουν οριστεί εκ των προτέρων συμπεριλαμβανομένης και της ισότητας μεταξύ των στοιχείων του ίδιου τύπου δεδομένων.
Ένα σύστημα περιγράφεται σαν ένα ΣΠΜ παρατηρώντας από κάποιο εξωτερικό ως προς το σύστημα σημείο την κατάσταση του. Δηλαδή, το μόνο που μπορούμε να παρατηρήσουμε είναι οι τιμές κάποιων πειραμάτων που μπορούμε να διεξάγουμε και το πώς αυτές οι τιμές αλλάζουν όταν εφαρμοστούν οι κανόνες μετάβασης του συστήματος.
Η αντιστοιχία με τις συμπεριφοριακές προδιαγραφές είναι προφανής, τα διάφορα πειράματα αντιστοιχούν στους τελεστές παρατήρησης ενώ οι κανόνες μετάβασης στις μεθόδους.
Ένα ΣΠΜ ορίζεται ως μία τριάδα, S=<O, I, T> όπου: 1. O, είναι ένα σύνολο από πειράματα, κάθε τέτοιο πείραμα, o O, ορίζει μία συνάρτηση o: Y D όπου D είναι κάποιος τύπος δεδομένων που μπορεί να είναι διαφορετικός για κάθε πείραμα.
2. I, αποτελεί ένα υποσύνολο του συνόλου όλων των πιθανών καταστάσεων του συστήματος, Y, το οποίο συνήθως ονομάζουμε σύνολο των αρχικών καταστάσεων. 3. T, ένα σύνολο από υπό-συνθήκη κανόνες μετάβασης. Κάθε τέτοιος κανόνας τ T ορίζει μία συνάρτηση πάνω στις κλάσεις ισοδυναμίας του χώρου των καταστάσεων με βάση το ΣΠΜ.
Ακόμα μαζί με κάθε κανόνα μετάβασης ορίζεται και μία συνθήκη που τη συμβολίζουμε συνήθως ως c-τ η οποία είναι ένα κατηγόρημα πάνω στις καταστάσεις του Y τέτοιο ώστε να ισχύει ότι τ(u) = u αν c-τ(u).
Ένα ΣΠΜ μπορεί να περιγραφεί με φυσικό τρόπο στη CafeOBJ. Τα πειράματα αναπαριστώνται από τελεστές παρατήρησης και οι κανόνες μετάβασης με συμπεριφοριακούς τελεστές με κρυφό τύπο. Συνήθως οι παρατηρήσεις αυτές και οι κανόνες μετάβασης είναι παραμετρικοί.
Δεδομένου τώρα ενός ΣΠΜ θα αποκαλούμε εκτέλεση μια άπειρη ακολουθία από καταστάσεις u0,,un, οι οποίες ικανοποιούν τις ακόλουθες συνθήκες: (Αρχικοποίηση) u0 I (Διαδοχή) όλες οι καταστάσεις προκύπτουν από την προηγούμενη κατάσταση της ακολουθίας εφαρμόζοντας κάποιο κανόνα μετάβασης.
Θα λέμε ότι μία κατάσταση είναι προσβάσιμη (reachable) ανν εμφανίζεται ως μέρος κάποιας εκτέλεσης του S. Με RS θα συμβολίζουμε το σύνολο όλων των προσβάσιμων καταστάσεων του S. Μια ιδιότητα θα καλείται αναλλοίωτη (invariant), όσον αφορά το S, ανν ισχύει για όλες τις προσιτές καταστάσεις του S.
Η μέθοδος των Proof Scores Η επαλήθευση ότι ο σχεδιασμός ενός συστήματος (ΣΠΜ) πληρεί κάποιες ιδιότητες ασφαλείας τις περισσότερες φορές ανάγεται στην απόδειξη ότι η προδιαγραφή ικανοποιεί ένα σύνολο από αναλλοίωτες ιδιότητες invariant properties, δηλαδή ιδιότητες που ισχύουν σε κάθε κατάσταση του συστήματος.
Έτσι η απόδειξη αναλλοίωτων ιδιοτήτων για συμπεριφοριακές προδιαγραφές ορισμένες με όρους της CafeOBJ βασίζεται στην μεθοδολογία που ονομάζεται Proof Scores. Η μεθοδολογία των Proof Scores χαρακτηρίζεται ως διαδραστική μεταξύ του χρήστη και του υπολογιστή.
Ο χρήστης γράφει με κατάλληλο τρόπο το πλάνο της απόδειξης και ο υπολογιστής την εκτελεί αναλαμβάνοντας όλους τους κουραστικούς υπολογισμούς και απαντάει με true ή false ανάλογα με το αν επιτυγχάνει το πλάνο της απόδειξης.
Χρηματοδότηση - Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. - Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα Ε.Μ.Π.» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. - Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικού πόρους.