ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 412: Λογική στην Πληροφορική Ενδιάμεση Εξέταση Ημερομηνία : Δευτέρα 2 Νοεμβρίου 2015 Διάρκεια : 10:30 12:00 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Οδηγίες: Να διαβάσετε προσεχτικά και να απαντήσετε σε όλες τις ερωτήσεις. Να γράψετε τις απαντήσεις σας (καθαρά) στο εξεταστικό δοκίμιο. Ο άριστος βαθμός της εξέτασης είναι 100. Καλή Επιτυχία! Ερώτηση Βαθμός 1 2 3 Τελικός Βαθμός:
Άσκηση 1 [30 μονάδες] Να αποδείξετε τα πιο κάτω λογικά επακόλουθα χρησιμοποιώντας τα συστήματα κανόνων του Προτασιακού Λογισμού (μέρος (α)) και του Κατηγορηματικού Λογισμού (μέρος (β)). (α) [12 μονάδες] ( p ( q r)), ( p q) r q r 1. ( p ( q r)) προϋπόθεση 2. ( p q) r προϋπόθεση 3. p q πρ. υπ. r πρ. υπ. 4. p πρ. υπ. q πρ. υπ. q r i 3 5. q q LEM q r i 4 6. q πρ. υπ. q πρ. υπ. 7. q r i 6 r πρ. υπ. 8. q r i 6, 7 9. p ( q r) i 4, 8 10. e 1, 9 11. r e 7-10 12. q r i 11 13. q r e 5, 6-12 14. q r e 3, 4-13 15. q r e 2, 3-14 (β) [18 μονάδες] x [ ( y (L(x,y) L(y,x)) ) L(x,x) ], x y L(x,y) x L(x,x) 1. x [ ( y (L(x,y) L(y,x)) ) L(x,x) ] προϋπόθεση 2. x y L(x,y) προϋπόθεση 3. x 0 y L(x 0,y) πρ. υπόθεση 4. L(x 0, x 0 ) y e 3 5. x L(x,x) x i 4 6. x L(x,x) x e 2, 3-5
Άσκηση 2 [45 μονάδες] (α) [9 μονάδες] Να αναφέρετε τρεις μεθόδους μέσω των οποίων μπορούμε να ελέγξουμε την εγκυρότητα προτάσεων του Κατηγορηματικού Λογισμού και να τις περιγράψετε. 1. Σημασιολογία (Αλήθεια του Tarski): Με τη χρήση της μεδόθου αυτής επιδεικνύουμε ότι η πρόταση είναι αληθής σε κάθε δυνατό μοντέλο χρησιμοποιώντας τους κανόνες της σημασιολογίας. 2. Συστήματα απόδειξης λογικού συμπερασμού: Η μέθοδος χρησιμοποιεί ένα σύνολο από αποδεικτικούς κανόνες με τη χρήση του οποίου μπορούμε να καταλήξουμε σε συμπεράσματα. Μια πρόταση είναι έγκυρη αν μπορεί να αποδειχθεί μέσω των κανόνων. 3. Μέθοδος της Επίλυσης: Η μέθοδος μας επιτρέπει με τη χρήση ενός κανόνα να δείξουμε ότι μια πρόταση είναι μη ικανοποιήσιμη. Για να αποδείξουμε την εγκυρότητα μιας πρότασης, θα πρέπει να εφαρμόσουμε τη Μέθοδο της Επίλυσης στην άρνηση της πρότασης. Αν οδηγηθούμε στο συμπέρασμα ότι η πρόταση αυτή είναι μη ικανοποιήσιμη, τότε η αρχική μας πρόταση είναι έγκυρη. (β) Θεωρήστε τις πιο κάτω προτάσεις: φ 1 = P(0) x P(x) y ( P(y) P(s(s(y))) ) φ 2 = x y ( P(y) P(s(x)) ) (i) [6 μονάδες] Να δείξετε ότι η πρόταση φ 1 φ 2 είναι ικανοποιήσιμη επιδεικνύοντας μοντέλο στο οποίο η πρόταση να γίνεται αληθής. Θεωρούμε ερμηνεία όπου: Το σύμπαν αποτελείται από τους μη αρνητικούς ακέραιους. P(x): το κατηγόρημα που εκφράζει αν ο x είναι άρτιος. s(x) = x + 1 Σε αυτό το μοντέλο ικανοποιούνται και οι δύο προτάσεις. Επομένως η πρόταση φ 1 φ 2 είναι ικανοποιήσιμη. (ii) [12 μονάδες] Να αποδείξετε ότι η πρόταση φ 1 φ 2 είναι έγκυρη χρησιμοποιώντας τη σημασιολογία του Κατηγορηματικού Λογισμού (Αλήθεια του Tarski). Ας υποθέσουμε (με στόχο να φτάσουμε σε αντίφαση) ότι η πρόταση φ 1 φ 2 δεν είναι έγκυρη. Τότε, για κάποιο μοντέλο Μ με σύμπαν Α: Μ P(0) x P(x) y ( P(y) P(s(s(y))) ) (1) και όχι Μ x y ( P(y) P(s(x)) ) (2) Από το (2) έχουμε ότι: Όχι [ υπάρχει a Α τέτοιο ώστε για κάθε b Α, Μ P(b) ή Μ P(s(a)) ] Επομένως
Για κάθε a Α υπάρχει b Α τέτοιο ώστε Μ P(b) και Μ P(s(a)) Αφού η πρόταση ισχύει για κάθε a ισχύει και για a = s(0). Δηλαδή, υπάρχει b Α τέτοιο ώστε Μ P(b) και (3) όχι Μ P(s(s(0))) (4) Από το (1) συνεπάγεται ότι Μ P(0) και Μ y ( P(y) P(s(s(y))) ) Επομένως Μ P(0) και Μ P(c) P(s(s(c))) για κάθε c A Αν πάρουμε c = 0 έχουμε ότι Μ P(0) και (5) Μ P(0) ή Μ P(s(s(0))) (6) Από τα (5) και (6) καταλήγουμε στο συμπέρασμα ότι Μ P(s(s(0))) Αυτό όμως έρχεται σε αντίφαση με το (4). Συνεπώς, η αρχική μας υπόθεση είναι λανθασμένη και η πρόταση είναι έγκυρη. (iii) [18 μονάδες] Να αποδείξετε ότι η πρόταση φ 1 φ 2 είναι έγκυρη χρησιμοποιώντας τη Μέθοδο της Επίλυσης. Ξεκινούμε θεωρώντας την άρνηση της πρότασης την οποία μετατρέπουμε σε κανονική μορφή Prenex: (φ 1 φ 2 ) = φ 1 φ 2 = P(0) x P(x) y ( P(y) P(s(s(y)))) x y ( P(y) P(s(x)) ) = P(0) x P(x) y ( P(y) P(s(s(y)))) x y ( P(y) P(s(x)) ) = P(0) x P(x) y ( P(y) P(s(s(y))) x y (P(y) P(s(x)) ) = P(0) x P(x) y ( P(y) P(s(s(y))) z w (P(w) P(s(z)) ) = P(0) x P(x) z w (P(w) P(s(z)) ) y ( P(y) P(s(s(y))) = x z w y [P(0) P(x) P(w) P(s(z)) ( P(y) P(s(s(y)))] Στη συνέχεια εφαρμόζουμε απαλοιφή των ποσοδεικτών: P(0) P(a) P(f(z)) P(s(z)) ( P(y) P(s(s(y)))) Με βάση τα πιο πάνω προκύπτει το πιο κάτω προτασιακό σύνολο: { {P(0)}, { P(a)}, {P(f(z))}, { P(s(z))}, { P(y) P(s(s(y)))} } Η Μέθοδος της Επίλυσης επιφέρει διάψευση στο προτασιακό σύνολο όπως φαίνεται στο δέντρο που ακολουθεί: P(0) P(y), P(s(s(y))) P(s(z)) P(a) P(f(z)) P(s(s(0)))
Άσκηση 3 [25 μονάδες] (α) [5 μονάδες] Να γράψετε τον κανόνα SLD-Επίλυση στον οποίο βασίζεται ο Λογικός Προγραμματισμός και να τον εξηγήσετε. Α 1,,Α i-1, A i, A i+1,, A n, A B 1,,B k, A i θ i = Aθ i (Α 1,,Α i-1, B 1,,B k, A i+1,, A n ) θ i Σύμφωνα με τον Κανόνα SLD-Επίλυση οποίος εμφανίζεται πιο πάνω, δεδομένου του στόχου ενός προγράμματος Α 1,,Α i-1, A i, A i+1,, A n και μιας εντολής του προγράμματος A B 1,,B k σύμφωνα με την οποία για να υπολογίσουμε το Α πρέπει να υπολογίσουμε τα B 1,,B k, εφόσον ο όρος του στόχου μας Α i μπορεί να ενοποιηθεί με το Α μέσω μιας αντικατάσταση θ i, τότε ο στόχος του προγράμματος μπορεί να μετατραπεί σε (Α 1,,Α i-1, B 1,,B k, A i+1,, A n ) θ i. Ο κανόνας αυτός δεν είναι παρά μια εξειδίκευση του κανόνα της Επίλυσης στον Κατηγορηματικό Λογισμό. Οι όροι του κανόνα αντιστοιχούν στα προτασιακά σύνολα που εμφανίζονται πιο κάτω Α 1,,Α i-1, A i, A i+1,, A n { Α 1,, Α i-1, A i, A i+1,, A n } A B 1,,B k, {A, B 1,, B k } όπου, προφανώς, αν οι όροι Α i και Α μπορούν να ενοποιηθούν μέσω της ενοποιήτριας συνάρτησης θ i, η επίλυση μας επιστρέφει το προτασιακό σύνολο { Α 1,, Α i-1, B 1,, B k, A i+1,, A n }θ i που αποτελεί και την απόδοση του στόχου (Α 1,,Α i-1, B 1,,B k, A i+1,, A n ) θ i που εμφανίζεται ως αποτέλεσμα της εφαρμογής του κανόνα.
(β) [20 μονάδες] Να χρησιμοποιήσετε τη μέθοδο της SLD επίλυσης για να φθάσετε σε διάψευση του στόχου στο πιο κάτω πρόγραμμα Λογικού Προγραμματισμού και να υπολογίσετε την αντικατάσταση ορθής απάντησης που προκύπτει. add(x,0,x) add(x,s(y),s(z)) add(x,y,z) mul(x,0,0) mul(x,s(y),z) mul(x,y,a), add(a,x,z) mul (U, V, s(s(0))) 1. add(x,0,x) 2. add(x,s(y),s(z)) add(x,y,z) 3. mul(x,0,0) 4. mul(x,s(y),z) mul(x,y,a), add(a,x,z) 5. mul (U, V, s(s(0))) 6. mul(u,y,a), add(a,u,s(s(0))) Από γραμμές 4 και 5 και αντικατάσταση σ={ U/X, s(y)/v, s(s(0))/z } 7. mul(s(y 1 ),Y,A), add(a,y 1,s(0)) Από γραμμές 2 και 6 και αντικατάσταση σ={ A/X 1, s(y 1 )/U, s(0)/z 1 } 8. mul(s(s(y 2 )),Y,A), add(a,y 2,0) Από γραμμές 2 και 7 και αντικατάσταση σ={ A/X 2, s(y 2 )/Y 1, 0/Z 2 } 9. mul(s(s(0)),y,0) Από γραμμές 1 και 8 και αντικατάσταση σ={ A/X 3, 0/Y 2, 0/A } 10. Από γραμμές 3 και 9 και αντικατάσταση σ={ s(s(0))/x 4, 0/Y } Αντικατάσταση ορθής απάντησης: U s(y 1 ) s(s(y 2 )) s(s(0)) V s(y) s(0)