ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Αντώνιος Δ. Γουγλίδης

Σχετικά έγγραφα
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

CTL - Λογική Δένδρου Υπολογισμού (ΗR Κεφάλαιο 3.4)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

ΕΠΑΝΑΛΗΠΤΙΚΕΣ ΑΣΚΗΣΕΙΣ ΣΤΗ CTL/LTL

CTL - Λογική Δένδρου Υπολογισμού

Περιεχόμενα 1 Πρωτοβάθμια Λογική Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων ) / 60

ΧΡΟΝΙΚΗ ΛΟΓΙΚΗ Ι ΤΥΠΙΚΕΣ ΜΕΘΟΔΟΙ ΑΝΑΛΥΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ Α.Π.Θ. ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ. 29 Ιουνίου 2007 ΔΙΑΦΑΝΕΙΑ 1

Γραμμική και διακλαδωμένη χρονική λογική

, για κάθε n N. και P είναι αριθμήσιμα.

4. Ο,τιδήποτε δεν ορίζεται με βάση τα (1) (3) δεν είναι προτασιακός τύπος.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Σημειώσεις Λογικής I. Εαρινό Εξάμηνο Καθηγητής: Λ. Κυρούσης

Λύσεις Σειράς Ασκήσεων 4

Σειρά Προβλημάτων 1 Λύσεις

ΠΡΟΔΙΑΓΡΑΦΗ ΙΔΙΟΤΗΤΩΝ ΜΕ ΧΡΟΝΙΚΗ ΛΟΓΙΚΗ Ι

Μηχανισµοί & Εισαγωγή στο Σχεδιασµό Μηχανών Ακαδηµαϊκό έτος: Ε.Μ.Π. Σχολή Μηχανολόγων Μηχανικών - Εργαστήριο υναµικής και Κατασκευών - 3.

ΗΥ180: Λογική Διδάσκων: Δημήτρης Πλεξουσάκης. Φροντιστήριο 8 Επίλυση για Horn Clauses Λογικός Προγραμματισμός Τετάρτη 9 Μαΐου 2012

Πληρότητα της μεθόδου επίλυσης

4.3 Ορθότητα και Πληρότητα

f(t) = (1 t)a + tb. f(n) =

ΟΙΚΟΝΟΜΟΤΕΧΝΙΚΗ ΑΝΑΛΥΣΗ ΕΝΟΣ ΕΝΕΡΓΕΙΑΚΑ ΑΥΤΟΝΟΜΟΥ ΝΗΣΙΟΥ ΜΕ Α.Π.Ε

Αυτοματοποιημένη Επαλήθευση

Μαθηματική Λογική και Λογικός Προγραμματισμός

Κατηγορηματικός Λογισμός (ΗR Κεφάλαιο )

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Δημήτρης Πλεξουσάκης

Μαθηματική Λογική και Λογικός Προγραμματισμός

Περί της Ταξινόμησης των Ειδών

Μη γράφετε στο πίσω μέρος της σελίδας

Σειρά Προβλημάτων 4 Λύσεις

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Μαθηματική Λογική και Λογικός Προγραμματισμός

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ. ΤΜΗΜΑ ΠΜΣ.. ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ο ΤΙΤΛΟΣ ΤΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗΣ ΕΡΓΑΣΙΑΣ ΜΕ ΚΕΦΑΛΑΙΑ ΓΡΑΜΜΑΤΑ ΚΑΙ ΣΤΟΙΧΙΣΗ ΣΤΟ ΚΕΝΤΡΟ

Επανάληψη. ΗΥ-180 Spring 2019

Θεωρία Υπολογισμού Άρτιοι ΑΜ. Διδάσκων: Σταύρος Κολλιόπουλος. eclass.di.uoa.gr. Περιγραφή μαθήματος

Θεωρία Υπολογισμού Αρτιοι ΑΜ Διδάσκων: Σταύρος Κολλιόπουλος eclass.di.uoa.gr

Μαθηματική Λογική και Λογικός Προγραμματισμός

Ισοδυναμία Αιτ. Και μη Αιτ. Π.Α.

HY Λογική Διδάσκων: Δ. Πλεξουσάκης

Ασκήσεις μελέτης της 8 ης διάλεξης

ψ φ2 = k χ φ2 = 4k χ φ1 = χ φ1 + χ φ2 + 3 = 4(k 1 + k 2 + 1) + 1 ψ φ1 = ψ φ1 + χ φ2 = k k = (k 1 + k 2 + 1) + 1

Μεταγλωττιστές. Ενότητα 2: Τυπικές γλώσσες (Μέρος 1 ο ) Αγγελική Σγώρα Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συγγραφή κώδικα, δοκιμασία, επαλήθευση. Γιάννης Σμαραγδάκης

Σειρά Προβλημάτων 1 Λύσεις

p p p q p q p q p q

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Άλγεβρες ιεργασιών και Τροπικές Λογικές

Άλγεβρες Διεργασιών και Σχέσεις Ισοδυναμίας

HY118-Διακριτά Μαθηματικά

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 6: Προτασιακός Λογισμός

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Κανονικές Γλώσσες. ιδάσκοντες: Φ. Αφράτη,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 28/02/2019 Ζωγραφιστού Δήμητρα

Αλγόριθµοι και Πολυπλοκότητα

Aλγεβρα A λυκείου α Τομος

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

Κανονικές Γλώσσες. Κανονικές Γλώσσες. Κανονικές Γλώσσες και Αυτόματα. Κανονικές Γλώσσες και Αυτόματα

Λύσεις Σειράς Ασκήσεων 4

«Αξιολόγηση ατόμων με αφασία για Επαυξητική και Εναλλακτική Επικοινωνία, σύμφωνα με το μοντέλο συμμετοχής»

ΕΠΛ664 ΑΝΑΛΥΣΗ ΚΑΙ ΕΠΑΛΗΘΕΥΣΗ ΣΥΣΤΗΜΑΤΩΝ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Λογική. Ενότητα 1: Εισαγωγή. Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών

Ασκήσεις Επανάληψης Λύσεις

Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Ασκήσεις Επανάληψης Λύσεις

HY118-Διακριτά Μαθηματικά. Προτασιακός Λογισμός. Προηγούμενη φορά. Βάσεις της Μαθηματικής Λογικής. 02 Προτασιακός Λογισμός

Μορφολογική Παραγωγή. 3 ο φροντιστήριο ΗΥ180 Διδάσκων: Δ. Πλεξουσάκης Τετάρτη 08/03/2018 Ζωγραφιστού Δήμητρα

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

Υπολογιστικά & Διακριτά Μαθηματικά

"My Binary Logic" Ένας προσομοιωτής λογικών πυλών στο Scratch

Δώστε έναν επαγωγικό ορισμό για το παραπάνω σύνολο παραστάσεων.

ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΝΟΙΕΣ. Η συνεπαγωγή. Η Ισοδυναμία ή διπλή συνεπαγωγή. Ο σύνδεσμος «ή» Ο σύνδεσμος «και»

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διερευνητική μάθηση We are researchers, let us do research! (Elbers and Streefland, 2000)

K15 Ψηφιακή Λογική Σχεδίαση 3: Προτασιακή Λογική / Θεωρία Συνόλων

Μαθηματική Λογική και Λογικός Προγραμματισμός

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία ΟΛΙΣΘΗΡΟΤΗΤΑ ΚΑΙ ΜΑΚΡΟΥΦΗ ΤΩΝ ΟΔΟΔΤΡΩΜΑΤΩΝ ΚΥΚΛΟΦΟΡΙΑΣ

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (2)

ΗΥ Λογική. Διδάσκων: Δημήτρης Πλεξουσάκης Καθηγητής

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

Πρόβλημα 29 / σελίδα 28

Προτασιακή Λογική. Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Ηπείρου Γκόγκος Χρήστος

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

ΕΡΩΤΗΣΕΙΣ ΚΛΕΙΣΤΟΥ Ή ΑΝΤΙΚΕΙΜΕΝΙΚΟΥ ΤΥΠΟΥ

Ηλεκτρονικός οδηγός για τους φοιτητές ενός Α.Ε.Ι.

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Λογική. Φροντιστήριο 3: Συνεπαγωγή/Ισοδυναμία, Ταυτολογίες/Αντινομίες, Πλήρης Αλγόριθμος Μετατροπής σε CNF

ΕΝΑΣ ΔΙΚΡΙΤΗΡΙΟΣ ΑΛΓΟΡΙΘΜΟΣ SIMPLEX

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Τεχνητή Νοημοσύνη. 8η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Τεχνητή Νοημοσύνη. 7η διάλεξη ( ) Ίων Ανδρουτσόπουλος.

Ασκήσεις μελέτης της 6 ης διάλεξης

CTL Έλεγχος Μοντέλου (ΗR Κεφάλαιο 3.5 και 3.6.1)

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

Αλγόριθμοι και Πολυπλοκότητα

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΘΕΩΡΗΤΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΙ ΘΕΩΡΙΑ ΣΥΣΤΗΜΑΤΩΝ ΕΛΕΓΧΟΥ Γραμμική και μη-γραμμική λογική: Σύγκριση και πρακτικές εφαρμογές ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Αντώνιος Δ. Γουγλίδης Επιβλέπων: Γεώργιος Ραχώνης Αναπλ. Καθηγητής Α.Π.Θ. Εγκρίθηκε από την τριμελή εξεταστική επιτροπή την 19η Μαρτίου 2014. Αθανάσιος Πάπιστας Δημήτριος Πουλάκης Γεώργιος Ραχώνης Καθηγητής Α.Π.Θ. Καθηγητής Α.Π.Θ. Αναπλ. Καθηγητής Α.Π.Θ. Θεσσαλονίκη, Μάρτιος 2014

.. Αντώνιος Δ. Γουγλίδης Copyright Αντώνιος Δ. Γουγλίδης, 2014. Με επιφύλαξη παντός δικαιώματος. All rights reserved. Απαγορεύεται η αντιγραφή, αποθήκευση και διανομή της παρούσας εργασίας, εξ ολοκλήρου ή τμήματος αυτής, για εμπορικό σκοπό. Επιτρέπεται η ανατύπωση, αποθήκευση και διανομή για σκοπό μη κερδοσκοπικό, εκπαιδευτικής ή ερευνητικής φύσης, υπό την προϋπόθεση να αναφέρεται η πηγή προέλευσης και να διατηρείται το παρόν μήνυμα. Ερωτήματα που αφορούν τη χρήση της εργασίας για κερδοσκοπικό σκοπό πρέπει να απευθύνονται προς τον συγγραφέα. Οι απόψεις και τα συμπεράσματα που περιέχονται σε αυτό το έγγραφο εκφράζουν τον συγγραφέα και δεν πρέπει να ερμηνευτεί ότι εκφράζουν τις επίσημες θέσεις του Α.Π.Θ.

