k610-Boolesche_Ausdruecke_Wiederholung

k610-Boolesche_Ausdruecke_Wiederholung

Page 1

page-01.png

Kapitel 6 – Formale Spezifikation von Hardware

  1. Boolesche Ausdrücke (Wiederholung)
  2. Binäre Entscheidungsdiagramme (BDDs)
  3. Anwendung: Formale Verifikation mit BDDs
    Albert-Ludwigs-Universität Freiburg
    Prof. Dr. Armin Biere
    Instit für Informatik

Page 2

page-02.png

Motivation

Der Entwurf von ReTI hat (hoffentlich) gezeigt, dass Hardware-Synthese komplex und fehleranfällig ist. Es gibt automatische Methoden, um Fehler zu finden oder ihre Abwesenheit nachzuweisen. Für ihre Anwendbarkeit muss ein Schaltkreis formal vollständig spezifiziert werden. Wir schauen uns daher Boolesche Funktionen nochmals (und genauer) an und lernen effiziente Algorithmen und Datenstrukturen zu ihrer Handhabung kennen.

Page 3

page-03.png

Boolesche Algebren – allgemein

Es sei eine Menge, auf der zwei binäre Operationen und und eine unäre Operation definiert sind.

Das Tupel heißt Boolesche Algebra, falls für alle die folgenden Axiome gelten:

Axiom -Form -Form
Kommutativität
Assoziativität
Absorption
Distributivität
Komplement

Page 4

page-04.png

Beispiele Boolescher Algebren

  • Boolesche Algebra der Teilmengen einer Menge :
  • Boolesche Algebra der Booleschen Funktionen in Variablen:

Allgemein: Lässt sich eine Aussage direkt aus den Axiomen herleiten, dann gilt sie in allen Booleschen Algebren! Man darf beim Beweis der Aussage aber auch wirklich nur die Axiome verwenden und keine Eigenschaften der konkreten Booleschen Algebra.

Page 5

page-05.png

Boolesche Algebra der Teilmengen von

  • Menge: Potenzmenge von

Satz: ist eine Boolesche Algebra.

Beweis: Nachrechnen, dass alle Axiome gelten.

Beispiel: Absorption

Seien .

Dann ist

und .

Page 6

page-06.png

Boolesche Algebra der Funktionen in Variablen

  • Menge: (Menge der Booleschen Funktionen in Variablen)
  • für alle
  • für alle
  • für alle

Satz: ist eine Boolesche Algebra.

Beweis: Nachrechnen, dass alle Axiome gelten.

Beispiel: Kommutativität

Seien . Für alle gilt:

Also .

Page 7

page-07.png

Weitere, aus den Axiomen ableitbare Regeln:

Existenz neutraler Elemente:

Doppeltes Komplement:

Eindeutigkeit des Komplements:

Idempotenz:

de Morgan-Regel:

Consensus-Regel:

Diese Regeln gelten in allen Booleschen Algebren!

Page 8

page-08.png

Dualitätsprinzip bei Booleschen Algebren

Prinzip der Dualität: Gilt eine aus den Gesetzen der Booleschen Algebra abgeleitete Gleichung , so gilt auch die zu duale Gleichung, die aus hervorgeht durch gleichzeitiges Vertauschen von und , sowie und .

Beispiel:

Page 9

page-09.png

Boolesche Ausdrücke – allgemein

Formal vollständige Definition Boolescher Ausdrücke:

  • Syntax (korrekte Schreibweise) → Def. Boolescher Ausdrücke
  • Semantik (Bedeutung) → Interpretationsfunktion von

→ Zweck: Einem Rechner unzweifelhaft „beibringen", was und was nicht ein Boolescher Ausdruck ist und was seine Funktion bezüglich einer Booleschen Algebra ist.

→ Zum Beispiel: Unterschied zwischen dem Ausdruck „" und der Funktion .

Page 10

page-10.png

Syntax Boolescher Ausdrücke

Sei eine endliche Menge von Symbolen/Variablen.

Sei ein Alphabet.

Definition: Die Menge der vollständig geklammerten Booleschen Ausdrücke über ist eine Teilmenge von , die folgendermaßen induktiv definiert ist:

  • , und für sind Boolesche Ausdrücke
  • Sind und Boolesche Ausdrücke, so auch
    • die Disjunktion ,
    • die Konjunktion ,
    • die Negation .

Page 11

page-11.png

Schreibweise von

Konvention: Negation bindet stärker als Konjunktion , Konjunktion bindet stärker als Disjunktion .

→ Klammern können weggelassen werden, ohne dass Mehrdeutigkeiten entstehen.

Je nach Kontext (betrachtete Boolesche Algebra) schreibt man auch

  • statt : die entsprechenden neutralen Elemente,
  • statt : ,
  • statt : ,
  • statt : .

→ So „vereinfachte" Ausdrücke entsprechen zwar nicht genau der obigen Definition, es gibt aber für jeden solchen Ausdruck einen äquivalenten vollständig geklammerten Ausdruck im Sinne der Definition.

Beispiel: Der äquivalente vollständig geklammerte Ausdruck für „" wäre „".

Page 12

page-12.png

Semantik Boolescher Ausdrücke

Sei eine beliebige Boolesche Algebra.

Seien die neutralen Elemente von .

Definition: Jedem Booleschen Ausdruck kann durch eine Interpretationsfunktion eine Boolesche Funktion von nach zugeordnet werden.

wird folgendermaßen induktiv definiert:

ü

Page 13

page-13.png

Interpretation Boolescher Ausdrücke

Sei ein Boolescher Ausdruck.

für ein ergibt sich durch Ersetzen von durch in , für alle , und Rechnen in der Booleschen Algebra .

Gilt für eine Boolesche Funktion , so sagen wir, dass ein Boolescher Ausdruck für ist, bzw. dass die Boolesche Funktion beschreibt.

Zwei Boolesche Ausdrücke und heißen äquivalent () genau dann, wenn .

Sie sind gleich, wenn .

Wir betrachten folgend nur noch die Interpretation in .

Page 14

page-14.png

Boolesche Ausdrücke ↔ Boolesche Funktionen

Lemma 1: Zu jedem Booleschen Ausdruck existiert eine Boolesche Funktion , die durch beschrieben wird.

Beweis:

Lemma 2: Zu jeder Booleschen Funktion existiert ein Boolescher Ausdruck, der beschreibt.

Beweis: Es gilt:

m.a.W. Die DNF ist ein Boolescher Ausdruck.

Page 15

page-15.png

Zusammenhang mit Schaltkreisen

Lemma 3: Zu jedem Booleschen Ausdruck gibt es einen kombinatorischen Schaltkreis, der implementiert.

Zu jeder Booleschen Funktion gibt es einen kombinatorischen Schaltkreis, der sie implementiert (zum Beispiel zweistufige Umsetzung der DNF/KDNF).

Zu jedem kombinatorischen Schaltkreis gibt es sowohl eine Boolesche Funktion als auch einen Booleschen Ausdruck.