uni:6:fsv:start
This is an old revision of the document!
−Table of Contents
Formale Spezifikation und Verifikation
Formal = Mittels Logik
Propositionallogik
Syntax
Propositionale Variablen | A,B,C,… |
---|---|
Junktoren | ¬,∧,∨,⇒,⇔ |
Formel | ϕ,ψ,… |
Konstanten | ⊤,⊥ |
Semantik
Belegung | η |
---|---|
Foo | ⟦ϕ⟧η |
Bar | &,∣∣ |
Tautologie | ∀η:⟦ϕ⟧η |
---|---|
Erfüllbar | ∃η:⟦ϕ⟧η |
Unerfüllbar | ∀η:¬⟦ϕ⟧η |
Äquivalent | ∀η:⟦ϕ⟧η=⟦ψ⟧η |
Erfüllbarkeitsäuivalenz | (ϕ und ψ sind erfüllbar)∨(ϕ und ψ sind unerfüllbar) |
Normierung
Literal | A und ¬A |
---|---|
Minterm | Konjunktion: …∧…∧…∧… (Die wenigsten Belegungen sind ⊤) |
Maxterm / Klausel | Disjunktion: …∨…∨…∨… (Die meisten Belegungen sind ⊤) |
KNF | (…∨…∨…∨…)∧(…∨…∨…∨…) |
DNF | (…∧…∧…∧…)∨(…∧…∧…∧…) |
- ⋀∅=⊤
- ⋁∅=⊥
ϕ … KNF | Größe | Zeit |
---|---|---|
Äquivalent | exponentiell | ? |
Erfüllungsäuivalent | linear | polynomiell |
Tseitin Übersetzung
- Rekursive Funktion KNF
- Rein
- (Nicht-Normalisierte) Formel
- Raus
- Neuster (frischer) Variablenname
- KNF
- C ist frische Variable
- Regel: C⇔ϕ als KNF
- Tabelle Erstellen
- Bei 0: Veroderung (Disjunktion) erstellen (A=0⇒A / A=1⇒¬A)
- Verodrungen verunden (Konjunktion)
KNF(A)=(A,⊤) |
KNF(¬ϕ)=let (B,Γ)=KNF(ϕ) in(C,Γ∧(C∨B)∧(¬C∨¬B)) |
KNF(ϕ1∨ϕ2)=let (B1,Γ1)=KNF(ϕ1) inlet (B2,Γ2)=KNF(ϕ2) in(C,Γ1∧Γ2∧(¬C∨B1∨B2)∧(C∨¬B1)∧(C∨¬B2)) |
SAT-Solver
SAT
- “ist ϕ erfüllbar?”
- Entscheidungsproblem (NP-Hart)
- Nur für KNF
- Erweiterung auf nicht KNF: Tseitin Übersetzung
- Erweiterung auf Äquivalenz von ϕ und ψ: ¬(ϕ⇔ψ) unerfüllbar?
DPLL-Algorithmus
- Rekursive Funktion DPLL
- Rein
- (Teil) Besetzung
- (Rest) KNF
- Raus
- Bessere Belegung
Hier gibt es mehr. Aber das halte ich für Klausurirrelevant
Gleichheit von Schaltkreisen
Wenn gezeigt werden soll, das die Schaltungen f und f′ bezüglich ihrer Eingänge x… das selbe liefern, dann darf ¬((f1(x…)⇔f′1(x…))∧(f2(x…)⇔f′2(x…))) keine Lösung liefern.
Nebenläufige Systeme
Zeit | |||||
---|---|---|---|---|---|
0 | 1 | … | n-1 | ||
Zustand | z1 | xzt | |||
z2 | |||||
… |
⋀t⋀z∈Z⋀z′≠z¬(xzt∧xz′t) | Zu jeder Zeit ist nur ein zustand gesetzt |
⋁z∈Ixz0 | Einer der Startzustände |
⋀n−2t=0⋁z→z′xzt∧xz′(t+1) | Zu jeder Zeit führt ein Zustand in einen Folgezustand |
⋁n−1t=0⋁z∈Vxzt | Zu einer Zeit ist ein verbotener Zustand erreicht |
Dieses System darf keine Lösung haben.
BDD
nichtreduzierter BDDs
- Gerichtet
- Azyklisch
- Knoten auf Pfad mit fixer Ordnung (es dürfen welche fehlen)
reduzierte BDDs (zusätzlich)
- Keine Kanten mit identischen Start und Ziel (gleich ist OK)
- Keine Redundanz (isomarphen Teilgraphen)
- Nur True und False als Blätter (jeweils max. 1x)
nichtreduziert → reduziert
- Knoten mit identischen Nachfolgern entfernen
- Knoten: Name gleich & Nachfolger gleich ⇒ verschmelzen
- True/False verschmelzen.
BDDs sind eindeutig: Gleiche Funktion ⇒ isomorphe BDDs
Shannon-Zerlegung: f=(x∧f[x:=⊤])∨(¬x∧f[X:=])
uni/6/fsv/start.1405019163.txt.gz · Last modified: 2020-11-18 18:10 (external edit)