Στην σύζυγό μου Ελένη και στους γιούς μου Δημήτριο και Ιωάννη.

Ευχαριστίες Θα ήθελα να ευχαριστήσω τον επιβλέποντα καθηγητή μου Αναπληρωτή Καθηγητή Γεώργιο Ραχώνη, για τις συμβουλές του, την καθοδήγησή του, καθώς και του ότι μου παρείχε απόλυτη ελευθερία στις κινήσεις μου και τις επιλογές μου, δείχνοντας αμέριστη εμπιστοσύνη προς το πρόσωπό μου. Επίσης, είμαι ευγνώμων στα υπόλοιπα μέλη της εξεταστικής επιτροπής της διπλωματικής μου, Καθηγητές κκ. Πάπιστα Αθανάσιο και Πουλάκη Δημήτριο, για την προσεκτική ανάγνωση της εργασίας μου και για τις πολύτιμες υποδείξεις τους. Επίσης θα ήθελα να ευχαριστήσω τους συμφοιτητές μου: Αλέξη Κυριακίδη, Ανδρομάχη Νιτσιοπούλου, Ευαγγελία Αραμπατζή, Ευαγγελία Λαμπίρη, Λαμπρινή Γίδαρη, Μαρία Παυλίδου, Μαριλένα Διδασκάλου, Πηνελόπη Δημητρίου και Σωτήρη Τσαλίκη, για την άριστη συνεργασία και βοήθειά τους καθ όλη τη διάρκεια του μεταπτυχιακού προγράμματος. iv

Περίληψη Η λογική και συγκεκριμένα η μαθηματική λογική αποτελεί έναν ιδιαίτερα ενδιαφέροντα κλάδο τόσο των μαθηματικών όσο και της επιστήμης της πληροφορικής, με ιδιαίτερα σημαντικές εφαρμογές στον έλεγχο ορθότητας μιας πληθώρας τύπου συστημάτων. Στην παρούσα διπλωματική εργασία παρουσιάζονται δύο βασικές χρονικές λογικές, οι LTL και CTL, που υποστηρίζονται από πολλές εφαρμογές ελέγχου μοντέλων. Στη συνέχεια γίνεται παρουσίαση των βασικών διαφορών μεταξύ των δύο χρονικών λογικών, όπως αυτές έχουν προσδιοριστεί από υπάρχουσες ερευνητικές εργασίες. Μέσω της σύγκρισης δίνεται η δυνατότητα στον αναγνώστη να επιλέξει κατά περίπτωση τη σωστή γλώσσα για την περιγραφή των προς έλεγχο ιδιοτήτων. Τέλος, δίνεται ένα παράδειγμα εφαρμογής της τεχνικής ελέγχου μοντέλων, το οποίο αφορά στον έλεγχο ιδιοτήτων LTL ή CTL σε πολιτικές ελέγχου πρόσβασης βασιζόμενες σε ρόλους. Λέξεις κλειδιά Γραμμική λογική, μη-γραμμική λογική, LTL, CTL, έλεγχος μοντέλων. v

Abstract Logic and specifically mathematical logic is an interesting sector of both mathematics and computer science, with important applications in checking the correctness of systems. In this dissertation, we present two fundamental temporal logics (i.e., LTL and CTL), which are supported by several model checkers. In turn, we present the main differences between the two temporal logics, as these are identified in the existing literature. Through the comparison the readers are given the opportunity to correctly choose the appropriate temporal logic depending on the type of properties required to be defined. Finally, we present an example of a model checking technique, which can be used to check the correctness of role based access control policies by verifying properties described in either LTL or CTL. Keywords Linear logic, non-linear logic, LTL, CTL, model checking. vi

Περιεχόμενα 1 Εισαγωγή 1 1.1 Σκοπός................................... 3 1.2 Δομή.................................... 3 2 Προαπαιτούμενες γνώσεις 4 2.1 Προτασιακή λογική............................ 4 2.2 Τυπικές γλώσσες............................. 6 2.3 Σύστημα μετάβασης............................ 6 2.4 Model checking.............................. 9 2.5 Τύποι ιδιοτήτων.............................. 11 2.6 Fairness.................................. 12 3 Γραμμική λογική 13 3.1 Γραμμική χρονική λογική......................... 13 3.2 Συντακτικό................................ 14 3.3 Σημασιολογία............................... 15 3.4 Παραδείγματα............................... 15 3.5 Περίληψη κεφαλαίου............................ 18 4 Μη-γραμμική χρονική λογική 19 4.1 Computation Tree Logic......................... 19 4.2 Συντακτικό................................ 20 4.3 Σημασιολογία............................... 22 4.4 Παραδείγματα............................... 23 vii

4.5 Περίληψη κεφαλαίου............................ 26 5 Σύγκριση εξεταζόμενων χρονικών λογικών 27 5.1 Γενική σύγκριση.............................. 27 5.2 Σύγκριση μεταξύ των LTL και CTL................... 28 5.2.1 Εκφραστικότητα.......................... 28 5.2.2 Πολυπλοκότητα.......................... 31 5.2.3 Fairness.............................. 32 5.2.4 Διαισθητικότητα.......................... 34 5.3 Περίληψη κεφαλαίου............................ 35 6 Πρακτικές εφαρμογές χρονικής λογικής 36 6.1 Εισαγωγή................................. 36 6.2 Σύστημα μετάβασης RBAC....................... 37 6.3 Παράδειγμα................................ 40 6.4 Περίληψη κεφαλαίου............................ 43 7 Συμπεράσματα 44 Αʹ Παράδειγμα ελέγχου ιδιοτήτων 46 Βιβλιογραφία 49 viii

Κατάλογος Σχημάτων 3.1 Σημασιολογία χρονικών τελεστών στην LTL [1]............. 16 4.1 Σημασιολογία για ορισμένους βασικούς τύπους της CTL [1, Κεφ. 6].. 24 4.2 Παράδειγμα συστήματος μετάβασης 1 [1, Κεφ. 6]............ 26 5.1 Παράδειγμα συστήματος μετάβασης 2 [1, Κεφ. 6]............ 30 5.2 Παράδειγμα συστήματος μετάβασης 3 [1, Κεφ. 6]............ 31 5.3 Περίπτωση κατά την οποία ισχύει στην LTL ο τύπος p και δεν ισχύει στην CTL ο τύπος p [16]...................... 34 6.1 Παράδειγμα ιεραρχίας ρόλων μεταξύ δύο τομέων............. 42 ix

Κεφάλαιο 1 Εισαγωγή Η λογική και συγκεκριμένα η μαθηματική λογική αποτελεί έναν ιδιαίτερα ενδιαφέροντα κλάδο τόσο των μαθηματικών όσο και της επιστήμης της πληροφορικής, με σημαντικές εφαρμογές να αποτελούν η μελέτη της εκφραστικής ισχύος των τυπικών συστημάτων (formal systems) και της συμπερασματικής ισχύος των συστημάτων τυπικών αποδείξεων [22]. Ο έλεγχος της ορθότητας των συστημάτων αποτελεί κάτι το ιδιαίτερα σημαντικό, διότι παρέχει τη δυνατότητα να ελέγχει αν οι αρχικές προδιαγραφές ενός συστήματος ισχύουν και στο τελικό σύστημα. Οι βασικές μέθοδοι για την επαλήθευση πολύπλοκων συστημάτων μπορούν να κατηγοριοποιηθούν σε τέσσερις ομάδες. Αυτές αποτελούν τη μέθοδο με δοκιμές (testing), της προσομοίωσης (simulation), της επαγωγικής επαλήθευσης (deductive verification) και του model checking [6]. Η μέθοδος της δοκιμής εφαρμόζεται στο ίδιο το σύστημα. Ομως, η μέθοδος της δοκιμής σε κατανεμημένα συστήματα δεν αποτελεί πάντοτε μια εφικτή και οικονομική λύση διότι μπορεί να εφαρμοστεί μόνον όταν ολοκληρωθεί η υλοποίηση του συστήματος. Επιπλέον, ελέγχει μόνο την ύπαρξη των προβλημάτων, αλλά όχι την απουσία τους. Για παράδειγμα, ας θεωρήσουμε τη μέθοδο unit testing [23] κατά την οποία παρέχεται η δυνατότητα ελέγχου τμημάτων πηγαίου κώδικα, με τη μέθοδο της δοκιμής. Η δοκιμή περιορίζεται στον έλεγχο γνωστών περιπτώσεων, όπου ελέγχεται αν η έξοδος της εφαρμογής είναι η αναμενόμενη ή όχι. Συνεπώς, με αυτό τον τρόπο ελέγχεται η συμπεριφορά του πηγαίου κώδικα για γνωστές 1

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

1.1 Σκοπός Στην παρούσα διπλωματική εργασία γίνεται μια παρουσίαση της γραμμικής και μη-γραμμικής λογικής, με σκοπό την περαιτέρω ανάλυση των μεταξύ τους διαφορών όσον αφορά στην εκφραστικότητά τους, τη χρονική πολυπλοκότητα καθώς και την υποστήριξη ορισμένων ειδικού τύπου ιδιοτήτων. Αποτέλεσμα αυτής της ανάλυσης θα αποτελέσει η επιλογή της κατάλληλης λογικής κατά περίπτωση. 1.2 Δομή Στο κεφάλαιο αυτό συζητήσαμε το κίνητρο και το βασικό σκοπό αυτής της διπλωματικής εργασίας. Στη συνέχεια περιγράφεται η δομή της υπόλοιπης εργασίας. Στο κεφάλαιο 2 δίνονται ορισμένες προαπαιτούμενες γνώσεις. Στο κεφάλαιο 3 περιγράφεται η γραμμική λογική Linear Temporal Logic (LTL), και στο κεφάλαιο 4 η μη-γραμμική λογική Computation Tree Logic (CTL). Στο κεφάλαιο 5 παρουσιάζεται μια σύγκριση μεταξύ των LTL και CTL χρονικών λογικών, όσον αφορά στην εκφραστικότητα, πολυπλοκότητα και υποστήριξη ειδικού τύπου ιδιοτήτων. Στο κεφάλαιο 6 ορίζουμε ένα σύστημα μετάβασης για το μοντέλο ελέγχου πρόσβασης βασιζόμενο σε ρόλους και παρουσιάζουμε ένα τρόπο εργασίας με σκοπό τον έλεγχο ορθότητας των πολιτικών πρόσβασης κάνοντας χρήση της τεχνικής του model checking. Στο κεφάλαιο 7 συνοψίζεται η εργασία και παρουσιάζονται ορισμένα συμπεράσματα. 3

