Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, 11.-13. März 2015.

Ähnliche Präsentationen


Präsentation zum Thema: "Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, 11.-13. März 2015."—  Präsentation transkript:

1 Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, 11.-13. März 2015

2 2 Was heißt Korrektheit ? Fehler entstehen trotz Modellierung. Testen ist bekanntermaßen fragwürdig. Verifikation liefert nicht das was ich will:

3 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Was interessiert mich nicht ? Ob ein Algorithmus korrekt ist; ob eine Software korrekt ist; ob ein Test erschöpfend ist; ob eine Software verifiziert ist; ob ein Verifyer korrekt ist; ob eine Hardware Fehler macht. 3 {-1} _ 3 Was will ich? Lösungsmenge L quadratischer Gleichungen x²+2x+1=0 L = { -1 } 3

4 {-1} Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Ann.: r = -1. Ich mach die Probe: (-1)² + 2(-1) + 1 = 0 : -1 ist eine Lösung! Die Diskriminante (-1)² + 2((-1)) + 1 = 0 impliziert |L| = 1! Also gilt: L = { -1 }. 44 Was überzeugt mich? Lösungsmenge L quadratischer Gleichungen x²+2x+1=0 L = { -1 }

5 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Ann.: r = -1. Ich mach die Probe: Wie geht das allgemein? accept reject Instanz i Resultat r Algorithmus „Probe“ 5 Lösungsmenge L quadratischer Gleichungen x²+2x+1=0 L = { -1 }

6 „Probe“ certifyer Klappt das auch für andere P ? Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Ann.: r = „i ist 2-färbbar.“ Was mich von der Korrektheit von r überzeugt: Eine 2-Färbung von i, z.B. 2-Färbbarkeit von Graphen i ist 2-färbbar. ist ein Zeuge für r zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z Ersetze die Probe durch einen certifyer: 6

7 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Ann.: r = „i ist nicht 2-färbbar.“ Was mich von der Korrektheit von r überzeugt: Der ungerade Kreis in … Eine Variante zusammen mit dem Theorem: Sei G ein Graph. G enthalte einen kreisförmigen Subgraphen S mit einer ungeraden Zahl von Knoten. Dann ist G nicht 2-färbbar. i ist nicht 2-färbbar. ist ein Zeuge für r zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer 7 2-Färbbarkeit von Graphen

8 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Wie geht das allgemein? 2-Färbbarkeit von Graphen r = „… ist 2-färbbar“ z: eine Färbung der Knoten, e = „… ist eine 2-Färbung“ oder r = „… ist nicht 2-färbbar“ z: ein Graph, e = „… ist ein ungerader Kreis“ Beobachtung: Zu jedem i gibt es ein solches z zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer Def.: Sei z ein Artefakt mit einer Eigenschaft e so dass gilt: e impliziert r = P(i). (*) Dann ist z ein Zeuge für r; e ist das Zeugenprädikat von z; (*) ist die Zeugeneigenschaft von z. 8

9 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Qualität von Zeugen Def.: Sei z ein Artefakt mit einer Eigenschaft e so dass gilt: e impliziert r = P(i). (*) Dann ist z ein Zeuge für r; e ist das Zeugenprädikat von z; (*) ist die Zeugeneigenschaft von z. zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer guter Zeuge - (*) ist leicht nachvollziehbar … als Schema unabh. von i. schlechter Zeuge: Beispiel: z = r prima Zeuge: z = P(i) … wirklich? WO HER KOMMT z ? 9

10 Gegeben: Problem P; Meine Instanz i von P. Was ich will: Das korrekte Ergebnis P(i). Was ich habe: Ein (berechnetes oder geratenes) Resultat r. Was mich deshalb interessiert: r = P(i) ? Der Algorithmus liefert auch z ! guter Zeuge - (*) ist leicht nachvollziehbar … als Schema unabh. von i. - Checker-Programm ist leicht verifizierbar. Def.: Sei z ein Artefakt mit einer Eigenschaft e so dass gilt: e impliziert r = P(i). (*) Dann ist z ein Zeuge für r; e ist das Zeugenprädikat von z; (*) ist die Zeugeneigenschaft von z. schlechter Zeuge: Beispiel: z = r prima Zeuge: z = P(i) … wirklich? WO HER KOMMT z ? Wer garantiert z‘ = z ? zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer berech- neter Zeuge z’ Checker 10

11 im Prinzip ja: Nimm den Algorithmus selbst als Zeugen. ( (*) = Theorembeweis) Herausforderung: Finde gute Zeugen! Checker: “Für z gilt e” Beweis von (*) gute Zeugen Probe machen Geht das immer? schwierig zu verstehen Zeuge = Algorithmus 2-färbbar nicht 2-färbbar einfach zu verstehen schwierig zu verstehen zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer

12 nein: Die Idee ist von Kurt Mehlhorn. Wir sollten sie in die Modellierung intergrieren! Beweis von (*) gute Zeugen Probe machen Ist das wirklich was neues? einfach zu verstehen schwierig zu verstehen Zeuge = Algorithmus 2-färbbar nicht 2-färbbar schwierig zu verstehen Gegeben r und z: Ich muss (*) glauben. hat das berechnete z die Eigenschaft e? Checker: “Für z gilt e” danke, das wär‘s! zertifizierender accept reject Instanz i Resultat r Algorithmus Zeuge z „Probe“ certifyer


Herunterladen ppt "Theory of Programming Prof. Dr. W. Reisig Was heißt „Korrektheit“? W. Reisig Workshop Modellierung Hamburg, 11.-13. März 2015."

Ähnliche Präsentationen


Google-Anzeigen