Λογική υπολογιστικού δένδρου
Η λογική υπολογιστικού δένδρου (Computation tree logic, CTL) είναι μια λογική διακλαδιζόμενου χρόνου (branching-time), το οποίο σημαίνει ότι το μοντέλο της για το χρόνο είναι μια δενδρική δομή, στην οποία το μέλλον δεν έχει οριστεί αλλά υπάρχουν διαφορετικά μονοπάτια σε αυτό και κάθε ένα από αυτά τα μονοπάτια μπορεί να είναι ένα μονοπάτι που θα πραγματοποιηθεί.
Χρησιμοποιείται στην τυπική επαλήθευση λογισμικού ή υλικού, συνήθως από λογισμικό που ονομάζεται ελεγκτής μοντέλων.
Το λογισμικό αυτό προσδιορίζει αν το λογισμικό ή το υλικό που ελέγχεται έχει κάποιες συγκεκριμένες ιδιότητες ασφάλειας (safety) ή ζωτικότητας (liveness).
Ανήκει στην κατηγορία των χρονικών λογικών, όπως και η γραμμική χρονική λογική.
Σύνταξη της CTL
Η γλώσσα ενός καλώς ορισμένου τύπου σε CTL παράγεται από την ακόλουθη γραμματική χωρίς συμφραζόμενα:
\\phi::=\\bot |\\top |p|(\\neg\\phi)|(\\phi\\and\\phi)|(\\phi\\or\\phi)| (\\phi\\Rightarrow\\phi)|(\\phi\\Leftrightarrow\\phi)|AX\\phi|EX\\phi|AF\\phi|EF\\phi|AG\\phi|EG\\phi| A[\\phi U \\phi]|E[\\phi U \\phi]
όπου ο p παίρνει τιμές στο σύνολο των ατομικών τύπων (atomic formulas).
Δε χρειάζονται όλοι οι σύνδεσμοι - για παράδειγμα οι \\{\\neg, \\and, AX, AU, EU\\} αποτελούν πλήρες σύνολο συνδέσμων, με τους υπόλοιπους να μπορούν να οριστούν με βάση αυτούς.
Για παράδειγμα, ο εξής τύπος είναι ένας καλώς ορισμένος τύπος της CTL:
EF EG p \\Rightarrow AF r
Ο παρακάτω δεν είναι καλώς ορισμένος τύπος της CTL:
EF \\big(r U q\\big)
Το πρόβλημα με αυτόν είναι ότι ο U μπορεί να εμφανίζεται μόνο μαζί με έναν A ή έναν E.
Σαν κατασκευαστικά στοιχεία χρησιμοποιεί ατομικές προτάσεις για να δηλώσει ιδιότητες των καταστάσεων ενός συστήματος.
Η CTL στη συνέχεια συνδυάζει αυτές τις προτάσεις σε τύπους χρησιμοποιώντας λογικούς τελεστές και χρονικές λογικές.
Τελεστές
Οι λογικοί τελεστές είναι οι συνήθεις: \\neg,\\or,\\and,\\Rightarrow και \\Leftrightarrow. Οι τύποι της CTL μπορούν επιπλέον να χρησιμοποιούν με αυτούς τις λογικές σταθερές true (αληθές) και false (ψευδές).
Οι χρονικοί τελεστές είναι οι ακόλουθοι:
Στη CTL*, οι χρονικοί τελεστές μπορούν να αναμιγνύονται ελεύθερα.
Στη CTL, ο τελεστής πρέπει πάντα να ομαδοποιείται σε δύο θέσεις: ένας τελεστής μονοπατιού που ακολουθείται από έναν τελεστή κατάστασης.
Δείτε τα παραδείγματα παρακάτω.
Η CTL* είναι γνήσια πιο εκφραστική από τη CTL.
Στη CTL υπάρχει ένα ελάχιστο σύνολο από τελεστές.
Όλοι οι τύποι της CTL μπορούν να μετασχηματιστούν ώστε να χρησιμοποιούν μόνο αυτούς τους τελεστές, κάτι που είναι χρήσιμο στον έλεγχο μοντέλων.
Ένα ελάχιστο σύνολο από τελεστές είναι: {false, \\or, \\neg, EG, EU, EX}.
Ακολουθούν μερικοί από τους μετασχηματισμούς χρονικών τελεστών:
Σημασιολογία της CTL
Οι τύποι της CTL ερμηνεύονται με συστήματα μεταβάσεων (Transition Systems), όπως περιγράφεται τυπικά παρακάτω.
Έστω ότι \\mathcal{M}=(S,\\rightarrow,L) είναι ένα μοντέλο για τη CTL
with s \\in S, \\phi \\in F όπου F είναι το σύνολο των καλώς ορισμένων τύπων στην κανονική γλώσσα \\mathcal{M}.
Τότε η σημασιολογική σχέση (\\mathcal{M}, s \\models \\phi) ορίζεται από δομική επαγωγή (Structural Induction) στην \\phi:
Οι τύποι της CTL \\phi και \\psi λέγονται σημασιολογικά ισοδύναμοι αν κάθε κατάσταση σε κάθε μοντέλο που ικανοποιεί τον ένα, ικανοποιεί και τον άλλο.
Αυτό δηλώνεται \\phi \\equiv \\psi
Φαίνεται ότι οι A και E είναι δυικοί (δηλαδή ο ένας μπορεί να οριστεί με βάση τον άλλο), όπως και οι G και F, εφόσον είναι ο καθολικός και ο υπαρξιακός ποσοδείκτης αντίστοιχα στα υπολογιστικά δένδρα.
Οι νόμοι του Ντε Μόργκαν μπορούν να τυποποιηθούν στη CTL όπως στο παρακάτω παράδειγμα:
\\neg AF\\phi \\equiv EG\\neg\\phi
\\neg EF\\phi \\equiv AG\\neg\\phi
\\neg AX\\phi \\equiv EX\\neg\\phi
Από αυτά τα δεδομένα προκύπτει ότι:
AF\\phi \\equiv A[\\top U \\phi]
EF\\phi \\equiv E[\\top U \\phi]
Στην πραγματικότητα, μπορεί να δειχθεί, με τη χρήση αυτών των ταυτοτήτων, ότι ένα υποσύνολο των χρονικών συνδέσμων της CTL αρκεί αν περιέχει τον EU, τουλάχιστον έναν από τους \\{AX,EX\\} και τουλάχιστον έναν από τους \\{EG,AF,AU\\}.
Κάποιες επιπλέον σημαντικές ταυτότητες:
AG\\phi \\equiv \\phi \\land AX AG \\phi
EG\\phi \\equiv \\phi \\land EX EG \\phi
AF\\phi \\equiv \\phi \\lor AX AF \\phi
EF\\phi \\equiv \\phi \\lor EX EF \\phi
A[\\phi U \\psi] \\equiv \\psi \\lor (\\phi \\land AX A [\\phi U \\psi])
E[\\phi U \\psi] \\equiv \\psi \\lor (\\phi \\land EX E [\\phi U \\psi])
Παραδείγματα
Έστω ότι "P" σημαίνει "μου αρέσει η σοκολάτα" και Q σημαίνει "έχει ζέστη έξω."
"Θα μου αρέσει η σοκολάτα από τώρα, ό,τι και να γίνει."
"Μπορεί να μου αρέσει η σοκολάτα κάποια μέρα, τουλάχιστον για μία μέρα."
"Είναι πάντα πιθανό (AF) ότι ξαφνικά θα αρχίσει να μου αρέσει η σοκολάτα για όλον τον υπόλοιπο χρόνο."
(Σημείωση: όχι μόνο για την υπόλοιπη ζωή μου, επειδή αυτή είναι πεπερασμένη, ενώ ο G είναι άπειρος).
"Αυτή είναι μια σημαντική στιγμή στη ζωή μου.
Ανάλογα με το τι θα συμβεί στη συνέχεια (E), είναι πιθανό ότι για όλον τον υπόλοιπο χρόνο (G), θα υπάρχει πάντα κάποια στιγμή στο μέλλον (AF) που θα μου αρέσει η σοκολάτα.
Όμως, αν συμβεί κάτι λάθος την επόμενη στιγμή, δεν γνωρίζω αν θα μου αρέσει ποτέ η σοκολάτα."
"Από τώρα και μέχρι να έχει ζέστη έξω, θα μου αρέσει η σοκολάτα κάθε μέρα.
Τη στιγμή που θα έχει ζέστη έξω, δεν ξέρω αν θα μου αρέσει πια η σοκολάτα.
Α, και είναι εγγυημένο ότι τελικά θα έχει ζέστη έξω, ακόμα και αν αυτό είναι μόνο για μία μέρα."
"Είναι πιθανό ότι: τελικά θα έρθει κάποια στιγμή που θα έχει ζέστη για πάντα (AG.Q)
και πριν από αυτή τη στιγμή θα υπάρχει πάντα κάποιος τρόπος να μου αρέσει η σοκολάτα την επόμενη ημέρα (EX.P)."
Σχέση με άλλες λογικές
Η CTL είναι υποσύνολο της CTL*, όπως και του τροπικού μ-λογισμού.
Είναι επίσης ενδιαφέρον να επισημανθεί ότι η CTL είναι κομμάτι της Alur, της Χρονικής Λογικής Εναλλασσόμενου Χρόνου (Alternating-time Temporal Logic, ATL) των Henzinger και Kupferman.
Η CTL και η γραμμική χρονική λογική (LTL) είναι υποσύνολα της CTL*.
Η CTL και η LTL δεν είναι όμως ισοδύναμες και έχουν κοινό υποσύνολο, το οποίο είναι πραγματικό υποσύνολο κάθε μιας από αυτές.
Αναφορές