Κεφάλαιο 2 Προαπαιτούμενες γνώσεις Στο κεφάλαιο αυτό παρουσιάζονται ορισμένες προαπαιτούμενες γνώσεις όσον αφορά στην προτασιακή λογική, τις τυπικές γλώσσες, τα συστήματα μετάβασης, το model checking, καθώς και τα βασικά είδη των ιδιοτήτων τα οποία μπορούν να οριστούν. Η εξοικείωση με τις παραπάνω βασικές έννοιες θεωρείται απαραίτητη για την κατανόηση τόσο των γραμμικών και μη-γραμμικών λογικών όσο και η χρήση των χρονικών λογικών σε τεχνικές ελέγχου ορθότητας των συστημάτων, όπως αποτελεί η τεχνική του model checking. 2.1 Προτασιακή λογική Σε αυτή την ενότητα παρουσιάζουμε ορισμένες βασικές έννοιες όσον αφορά στην προτασιακή λογική. Για περισσότερες πληροφορίες ο αναγνώστης μπορεί να αναφερθεί στο [15]. Δίνεται ένα πεπερασμένο σύνολο AP ατομικών προτάσεων, οι οποίες ορισμένες φορές καλούνται και προτασιακά σύμβολα. Στη συνέχεια, χρησιμοποιούμε λατινικά γράμματα όπως τα α, b, c για να δηλώσουμε στοιχεία του AP. Το σύνολο με τους τύπους προτασιακής λογική σε ένα AP, ή τύπος για λόγους συντομίας ορίζεται επαγωγικά από τους ακόλουθους τέσσερις κανόνες: Το true είναι ένας τύπος. Κάθε ατομική πρόταση α AP είναι ένας τύπος. 4

Αν Φ 1, Φ 2 και Φ είναι τύποι, τότε είναι και τα ( Φ) και (Φ 1 Φ 2 ). Τίποτε άλλο δεν θεωρείται τύπος. Κάθε τύπος αντιπροσωπεύει μια πρόταση η οποία θα μπορούσε να ισχύει η όχι, ανάλογα με το ποιες ατομικές προτάσεις θεωρείται ότι ισχύουν. Συνεπώς, μπορούμε να πούμε ότι ο τύπος α αντιπροσωπεύει τις προτάσεις οι οποίες δηλώνουν ότι το α ισχύει. Η έννοια της σύζευξης αντιπροσωπεύεται από το σύμβολο. Συνεπώς, ο τύπος Φ 1 Φ 2 ισχύει αν και μόνο αν και οι δυο προτάσεις Φ 1, Φ 2 ισχύουν. Η άρνηση δηλώνεται από το σύμβολο. Συνεπώς, ο τύπος Φ ισχύει αν και μόνο αν η πρόταση Φ δεν ισχύει. Η σταθερά true αντιπροσωπεύει προτάσεις οι οποίες ισχύουν πάντοτε, ανεξάρτητα από την ερμηνεία των ατομικών προτάσεων α. Στη συνέχεια δίνεται ένα σύνολο παραγόμενων τελεστών. Φ 1 Φ 2 := ( Φ 1 Φ 2 ) διάζευξη Φ 1 Φ 2 := Φ 1 Φ 2 συνεπαγωγή Φ 1 Φ 2 := ( Φ 1 Φ 2 ) (Φ 1 Φ 2 ) ισοδυναμία Φ 1 Φ 2 := ( Φ 1 Φ 2 ) (Φ 1 Φ 2 ) ισοτιμία (xor). Το μήκος ενός τύπου ορίζεται από το πλήθος των τελεστών που υπάρχουν στον τύπο Φ και συμβολίζεται ως Φ. Παράδειγμα 1. Εστω Φ δηλώνει το μήκος ενός τύπου προτασιακής λογικής Φ. Το μήκος μπορεί εύκολα να υπολογιστεί επαγωγικά δεδομένης της δομής του τύπου Φ. Για παράδειγμα, το μήκος του τύπου Φ = true είναι ίσο με το 0, ενώ του τύπου Φ = ( b) c είναι ίσο με το 2. Εστω Φ ένας τύπος και i N. Χρησιμοποιούμε το συμβολισμό Φ i (2.1) για να εκφράσουμε το Φ 1... Φ n. 1 i n 5

2.2 Τυπικές γλώσσες Ενα αλφάβητο αποτελεί ένα μη κενό και πεπερασμένο σύνολο Σ. Τα στοιχεία του Σ καλούνται σύμβολα ή γράμματα. Μια λέξη στο Σ δηλώνεται ως μια πεπερασμένη ή μηπεπερασμένη ακολουθία από σύμβολα του Σ. Για παράδειγμα, οι λέξεις έχουν τη μορφή ω = A 1 A 2...A n, όπου n N ή s = A 1 A 2 A 3... όπου A i αποτελούν σύμβολα του Σ. Η ειδική περίπτωση όπου n = 0 επιτρέπεται, ονομάζεται κενή λέξη και δηλώνεται ως ɛ. Το μήκος μια λέξης είναι ίσο με τον αριθμό των συμβόλων της λέξης. Επομένως, για την ω = A 1 A 2...A n το μήκος είναι ίσο με n, ενώ για μια απείρου μήκους λέξη το μήκος της είναι ίσο με το w. Το σύμβολο w συνήθως χρησιμοποιείται για να υποδηλώσει το άπειρο. Το Σ δηλώνει το σύνολο το οποίο αποτελείται από όλες τις πεπερασμένες λέξεις του Σ, ενώ το Σ ω δηλώνει το σύνολο όλων των απείρου μήκους λέξεων του Σ. Ισχύει ɛ Σ. Επομένως, το σύνολο των μη-κενών λέξεων δηλώνεται ως Σ +, δηλαδή Σ \ {ɛ}. Ενα οποιοδήποτε σύνολο πεπερασμένων λέξεων του αλφαβήτου Σ καλείται γλώσσα. Η άπειρη επανάληψη (καλείται και Kleene star) μιας πεπερασμένη λέξης w αποδίδει τη γλώσσα η οποία αποτελείται από όλες τις πεπερασμένου μήκους λέξεις που προκύπτουν από μηδέν ή περισσότερες επαναλήψεις του w. Δηλαδή, για το w Σ έχουμε w = {w i i N}. 2.3 Σύστημα μετάβασης Τα συστήματα μετάβασης χρησιμοποιούνται συνήθως για την περιγραφή της συμπεριφοράς ενός συστήματος. Αποτελούν κατευθυνόμενους γράφους όπου οι κόμβοι τους αντιπροσωπεύουν τις καταστάσεις και οι ακμές τις μεταβάσεις από μια κατάσταση σε μια άλλη. Μια κατάσταση περιγράφει κάποια πληροφορία για ένα σύστημα σε μια συγκεκριμένη στιγμή. Στη συνέχεια δίνεται ο ορισμός ενός συστήματος μετάβασης TS (Transition System). Ορισμός 1. Ενα σύστημα μετάβασης T S είναι ένα ζεύγος της μορφής (S, Act,, I, AP, L), όπου S αποτελεί ένα σύνολο καταστάσεων. 6

Act αποτελεί ένα σύνολο ενεργειών. S Act S αποτελεί μια σχέση μετάβασης. I S αποτελεί το σύνολο των αρχικών καταστάσεων. AP αποτελεί ένα σύνολο ατομικών προτάσεων. L : S 2 AP αποτελεί μια συνάρτηση επισήμανσης (labeling function). Το σύστημα μετάβασης T S χαρακτηρίζεται πεπερασμένο αν τα S, Act, AP είναι πεπερασμένα. Για λόγους απλότητας γράφουμε s α s αντί για (s, α, s ). Συνεπώς, αν s αποτελεί την τρέχουσα κατάσταση, τότε η μετάβαση s α s η οποία ξεκινάει από την κατάσταση s επιλέγεται μη-ντετερμινιστικά, δηλαδή, η ενέργεια α εφαρμόζεται και το σύστημα μετάβασης μεταβαίνει από την κατάσταση s στην κατάσταση s. Η συνάρτηση επισήμανσης L συσχετίζει ένα σύνολο L(s) 2 AP ατομικών προτάσεων σε μια οποιαδήποτε κατάσταση s. Το L(s) αναφέρεται σε αυτές τις ατομικές προτάσεις α AP οι οποίες ικανοποιούνται από μια κατάσταση s. Δεδομένου ότι η Φ αποτελεί έναν τύπο προτασιακής λογικής, τότε η s ικανοποιεί τον τύπο Φ αν η αποτίμησή της που προκαλείται από την L(s) κάνει τον τύπο Φ true. Δηλαδή: s Φ L(s) Φ (2.2) Ορισμός 2. Εστω T S = (S, Act,, I, AP, L) ένα σύστημα μετάβασης. Για s S και α Act, το σύνολο των άμεσων α-διαδόχων του s ορίζεται ως: P ost(s, α) = {s S s α s }, P ost(s) = P ost(s, α) α Act Ορισμός 3. Ο γράφος καταστάσεων ενός συστήματος μετάβασης T S, συμβολίζεται ως G(T S), και αποτελεί ένα κατευθυνόμενο γράφο (V, E) με κόμβους V = S και ακμές E = {(s, s ) S S s P ost(s)}. 7

Μια πιθανή συμπεριφορά ενός συστήματος μετάβασης ορίζεται από ένα τμήμα ε- κτέλεσής του, όπου το τμήμα εκτέλεσης ενός συστήματος μετάβασης ορίζεται ως μια ακολουθία από καταστάσεις και ενέργειες. Συνεπώς, οι διαφορετικές εκτελέσεις ενός συστήματος μετάβασης ονομάζονται διαδρομές. Στη συνέχεια ορίζουμε την έννοια της διαδρομής (path). Ορισμός 4. Ενα πεπερασμένο τμήμα διαδρομής ˆπ ενός T S αποτελεί μια πεπερασμένη ακολουθία s 0 s 1...s n τέτοια ώστε s i P ost(s i 1 ) για όλα τα 0 < i n, όπου n 0. Ενα μη-πεπερασμένο τμήμα διαδρομής π αποτελεί μια μη-πεπερασμένη ακολουθία καταστάσεων s 0 s 1 s 2... τέτοια ώστε s i P ost(s i 1 ) για όλα τα i > 0. Χρησιμοποιούμε το συμβολισμό π = s 0 s 1... όταν αναφερόμαστε σε τμήματα διαδρομών μη-πεπερασμένου μήκους. Η αρχική κατάσταση του π δηλώνεται ως first(π) = s 0. Για j 0 το π[j] = s j υποδηλώνει την j κατάσταση του π και το π[..j] υποδηλώνει το j-ιοστό πρόθεμα του π, δηλαδή π[..j] = s 0 s 1...s j. Ομοίως, η j-ιοστή κατάληξη του π, γράφεται ως π[j..] και ορίζεται ως π[j..] = s j s j+1.... Οι προηγούμενες έννοιες χρησιμοποιούνται αντίστοιχα και στις πεπερασμένες διαδρομές. Για μια πεπερασμένη διαδρομή ˆπ = s 0 s 1...s n, το last(ˆπ) υποδηλώνει την τελευταία κατάσταση του ˆπ, και το len(ˆπ) υποδηλώνει το μήκος του ˆπ. Για την μη-πεπερασμένη διαδρομή π, οι αντίστοιχες έννοιες ορίζονται από τα len(π) = και last(π) =, όπου το υποδηλώνει απροσδιοριστία. Ορισμός 5. Ενα μέγιστο τμήμα μιας διαδρομής είναι είτε ένα πεπερασμένο τμήμα το οποίο τελειώνει σε μια τερματική κατάσταση, είτε τμήμα μιας μη-πεπερασμένης διαδρομής. Ενα τμήμα μιας διαδρομής ονομάζεται αρχικό αν ξεκινάει από την αρχική κατάσταση, δηλαδή, αν s 0 I. Το μέγιστο τμήμα μιας διαδρομής αποτελείται από ένα τμήμα μιας διαδρομής το ο- ποίο είτε είναι μη-πεπερασμένο είτε είναι πεπερασμένο αλλά τερματίζει σε μια κατάσταση από την οποία δεν μπορεί να λάβει μέρος νέα μετάβαση. Εστω ότι το P aths(s) υποδηλώνει το σύνολο των μέγιστων τμημάτων των διαδρομών π με first(π) = s, και το P aths fin (s) υποδηλώνει το σύνολο όλων των πεπερασμένων τμημάτων των διαδρομών ˆπ με first(ˆπ) = s. 8

Ορισμός 6. Η διαδρομή ενός συστήματος μετάβασης T S αποτελεί ένα αρχικό μέγιστο τμήμα διαδρομής. Εστω ότι το P aths(t S) υποδηλώνει το σύνολο όλων των διαδρομών στο T S, και το P aths fin (T S) υποδηλώνει το σύνολο όλων των αρχικών πεπερασμένων τμημάτων διαδρομών του T S. Τέλος, συμβολίζουμε με T S την πληθικότητα ενός συστήματος μετάβασης, η οποία εκφράζει τον αριθμό των καταστάσεων του μοντέλου. 2.4 Model checking Οι τεχνικές model checking εφαρμόζονται κατά τον σχεδιασμό συστημάτων. Κατά κανόνα η επαλήθευση ενός συστήματος εφαρμόζεται με σκοπό να ελεγχθεί ότι ένας συγκεκριμένος σχεδιασμός ενός συστήματος ή ένα προϊόν πληρεί ένα σύνολο από τις αρχικές ιδιότητες που καθορίζουν τις προδιαγραφές του συστήματος. Οι ιδιότητες προς επαλήθευση μπορούν να είναι στοιχειώδεις, όπως για παράδειγμα αποτελεί ο προσδιορισμός ενός deadlock, και τις περισσότερες φορές εξάγονται από τις προδιαγραφές ενός συστήματος. Οι προδιαγραφές περιγράφουν τι πρέπει ή δεν πρέπει να κάνει ένα σύστημα. Ενα πρόβλημα προσδιορίζεται από τη στιγμή που αυτό δεν πληρεί μια από τις ιδιότητες που περιγράφονται από τις προδιαγραφές του συστήματος. Το σύστημα θεωρείται ότι είναι ορθό όταν ικανοποιούνται όλες οι ιδιότητες οι οποίες ορίζονται από τις προδιαγραφές του συστήματος. Συνεπώς, η ορθότητα ενός συστήματος είναι σχετική με το σύνολο των προδιαγραφών ενός συστήματος και όχι με μια συγκεκριμένη ιδιότητα αυτού. Οι χρονικές λογικές αποτελούν από τις πιο διαδεδομένες γλώσσες περιγραφής των προδιαγραφών ενός συστήματος, με αντιπροσωπευτικές την γραμμική χρονική λογική LTL και την μη-γραμμική χρονική λογική CTL. Το model checking, αποτελεί όπως προαναφέρθηκε, μια από τις τέσσερις βασικές τεχνικές για την επιβεβαίωση της ορθότητας ενός συστήματος. Η διαδικασία εφαρμογής της αποτελείται αρχικά από τη μοντελοποίηση του προς έλεγχο συστήματος, τον ορισμό των ιδιοτήτων, και τελικά την επαλήθευση των ιδιοτήτων στο μοντέλο του συστήματος. 9

Για την μοντελοποίηση των συστημάτων γίνεται χρήση συστημάτων μετάβασης. Η απεικόνισή τους γίνεται αντιληπτή μέσω ειδικών δομών δεδομένων όπως αποτελεί η δομή Kripke [21]. Η δομή Kripke ορίζεται ως εξής: Ορισμός 7. Εστω AP ένα σύνολο από ατομικές προτάσεις (boolean εκφράσεις, σταθερές, κατηγορήματα). Μια Kripke δομή στο AP ορίζεται ως μια τετράδα M = (S, I, R, L), όπου: S αποτελεί ένα πεπερασμένο σύνολο καταστάσεων. I S αποτελεί ένα σύνολο από αρχικές καταστάσεις. R S S αποτελεί μια σχέση μετάβασης τέτοια ώστε s S s S : (s, s ) R. L : S 2 AP αποτελεί μια συνάρτηση επισήμανσης. Για τον ορισμό των ιδιοτήτων ενός συστήματος, χρησιμοποιούνται γραμμικές ή μηγραμμικές χρονικές λογικές. Η επαλήθευση των ιδιοτήτων γίνεται αυτόματα κάνοντας χρήση ειδικού λογισμικού, όπως αποτελούν τα: SPIN [18], NuSMV [11], κ.α.. Συγκεκριμένα, έχοντας ορίζει το προς έλεγχο σύστημα κάνοντας χρήση ενός συστήματος μετάβασης και έχοντας ορίσει και το σύνολο των ιδιοτήτων προς έλεγχο, επόμενο στάδιο στις τεχνικές model checking αποτελεί ο έλεγχος ικανοποιησιμότητας των ιδιοτήτων από το σύστημα μετάβασης. Δηλαδή, το πρόβλημα ανάγεται σε ένα πρόβλημα ικανοποιησιμότητας προτασιακής λογικής. Ειδικότερα, δεδομένου ενός τύπου Φ, κάνουμε το ερώτημα: «ικανοποιείται ο Φ;». Μια πρόταση Φ καλείται ικανοποιήσιμη αν υπάρχει μια αποτίμηση του µ με µ Φ. Ο Φ καλείται έγκυρος (ταυτολογία) αν ισχύει µ Φ για κάθε αποτίμηση του µ. Ο Φ είναι μη-ικανοποιήσιμος αν ο Φ δεν ικανοποιείται. Για παράδειγμα, ο τύπος α α είναι μη-ικανοποιήσιμος, ενώ ο τύπος α (α b) αποτελεί μια ταυτολογία. Οι τύποι α b και α b είναι ικανοποιήσιμοι, αλλά δεν αποτελούν ταυτολογίες. Συνεπώς, ο Φ είναι μη ικανοποιήσιμος µ Φ για όλες τις αποτιμήσεις του µ 10

µ Φ για όλες τις αποτιμήσεις του µ Φ είναι έγκυρος. Επομένως, ο Φ είναι μη-ικανοποιήσιμος αν και μόνο αν το Φ αποτελεί ταυτολογία. Τα προβλήματα ικανοποιησιμότητας διαφέρουν ως προς την υλοποίηση, και συνεπώς την πολυπλοκότητά τους, ανάλογα με τη χρονική λογική η οποία χρησιμοποιείται [1, Κεφ. 5 και 6]. 2.5 Τύποι ιδιοτήτων Στην ενότητα αυτή, παρουσιάζουμε τους βασικότερους τύπους ιδιοτήτων, οι οποίοι ορίζονται για διαφόρων τύπων συστήματα. Για περισσότερες πληροφορίες ο αναγνώστης μπορεί να αναφερθεί στο [1, Κεφ. 3 και 4]. Ενα πρώτος τύπος ιδιοτήτων αποτελεί αυτός του safety. Οι safety ιδιότητες έχουν τη σημασιολογία του «τίποτα κακό δεν πρέπει να συμβεί». Για παράδειγμα, μια τυπική safety ιδιότητα αποτελεί το πρόβλημα του αμοιβαίου αποκλεισμού, όπου πάντοτε το πολύ μια διεργασία πρέπει να βρίσκεται στο κρίσιμο τμήμα της (βλ. Κεφ. 3). Στο προηγούμενο παράδειγμα, ορίζεται ότι «τίποτα κακό» (το να υπάρχουν δύο διεργασίες ταυτόχρονα στο κρίσιμο τμήμα τους) δεν συμβαίνει ποτέ. Άλλη περίπτωση μιας safety ιδιότητας αποτελεί το deadlock freedom. Για παράδειγμα, στο πρόβλημα των γευματιζόντων φιλοσόφων (βλ. Κεφ. 3) μια τέτοια κατάσταση θα αποτελούσε όλοι οι φιλόσοφοι να περιμένουν να πάρουν το δεύτερο πιρούνι. Μια τέτοια, μη επιθυμητή κατάσταση δεν θα πρέπει να συμβαίνει ποτέ. Ενας αλγόριθμος μπορεί εύκολα να ικανοποιήσει μια safety ιδιότητα, απλά μη κάνοντας τίποτα, και επομένως, να μην οδηγηθούμε ποτέ σε μια μη επιθυμητή κατάσταση. Ομως κάτι τέτοιο είναι επίσης μη επιθυμητό. Για το λόγο αυτό, οι safety ιδιότητες συμπληρώνονται από ιδιότητες οι οποίες απαιτούν την ύπαρξη προόδου. Αυτού του τύπου οι ιδιότητες ονομάζονται liveness. Οι liveness ιδιότητες έχουν την σημασιολογία ότι «κάτι καλό» θα συμβεί στο μέλλον. 11

2.6 Fairness Το fairness αποτελεί μια σημαντική πτυχή των reactive συστημάτων. Ενα σύστημα θεωρείται reactive όταν αντιδρά σε εξωτερικά ερεθίσματα. Ενα παράδειγμα μιας fairness διεργασίας ακολουθεί. Παράδειγμα 2. Θεωρούμε N διεργασίες P 1,..., P N οι οποίες απαιτούν μια συγκεκριμένη υπηρεσία. Υπάρχει μια κεντρική διεργασία Server η οποία θα παρέχει υπηρεσίες στις υπόλοιπες διεργασίες. Μια πιθανή στρατηγική που μπορεί να εφαρμοστεί από τον Server είναι η ακόλουθη. Ελεγχος των διεργασιών ξεκινώντας από την P 1, στη συνέχεια την P 2,..., και εξυπηρέτηση της πρώτης διεργασίας που αιτείται μια υπηρεσία. Μετά το τέλος της εξυπηρέτησης της διεργασίας, επαναλαμβάνεται η διαδικασία επιλογής διεργασίας ξεκινώντας από την P 1. Αν θεωρήσουμε ότι η διεργασία P 1 αιτείται συνεχώς να εξυπηρετηθεί, τότε η παραπάνω στρατηγική έχει ως αποτέλεσμα να εξυπηρετείται μονίμως και οι υπόλοιπες να μην εξυπηρετούνται ποτέ. Αυτή αποτελεί μια άδικη στρατηγική. Σε μια δίκαιη στρατηγική ο Server θα έπρεπε να εξυπηρετεί όλες τις διεργασίες. Μια δίκαιη στρατηγική αποτελεί η στρατηγική χρονοδρομολόγησης round-robin, η οποία ε- ξυπηρετεί κάθε διεργασία για ένα συγκεκριμένο χρονικό διάστημα. Συνεπώς, μετά από την εξυπηρέτηση μια διεργασίας, ελέγχεται η επόμενη και εξυπηρετείται σε περίπτωση που χρειάζεται. 12

Κεφάλαιο 3 Γραμμική λογική Στο κεφάλαιο αυτό γίνεται μια περιγραφή της γραμμικής λογικής linear temporal logic (LTL), η οποία και χρησιμοποιείται για τον ορισμό ιδιοτήτων γραμμικού χρόνου. Συγκεκριμένα, θα οριστούν τόσο το συντακτικό όσο και η σημασιολογία της γραμμικής λογικής. 3.1 Γραμμική χρονική λογική Η προτασιακή χρονική λογική αποτελεί μια επέκταση της προτασιακής λογικής στην οποία εφαρμόζονται χρονικοί τελεστές. Οι βασικοί χρονικοί τελεστές που υπάρχουν στις περισσότερες χρονικές λογικές είναι οι ακόλουθοι, με την εξής σημασιολογία: Τελικά Πάντοτε Η φύση του χρόνου στις χρονικές λογικές μπορεί να είναι είτε γραμμική είτε μηγραμμική. Οταν αυτή είναι γραμμική, σε κάθε χρονική στιγμή υπάρχει μια μοναδική επόμενη στιγμή, ενώ στη μη-γραμμική λογική ακολουθείται μια δενδροειδής δομή όπου μια επόμενη χρονική στιγμή μπορεί να σπάσει σε εναλλακτικές. 13

3.2 Συντακτικό Σε αυτή την ενότητα θα περιγράψουμε του κανόνες βάσει των οποίων κατασκευάζεται ένας τύπος στην LTL. Τα βασικά συστατικά ενός LTL τύπου αποτελούν οι ατομικές προτάσεις (α AP ), οι λογικοί σύνδεσμοι της σύζευξης ( ) και της άρνησης ( ), και οι δύο βασικοί χρονικοί τελεστές (διαβάζεται επόμενο) και (διαβάζεται μέχρι). Ο αποτελεί ένα μοναδιαίο τελεστή ενώ ο αποτελεί ένα δυαδικό τελεστή. Ορισμός 8. Οι LTL τύποι μέσω του συνόλου AP ατομικών προτάσεων σχηματίζονται ακολουθώντας την γραμματική: φ ::= true α φ 1 φ 2 φ φ φ 1 φ 2 (3.1) όπου α AP. Η σειρά ισχύος των τελεστών είναι η ακόλουθη: οι μοναδιαίοι τελεστές είναι ισχυρότεροι από τους δυαδικούς τελεστές. Οι και έχουν την ίδια ισχύ. Ο τελεστής υπερισχύει των,,. Η συσχέτιση του τελεστή εφαρμόζεται από τα δεξιά, δηλαδή: φ 1 φ 2 φ 3 είναι ισοδύναμο με φ 1 (φ 2 φ 3 ). Οι τελεστές της διάζευξης, συνεπαγωγής, ισοδυναμίας και ισοτιμίας παράγονται ως εξής: φ 1 φ 2 := ( φ 1 φ 2 ) διάζευξη φ 1 φ 2 := φ 1 φ 2 συνεπαγωγή φ 1 φ 2 := (φ 1 φ 2 ) (φ 2 φ 1 ) ισοδυναμία φ 1 φ 2 := (φ 1 φ 2 ) (φ 2 φ 1 ) ισοτιμία Ο τελεστής επιτρέπει να οριστούν οι χρονικοί τελεστές και, ως εξής: φ := true φ φ := φ 14

Συνεπώς, το φ εξασφαλίζει ότι το φ θα γίνει στο μέλλον αληθές. Το φ ικανοποιείται αν και μόνο αν δεν υπάρχει η περίπτωση το φ να γίνεται αληθές. Το τελευταίο είναι ισοδύναμο με το γεγονός ότι το φ ισχύει πάντοτε. Συνδυάζοντας τους χρονικούς τελεστές και μπορούμε να δημιουργήσουμε νέους χρονικούς τελεστές. Για παράδειγμα, το α περιγράφει την ιδιότητα η οποία δηλώνει ότι σε κάθε στιγμή j υπάρχει μια στιγμή i j στην οποία μια κατάσταση α επισκέπτεται. Συνεπώς: φ ο φ πάντοτε τελικά πρέπει να ισχύει. φ ο φ τελικά θα ισχύει για όλη την υπόλοιπη διαδρομή. 3.3 Σημασιολογία Οι LTL τύποι αποτελούν ιδιότητες των διαδρομών. Αυτό σημαίνει ότι μια διαδρομή μπορεί είτε να εκπληρώνει είτε όχι έναν LTL τύπο. Αρχικά η σημασιολογία ενός τύπου LTL φ θα οριστεί ως μια γλώσσα W ords(φ) η οποία περιέχει όλες τις απείρου μήκους λέξεις του αλφαβήτου 2 AP που ικανοποιούν τον φ. Ορισμός 9. Εστω φ ένας LTL τύπος στο AP. Η γραμμικού χρόνου ιδιότητα που επάγεται από την φ είναι W ords(φ) = {σ (2 AP ) ω σ φ} όπου η σχέση ικανοποιησιμότητας (2 AP ) ω LT L ορίζεται ως: σ true σ α α σ[0] σ φ 1 φ 2 σ φ 1 και σ φ 2 σ φ σ φ σ φ σ[1...] φ σ φ 1 φ 2 j 0.σ[j...] φ 2 και σ[i...] φ 1, 0 i < j Στην εικόνα 3.1 απεικονίζεται η σημασιολογία των χρονικών τελεστών στην LTL. 3.4 Παραδείγματα Στην ενότητα αυτή δίνεται ένα σύνολο από παραδείγματα χρησιμοποιώντας τη χρονική λογική LTL με σκοπό να περιγραφεί ο τρόπος ορισμού ενός συνόλου ιδιοτήτων στην 15

Σχήμα 3.1: Σημασιολογία χρονικών τελεστών στην LTL [1] LTL [1, Κεφ. 5]. Παράδειγμα 3. Το παράδειγμα αφορά στο πρόβλημα ορισμού ιδιοτήτων αμοιβαίου αποκλεισμού. Θεωρούμε το πρόβλημα αμοιβαίου αποκλεισμού για δυο ταυτόχρονες διεργασίες P 1 και P 2. Η κάθε διαδικασία P i αποτελείται από τρία τμήματα. 1. Το μη-κρίσιμο τμήμα. 2. Η φάση αναμονής, στην οποία η διεργασία εισέρχεται όταν σκοπεύει να μπει στο κρίσιμο τμήμα της. 3. Το κρίσιμο τμήμα. Θεωρούμε τις προτάσεις wait i και crit i μιας διεργασίας P i, οι οποίες αντιστοιχούν στη φάση αναμονής και του κρίσιμου τμήματος της διεργασίας. Μια safety ιδιότητα (τίποτα κακό δεν πρέπει να συμβεί [1, Κεφ. 5]) αναφέρει ότι οι διεργασίες P 1 και P 2 δεν μπορούν να έχουν ταυτόχρονα πρόσβαση στο κρίσιμο τμήμα τους. Ο LTL τύπος ο οποίος περιγράφει την προηγούμενη ιδιότητα είναι ο ακόλουθος: ( crit 1 crit 2 ). (3.2) 16

Ο τύπος εκφράζει ότι πάντοτε ( ) τουλάχιστον μία από τις δύο διεργασίες δεν βρίσκεται στο κρίσιμο τμήμα της ( crit i ). Μια liveness ιδιότητα (κάτι καλό θα συμβεί στο μέλλον [1, Κεφ. 5]) αναφέρει ότι κάθε διεργασία P i βρίσκεται πάντοτε τελικά στο κρίσιμο τμήμα της. Ο LTL τύπος ο οποίος περιγράφει την προηγούμενη ιδιότητα είναι ο ακόλουθος: ( crit 1 ) ( crit 2 ). (3.3) Ενας τύπος ο οποίος θα μπορούσε να περιγράψει την περίπτωση κάθε διεργασία σε αναμονή να μπαίνει τελικά στο κρίσιμο τμήμα της, μπορεί να περιγραφεί στην LTL ως εξής: ( wait 1 crit 1 ) ( wait 2 crit 2 ). (3.4) Παράδειγμα 4. Στη συνέχεια γίνεται μια περιγραφή ενός προβλήματος το οποίο είναι γνωστό ως το πρόβλημα των γευματιζόντων φιλοσόφων. Αυτό αναφέρεται στη προσπάθεια ενός αριθμού φιλοσόφων να γευματίσουν χρησιμοποιώντας δύο πιρούνια. Αυτό δεν θα αποτελούσε πρόβλημα αν στο τραπέζι υπήρχε ο απαραίτητος αριθμός από πιρούνια. Ανάμεσα όμως σε ζεύγη γειτονικών πιάτων βρίσκεται ένα πιρούνι. Ο κάθε φιλόσοφος περνάει από εναλλασσόμενες περιόδους σκέψης και φαγητού. Αν ο φιλόσοφος αποκτήσει και τα δύο πιρούνια τρώει και στη συνέχεια τα αφήνει στο τραπέζι για να σκεφτεί. Δυστυχώς όμως η προσπάθεια του φιλοσόφου να φάει δεν αποδίδει πάντα, καθώς ακόμα και αν πιάσει το ένα πιρούνι το άλλο μπορεί να είναι κατειλημμένο από τον διπλανό του. Deadlock ονομάζεται η κατάσταση όπου δύο ή περισσότερες ανταγωνιστικές ενέργειες περιμένουν η μία την άλλη να ολοκληρωθεί, και αυτό δεν συμβαίνει ποτέ. Για το πρόβλημα των γευματιζόντων φιλοσόφων μπορούμε να περιγράψουμε την αποφυγή της κατάστασης deadlock ως εξής: ( wait i occupied i ). (3.5) 0 i<n 0 i<n 17

Στο παραπάνω παράδειγμα θεωρούμε ότι ο αριθμός των φιλοσόφων είναι n, τα πιρούνια αριθμούνται από 0 ως n 1. Η πρόταση wait i σημαίνει ότι ο φιλόσοφος i περιμένει για ένα από τα πιρούνια είτε από τα δεξιά του είτε από τα αριστερά του, όμως κρατάει ένα πιρούνι στο άλλο του χέρι. Ομοίως, η πρόταση occupied i έχει τη σημασία του ότι το πιρούνι i χρησιμοποιείται. 3.5 Περίληψη κεφαλαίου Στο κεφάλαιο αυτό έγινε μια εισαγωγή στη γραμμική χρονική λογική, η οποία αποτελεί μια λογική για ορισμό ιδιοτήτων που βασίζονται στις διαδρομές (paths). Εγινε αναφορά στους βασικούς χρονικούς τελεστές που χρησιμοποιούνται, στο συντακτικό και τη σημασιολογία της γλώσσας. Επίσης παρουσιάστηκαν παραδείγματα στα οποία ορίστηκαν τόσο safety όσο και liveness ιδιότητες. 18

Κεφάλαιο 4 Μη-γραμμική χρονική λογική Στο κεφάλαιο αυτό θα κάνουμε μια εισαγωγή στη μη-γραμμική χρονική λογική Computation Tree Logic (CTL), η οποία αποτελεί μια πολλά υποσχόμενη διακλαδιζόμενη χρονική λογική για τον ορισμό ιδιοτήτων ενός συστήματος. Συγκεκριμένα, παρουσιάζεται το συντακτικό και η σημασιολογία της εξεταζόμενης λογικής. 4.1 Computation Tree Logic Ο Pnueli [13] εισήγαγε τη γραμμική χρονική λογική για τον ορισμό και την επαλήθευση των συστημάτων. Η γραμμική χρονική λογική καλείται γραμμική διότι η έννοια του χρόνου βασίζεται στις διαδρομές. Οι διαδρομές όμως οι οποίες λαμβάνονται από ένα σύστημα μετάβασης μπορεί να είναι διακλαδιζόμενες. Αυτό συμβαίνει όταν μια κατάσταση μπορεί να έχει πολλούς διαφορετικούς άμεσους διαδόχους. Η ερμηνεία ενός LTL τύπου σε μια κατάσταση απαιτεί ο τύπος φ να ισχύει σε μια κατάσταση s αν όλοι οι υπολογισμοί που ξεκινούν από την s ικανοποιούν την φ. Δηλαδή, ισχύει: σ φ π φ (4.1) για όλες τις διαδρομές π που ξεκινούν από το s. Συνεπώς στη γραμμική χρονική λογική μπορούμε να ορίζουμε ιδιότητες καταστάσεων για όλες τις πιθανές διαδρομές που ξεκινούν από μια κατάσταση, αλλά όχι εύκολα για ορισμένες από αυτές τις διαδρομές. Για παράδειγμα, πιο πολύπλοκες ιδιότητες όπως 19

η πρόταση «για κάθε υπολογισμό είναι πάντοτε πιθανό να επιστρέφουμε στην αρχική κατάσταση», δεν μπορεί να εκφραστεί στην LTL. Μια προσέγγιση στην LTL θα μπορούσε να αποτελεί η σχέση ικανοποιησιμότητας s start, δηλαδή θα απαιτούταν για κάθε υπολογισμό να ισχύει το start. Ομως ο προηγούμενος τύπος έχει μεγαλύτερη ισχύ από την αρχική πρόταση διότι απαιτεί ένας υπολογισμός να επιστρέφει πάντοτε στην αρχική κατάσταση, και όχι απλά να είναι πιθανό να επιστρέψει στην αρχική κατάσταση. Παρόμοιες προσπάθειες να εκφραστεί η αρχική πρόταση στην LTL έχουν επίσης αποτύχει [1, Κεφ. 6] με αποτέλεσμα ο τύπος να μην μπορεί να εκφραστεί στην LTL. Για να ξεπεραστούν τα παραπάνω προβλήματα στις αρχές της δεκαετίας του 80 προτάθηκε από τους Clarke, Emerson [3] μια άλλη χρονική λογική για τον ορισμό και την επαλήθευση των συστημάτων. Η σημασιολογία αυτού του είδους της χρονικής λογικής δεν βασίζεται στην έννοια του γραμμικού χρόνου (άπειρη ακολουθία καταστάσεων), αλλά στη διακλαδιζόμενη έννοια του χρόνου (άπειρο δέντρο από καταστάσεις). Η διακλαδιζόμενη λογική αναφέρεται στο γεγονός ότι η κάθε χρονική στιγμή μπορεί ενδεχομένως να έχει περισσότερες από μία μελλοντικές καταστάσεις. Οι χρονικοί τελεστές στη διακλαδιζόμενη χρονική λογική επιτρέπουν την έκφραση ιδιοτήτων για κάποιες ή για όλες τις διαδρομές που ξεκινούν από μια κατάσταση. Συνεπώς, υποστηρίζει τον τελεστή και τον. Για παράδειγμα, η ιδιότητα Φ δηλώνει ότι υπάρχει διαδρομή κατά την οποία το Φ είναι αληθές. Δηλαδή, δηλώνει ότι υπάρχει τουλάχιστον μια πιθανή διαδρομή στην οποία μια κατάσταση που ικανοποιεί το Φ τελικά υπάρχει. 4.2 Συντακτικό Σε αυτήν την ενότητα θα παρουσιάσουμε το συντακτικό της CTL. Το συντακτικό της CTL είναι δύο επιπέδων, διότι ένας τύπος κατηγοριοποιείται σε τύπο κατάστασης και τύπο διαδρομής. Οι τύποι κατάστασης αποτελούν ισχυρισμούς για ατομικές προτάσεις σε καταστάσεις στη δενδροειδή δομή. Οι τύποι διαδρομής εκφράζουν χρονικές ιδιότητες διαδρομών. Σε σύγκριση με τους τύπους στην LTL, οι τύποι διαδρομής στην CTL είναι 20

πιο απλοί διότι δεν συνδυάζονται με boolean τελεστές και η ενθυλάκωση των χρονικών τελεστών δεν επιτρέπεται. Ορισμός 10. Ενας CTL τύπος κατάστασης μέσω του συνόλου AP των ατομικών προτάσεων σχηματίζεται από την ακόλουθη γραμματική: Φ ::= true α Φ 1 Φ 2 Φ φ φ (4.2) όπου α AP και φ αποτελούν τύπους διαδρομής. Ο CTL τύπος διαδρομής σχηματίζεται σύμφωνα με την ακόλουθη γραμματική: φ ::= Φ Φ 1 Φ 2 (4.3) όπου Φ, Φ 1 και Φ 2 αποτελούν τύπους κατάστασης. Τα κεφαλαία Ελληνικά γράμματα δηλώνουν ένα CTL τύπο κατάστασης, ενώ τα πεζά γράμματα δηλώνουν ένα CTL τύπο διαδρομής. Η CTL κάνει διαχωρισμό μεταξύ των τύπων κατάστασης και διαδρομής. Ο τύπος κατάστασης εκφράζει μια ιδιότητα μιας κατάστασης, ενώ ο τύπος διαδρομής εκφράζει μια ιδιότητα σε μια διαδρομή, δηλαδή σε μια άπειρη ακολουθία καταστάσεων. Οι χρονικοί τελεστές και έχουν την ίδια σημασία με αυτήν στη γραμμική χρονική λογική. Ο τύπος Φ ισχύει για μια διαδρομή αν το Φ ισχύει στην επόμενη κατάσταση της διαδρομής. Ο τύπος Φ Ψ ισχύει για μια διαδρομή αν υπάρχει κάποια κατάσταση στο μήκος της διαδρομής για την οποία το Ψ ισχύει, και το Φ ισχύει σε όλες τις διαδρομές πριν από αυτή την κατάσταση. Οι τύποι διαδρομής μπορούν να μετατραπούν σε τύπους κατάστασης χρησιμοποιώντας ως πρόθεμα το (για κάποια διαδρομή) ή το (για όλες τις διαδρομές). Επίσης σημειώνουμε ότι οι γραμμικοί χρονικοί τελεστές και απαιτείται να έπονται των τελεστών ή για να θεωρείται έγκυρος ο τύπος κατάστασης. Οι boolean τελεστές true, f alse,,, ορίζονται όπως συνήθως. Οι χρονικοί τελεστές «τελικά» και «πάντοτε» ορίζονται ως εξής: 21

τελικά: Φ = (true Φ) πάντοτε: Φ = (true Φ) Φ = Φ Φ = Φ Συγκεκριμένα, το Φ διαβάζεται «το Φ πιθανώς ισχύει» και το Φ διαβάζεται «το Φ είναι αναπόφευκτο να ισχύει». Επίσης, το Φ διαβάζεται «πιθανώς πάντοτε το Φ ισχύει» και το Φ διαβάζεται «το Φ ισχύει καθολικά». 4.3 Σημασιολογία Δεδομένου ενός συστήματος μετάβασης, η σημασιολογία ενός CTL τύπου ορίζεται από δύο σχέσεις ικανοποιησιμότητας. Μια για τον τύπο κατάστασης και μια για τον τύπο διαδρομής. Οσον αφορά στον τύπο κατάστασης, το αποτελεί μια σχέση μεταξύ των καταστάσεων του συστήματος μετάβασης και του τύπου κατάστασης, και γράφουμε s Φ. Η σημασιολογία του τύπου είναι η ακόλουθη: το s Φ αν και μόνο αν ο τύπος κατάστασης Φ ισχύει στην κατάσταση s. Οσον αφορά στον τύπο διαδρομής, το αποτελεί μια σχέση μεταξύ των μεγίστων τμημάτων διαδρομής στο σύστημα μετάβασης και του τύπου διαδρομής, και γράφουμε: π Φ. Η σημασιολογία του τύπου είναι η ακόλουθη: το π Φ αν και μόνο αν η διαδρομή π ικανοποιεί τον τύπο διαδρομής φ. Ορισμός 11. Εστω α AP μια ατομική πρόταση, T S = (S, Act,, I, AP, L) ένα σύστημα μετάβασης χωρίς τερματικές καταστάσεις, s S, Φ και Ψ αποτελούν CTL τύπους κατάστασης, και φ ένας CTL τύπος διαδρομής. Η σχέση ικανοποιησιμότητας για τον τύπο κατάστασης ορίζεται ως: s α α L(s) s Φ όχι s Φ s Φ Ψ (s Φ) και (s Ψ) s φ π φ για κάποια π P aths(s) s φ π φ για όλα τα π P aths(s) Για τη διαδρομή π, η σχέση συσχέτισης για τον τύπο διαδρομής ορίζεται ως: π Φ π[1] Φ π Φ Ψ j 0.(π[j] Ψ ( 0 k < j.π[k] Φ)). όπου για την διαδρομή π = s 0 s 1 s 2... και ακέραιο i 0, το π[i] δηλώνει την (i + 1) κατάσταση του π, δηλαδή, π[i] = s i. 22

Η σημασιολογία των ατομικών προτάσεων, και των τελεστών της άρνησης και σύζευξης είναι οι συνηθισμένες, όπου πρέπει να σημειωθεί ότι στην CTL η σημασιολογία αναφέρεται στις καταστάσεις, σε αντίθεση με την LTL όπου η σημασιολογία αναφέρεται στις διαδρομές. Ο τύπος κατάστασης φ ισχύει αν και μόνο αν υπάρχει κάποια διαδρομή που ξεκινάει από την κατάσταση s και ικανοποιεί την φ. Σε αντίθεση, το φ ισχύει σε μια κατάσταση s αν και μόνο αν όλες οι διαδρομές που ξεκινούν από την κατάσταση s ικανοποιούν το φ. Η σημασιολογία για τους τύπους διαδρομής είναι η ίδια με την LTL. Για παράδειγμα, το Φ ισχύει σε μια κατάσταση s αν και μόνο αν υπάρχει κάποια διαδρομή π ξεκινώντας από την s τέτοια ώστε στην επόμενη κατάσταση της διαδρομή, δηλαδή στην κατάσταση π[1], ισχύει η ιδιότητα Φ. Στην εικόνα 4.1 απεικονίζεται η σημασιολογία για ορισμένους βασικούς τύπους στην CTL. 4.4 Παραδείγματα Στην ενότητα αυτή δίνεται ένα σύνολο από παραδείγματα χρησιμοποιώντας τη χρονική λογική CTL με σκοπό να περιγραφεί ο τρόπος ορισμού ενός συνόλου ιδιοτήτων στην CTL. Παράδειγμα 5. Θεωρούμε το παράδειγμα που αναλύσαμε και στο Κεφ. 3 σχετικό με τον έλεγχο αμοιβαίου αποκλεισμού μεταξύ δύο ταυτόχρονων διεργασιών P 1 και P 2. Περιγράφουμε την safety ιδιότητα «μόνο μια διεργασία να βρίσκεται στο κρίσιμο τμήμα της κάθε χρονική στιγμή» ως εξής: ( (crit 1 crit 2 )). (4.4) Παρομοίως, περιγράφουμε την liveness ιδιότητα «όταν κάποια διεργασία βρίσκεται σε κατάσταση αναμονής να μπαίνει κάποια στιγμή στο κρίσιμο τμήμα της» ως εξής: (wait 1 (crit 1 )) (wait 2 (crit 2 )). (4.5) 23

Σχήμα 4.1: Σημασιολογία για ορισμένους βασικούς τύπους της CTL [1, Κεφ. 6] 24

Παράδειγμα 6. Θεωρούμε και πάλι το πρόβλημα των γευματιζόντων φιλοσόφων (βλ. Κεφ. 3). Για να εκφράσουμε την απουσία μιας deadlock κατάστασης εισάγουμε τον τελεστή στον τύπο 3.5, διότι θέλουμε να ελέγχουμε την ύπαρξη μιας τέτοιας κατάστασης σε όλες τις πιθανές διαδρομές. Συνεπώς, έχουμε: ( wait i occupied i ). (4.6) 0 i<n 0 i<n Παράδειγμα 7. Θεωρούμε το σύστημα μετάβασης του σχήματος 4.2. Κάτω από το σύστημα μετάβασης απεικονίζονται μια σειρά από CTL τύποι. Μια κατάσταση είναι χρωματισμένη με μαύρο χρώμα αν ο τύπος είναι έγκυρος, και λευκός αν δεν είναι. Εξετάζουμε τους ακόλουθους τύπους: Ο τύπος α είναι έγκυρος για όλες τις καταστάσεις διότι όλες οι καταστάσεις έχουν κάποια άμεση διάδοχο κατάσταση η οποία ικανοποιεί το α. Ο τύπος α δεν είναι έγκυρος στην κατάσταση s 0 διότι υπάρχει πιθανή διαδρομή η οποία ξεκινάει από το s 0 και πηγαίνει άμεσα στην κατάσταση s 2, στην οποία δεν ισχύει το α. Από τη στιγμή που όλες οι άλλες καταστάσεις έχουν μόνο άμεσες καταστάσεις διαδόχους για της οποίες το α ισχύει, το α είναι έγκυρο για όλες τις άλλες καταστάσεις. Για όλες τις καταστάσεις εκτός από την s 2, είναι πιθανό να υπάρχει κάποιος υπολογισμός ο οποίος οδηγεί στην s 3 (όπως η s 0 s 1 s ω 3 όταν ξεκινάμε από την s 0 ) για την οποία το α είναι έγκυρο καθολικά. Επομένως, ο τύπος α είναι έγκυρος σε αυτές τις καταστάσεις. Λόγω του ότι α L(s 2 ) δεν υπάρχει διαδρομή η οποία ξεκινάει από το s 2 για την οποία το α είναι καθολικά έγκυρο. Ο τύπος α είναι έγκυρος για την κατάσταση s 3 διότι η μοναδική διαδρομή s ω 3 πάντοτε επισκέπτεται μια κατάσταση στην οποία το α ισχύει. Για όλες τις άλλες καταστάσεις είναι πιθανό να έχουμε μια διαδρομή η οποία περιέχει την κατάσταση s 2, η οποία δεν είναι έγκυρη. Για αυτές τις καταστάσεις ο τύπος α δεν είναι έγκυρος. 25

Σχήμα 4.2: Παράδειγμα συστήματος μετάβασης 1 [1, Κεφ. 6] Ο τύπος ( α) είναι έγκυρος για όλες τις καταστάσεις διότι από κάθε κατάσταση μπορούμε να φτάσουμε σε μια άλλη κατάσταση (s 0, s 1 ή s 3 ) στην οποία μπορεί να ξεκινήσει ένας υπολογισμός όπου το α θα είναι καθολικά έγκυρο. Ο τύπος (α b) δεν είναι έγκυρος στην κατάσταση s 3 διότι ο υπολογισμός s ω 3 δεν φτάνει ποτέ σε κατάσταση όπου ισχύει το b. Στην κατάσταση s 0 η πρόταση α ισχύει έως ότου ισχύει το b, και στις καταστάσεις s 1 και s 2 η πρόταση α ισχύει άμεσα. Επομένως, για αυτές τις καταστάσεις ο τύπος ισχύει. 4.5 Περίληψη κεφαλαίου Στο κεφάλαιο αυτό έγινε μια εισαγωγή στη μη-γραμμική χρονική λογική, η οποία είναι μια λογική για ορισμό ιδιοτήτων που βασίζονται σε δενδροειδή δομές των καταστάσεων. Εγινε αναφορά στους βασικούς χρονικούς τελεστές που χρησιμοποιούνται, στο συντακτικό και τη σημασιολογία της γλώσσας. Επίσης παρουσιάστηκαν παραδείγματα στα οποία ορίστηκαν τόσο safety όσο και liveness ιδιότητες. 26

Κεφάλαιο 5 Σύγκριση εξεταζόμενων χρονικών λογικών Στο κεφάλαιο αυτό γίνεται μια σύγκριση μεταξύ των LTL και CTL χρονικών λογικών. Βασικός λόγος σύγκρισης των δυο χρονικών λογικών αποτελεί ο έλεγχος για το αν οι δυο χρονικές λογικές είναι ισοδύναμες όσον αφορά στην εκφραστικότητά τους, η σύγκριση της χρονικής τους πολυπλοκότητας, καθώς και η εξέταση καταλληλότητας των χρονικών λογικών ανάλογα με την περίπτωση εφαρμογής. 5.1 Γενική σύγκριση Σύμφωνα με τα αποτελέσματα που παρουσιάστηκαν στο [1, Κεφ. 6] ακολουθούν ορισμένες γενικές διαφορές μεταξύ των γραμμικών και μη-γραμμικών λογικών. Η εκφραστικότητα των γραμμικών και μη-γραμμικών χρονικών λογικών δεν είναι συγκρίσιμη. Συνεπώς ορισμένες ιδιότητες οι οποίες μπορούν να εκφραστούν στη γραμμική χρονική λογική δεν μπορούν να εκφραστούν στη μη-γραμμική χρονική λογική, και αντίθετα. Οι αλγόριθμοι που χρησιμοποιούνται στις τεχνικές του model checking για τις γραμμικές και μη-γραμμικές χρονικές λογικές είναι διαφορετικοί. Αυτό έχει ως αποτέλεσμα να έχουν και διαφορετική πολυπλοκότητα. Συγκεκριμένα η πολυπλοκότητα επίλυσης προβλημάτων με χρήση τεχνικών model checking για την LTL 27

είναι PSPACE-complete δηλαδή O( T S exp( φ )) και για την CTL είναι PTIME δηλαδή O( T S Φ ). Η έννοια της δικαιοσύνης (fairness) μπορεί να αντιμετωπιστεί στη γραμμική χρονική λογική χωρίς τη χρήση επιπλέον τεχνασμάτων διότι οι υποθέσεις δικαιοσύνης μπορούν να εκφραστούν σε αυτή τη λογική. Για πολλές μη-γραμμικές χρονικές λογικές αυτό δεν ισχύει. 5.2 Σύγκριση μεταξύ των LTL και CTL Σε αυτή την ενότητα γίνεται μια σύγκριση μεταξύ δυο συγκεκριμένων χρονικών λογικών, των LTL και CTL. Τα αποτελέσματα των συγκρίσεων βασίζονται σε υπάρχουσες ερευνητικές εργασίες. Συγκεκριμένα στο [20] γίνεται μια σύγκριση των προαναφερθέντων λογικών, σημειώνοντας ότι η CTL υστερεί και ότι έχει θεμελιώδες περιορισμούς οι οποίοι πηγάζουν από το γεγονός ότι αποτελεί μια μη-γραμμική χρονική λογική. Αυτό συνεπάγεται ότι η γλώσσα που χρησιμοποιεί είναι δύσκολη στη χρήση, δεν προσφέρεται για compositional reasoning [17], και είναι μη συμβατή με semi-formal μεθόδους επαλήθευσης. Ως semi-formal μέθοδος επαλήθευσης εννοείται αυτή η οποία αποτελείται από formal και μη formal μεθόδους επαλήθευσης [24]. Σε αντίθεση, η LTL αποτελεί μια πιο εκφραστική και εύκολη στην κατανόηση γλώσσα, υποστηρίζει compositional reasoning και semi-formal επαλήθευση. Ενα μειονέκτημα της LTL σε σύγκριση με την CTL αποτελεί το ότι η πρώτη δεν έχει την εκφραστική ισχύ της δεύτερης. 5.2.1 Εκφραστικότητα Οπως έχει αναλυθεί στις [14, 10, 4] οι δύο λογικές προσεγγίζουν διαφορετικά την έννοια του χρόνου. Συνεπώς αυτό έχει ως αποτέλεσμα να είναι διαφορετικές όσον αφορά στην εκφραστικότητά τους. Η CTL επιτρέπει τη χρήση ποσοτικών τελεστών όπως τον πάνω σε διαδρομές και είναι πιο εκφραστική σε περιπτώσεις όπου χρειάζεται διερεύνηση 28

ύπαρξης μιας πιθανότητας να υπάρχει κάτι σε μια διαδρομή ενός συστήματος μετάβασης T S. Για παράδειγμα, η LTL δεν μπορεί να εκφράσει την πιθανότητα μια πρόταση p να συμβαίνει σε κάποια διαδρομή στην επόμενη στιγμή ή σε κάποια στιγμή στο μέλλον. Η LTL δεν περιγράφει εκτελέσεις ενός συστήματος σε δενδροειδή μορφή με αποτέλεσμα να είναι εξαιρετικά δύσκολο ή αδύνατο να εκφράσει καταστάσεις όπου διαφορετικές συμπεριφορές μπορεί να υπάρχουν σε διαφορετικές διακλαδώσεις την ίδια στιγμή. Στην πράξη το προηγούμενο δεν συμβαίνει συχνά, έχοντας ως αποτέλεσμα η LTL σε συνδυασμό με την εκφραστικότητά της να αποτελεί μια καλύτερη επιλογή [20]. Στη συνέχεια δίνονται ορισμένα παραδείγματα στα οποία αποδεικνύεται η μη-ισοδυναμία των δυο χρονικών λογικών γλωσσών. Λήμμα 1. Ο CTL τύπος α και ο LTL τύπος α δεν είναι ισοδύναμοι [1, Κεφ. 6]. Απόδειξη: Θεωρούμε το ακόλουθο σύστημα μετάβασης T S στο AP = {α} της εικόνας 5.1. Η αρχική κατάσταση s 0 ικανοποιεί τον LTL τύπο α διότι κάθε διαδρομή που ξεκινάει από το s 0 τελικά παραμένει πάντοτε σε μία από τις καταστάσεις s 0 ή s 2, οι οποίες έχουν ως ετικέτα το α. Ομως ο CTL τύπος α δεν ισχύει στην κατάσταση s 0 διότι s ω 0 α, αφού s 0 α. Αυτό πηγάζει από το γεγονός ότι η διαδρομή s 0s 1 s ω 2 περνάει από την μη-α-κατάσταση s 1. Επομένως, το s ω 0 αποτελεί μια διαδρομή η οποία ξεκινάει από το s 0 και η οποία δεν θα φτάσει ποτέ στην κατάσταση στην οποία θα ικανοποιείται το α, δηλαδή, s ω 0 α. Επομένως, προκύπτει ότι: s 0 α. (5.1) Παραθέτουμε το θεώρημα των Clarke και Draghicescu [2] το οποίο αναφέρει: Θεώρημα 1. Εστω Φ ένας CTL τύπος, και φ ένας LTL τύπος ο οποίος προκύπτει αφαιρώντας όλους τους χρονικούς τελεστές διαδρομών στον Φ. υπάρχει LTL τύπος ο οποίος είναι ισοδύναμος με τον Φ. Τότε Φ φ ή δεν 29

Σχήμα 5.1: Παράδειγμα συστήματος μετάβασης 2 [1, Κεφ. 6] Δεδομένου ότι ο CTL τύπος α και ο LTL τύπος α δεν είναι ισοδύναμοι, και το γεγονός ότι ο τύπος α είναι αποτέλεσμα του α αφαιρώντας το χρονικό τελεστή, προκύπτει από το θεώρημα των Clarke και Draghicescu ότι δεν υπάρχει LTL τύπος ο οποίος είναι αντίστοιχος του α. Παρομοίως, μπορεί να δειχθεί ότι ο CTL τύπος (α α) και ο LTL τύπος (α α) δεν είναι ισοδύναμοι, με αποτέλεσμα η απαίτηση (α α) να μην μπορεί να εκφραστεί στην LTL. Λήμμα 2. Ο CTL τύπος (α α) και ο LTL τύπος (α α) δεν είναι ισοδύναμοι. Απόδειξη: Θεωρούμε το σύστημα μετάβασης της εικόνας 5.2. Ολες οι διαδρομές οι οποίες ξεκινούν από την αρχική κατάσταση s 0 έχουν ως πρόθεμα την διαδρομή s 0 s 1 ή την s 0 s 3 s 4. Ολες αυτές οι διαδρομές ικανοποιούν τον LTL τύπο (α α) και επομένως, s 0 (α α). Ομως, s 0 (α α) διότι η διαδρομή s 0 s 1 (s 2 ) ω δεν ικανοποιεί τον τύπο (α α). Αυτό πηγάζει από το γεγονός ότι η κατάσταση s 0 έχει την μη-α-κατάσταση s 3 ως άμεσο διάδοχο, δηλαδή s 0 α α. Τα παραπάνω παραδείγματα παρουσιάζουν ότι ορισμένες απαιτήσεις οι οποίες εκφράζονται στην CTL δεν μπορούν να εκφραστούν στην LTL. Στη συνέχεια παραθέτουμε ένα θεώρημα [1, Κεφ. 6] το οποίο αποδεικνύει ότι ορισμένες απαιτήσεις στην LTL δεν μπορούν να εκφραστούν στην CTL. Με αυτό τον τρόπο αποδεικνύεται ότι η εκφραστικότητα των δύο εξεταζόμενων χρονικών λογικών είναι μη-συγκρίσιμη. 30

Σχήμα 5.2: Παράδειγμα συστήματος μετάβασης 3 [1, Κεφ. 6] Θεώρημα 2. Μη-συγκρίσιμη εκφραστικότητα των LTL και CTL. (α) Υπάρχει LTL τύπος για τον οποίο δεν υπάρχει αντίστοιχος CTL τύπος. Αυτό ισχύει για παράδειγμα στην περίπτωση α ή (α α). (β) Υπάρχει CTL τύπος για τον οποίο δεν υπάρχει αντίστοιχος LTL τύπος. Αυτό ισχύει για παράδειγμα στην περίπτωση α και (α α) και α. 5.2.2 Πολυπλοκότητα Οι αλγόριθμοι ελέγχου μοντέλων για την LTL και την CTL είναι διαφορετικοί. Ενας από τους λόγους οι οποίοι λειτουργούν υπέρ της χρήσης της CTL αποτελεί το γεγονός ότι η πολυπλοκότητά της είναι μικρότερη από αυτή της LTL. Θεωρώντας ένα σύστημα μετάβασης T S και ένα τύπο φ γραμμικής χρονικής λογικής, το πρόβλημα ελέγχου μοντέλου για τα T S και φ είναι να αποφασιστεί αν ο φ ισχύει σε όλους τους υπολογισμούς του T S. Οταν ο φ αποτελεί ένα τύπο μη-γραμμικής λογικής, τότε το πρόβλημα είναι να αποφασιστεί αν ο φ ισχύει στο δέντρο υπολογισμών του T S. Θεωρούμε ότι μας δίνεται ένα σύστημα μετάβασης μεγέθους n και ένα τύπο μεγέθους m. Για την περίπτωση εφαρμογής της γραμμική λογικής LTL η πολυπλοκότητα του ελέγχου μοντέλου είναι n2 O(m), ενώ στην περίπτωση της CTL είναι O(nm). Διαισθητικά μπορούμε να πούμε ότι αυτό συμβαίνει διότι η CTL βασίζεται σε καταστάσεις και αυτό το σύνολο των καταστάσεων μπορεί εύκολα να μετατραπεί σε ένα αυτόματο, ενώ στην LTL το βασισμένο 31