\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\froman\fprq2 Times New Roman;}{\f4\fswiss\fprq2 Helvetica;}{\f5\fswiss\fprq2\fcharset1 Arial;}{\f6\fswiss\fprq2 Arial;}{\f7\fmodern\fprq1 Courier New;}{\f8\froman\fcharset1 Times New Roman;}{\f9\fnil\fprq2\fcharset2 Wingdings;}}
{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green128\blue0;\red128\green128\blue128;\red255\green0\blue0;}
\deflang1031\pard\ri4\plain\f7\fs20\cf0\b ________________________________________________________________________________
\par
\par \plain\f7\fs20\cf0 Inhalt....: Elementare Logik mit MuPAD
\par Kategorie.: Handwerkskasten
\par Mathematik: Logik
\par MuPAD.....: 3.1.0
\par Datum.....: 2002-08-15
\par Autoren...: Kai Gehrs
\par Funktionen: |, not, and, or, simplify, logic, TRUE, FALSE, for, print
\par \plain\f7\fs20\cf0\b ________________________________________________________________________________
\par \plain\f6\fs36\cf0\b
\par \plain\f6\fs40\cf0\b Elementare MuPAD-Funktionen:
\par Elementare Logik mit MuPAD\plain\f6\fs24\cf2
\par
\par In diesem Notebook stellen wir vor, wie man mit MuPAD elementare aussagenlogische Formeln
\par darstellen und auswerten bzw. vereinfachen kann.
\par \plain\f6\fs28\cf0
\par \plain\f6\fs28 Die aussagenlogischen Verkn\'fcpfungen wie '\plain\f6\fs28\cf0 und'\plain\f6\fs28 , 'oder', 'ausschlie\'dfendes oder',
\par 'nicht' sowie 'Implikation' und '\'c4quivalenz' sind auch in MuPAD vorhanden.
\par
\par Folgende Tabelle gibt einen kurzen \'dcberblick \'fcber diese Verkn\'fcpfungen und
\par erkl\'e4rt gleichzeitig, wie sie in MuPAD benutzt werden sollten. Es seien \plain\f6\fs28\cf4 a\plain\f6\fs28 und \plain\f6\fs28\cf4 b\plain\f6\fs28
\par stets freie (d.h. nicht mit boolschen Werten belegte) Variablen.
\par
\par ---------------------------------------------------------------------------------------------------------------
\par \tab \plain\f6\fs28\b logische Verkn\'fcpfung\tab \tab \tab \tab Bedeutung
\par \plain\f6\fs28 ---------------------------------------------------------------------------------------------------------------
\par \tab \tab \plain\f6\fs28\cf4 a and b\plain\f6\fs28 \tab \tab \tab \tab \tab a und b (\plain\f6\fs28\cf3 Konjunktion\plain\f6\fs28 )
\par
\par \tab \tab \plain\f6\fs28\cf4 a or b\plain\f6\fs28 \tab \tab \tab \tab \tab a oder b (\plain\f6\fs28\cf3 Disjunktion\plain\f6\fs28 )
\par
\par \tab \tab \plain\f6\fs28\cf4 not a\plain\f6\fs28 \tab \tab \tab \tab \tab \tab nicht a (\plain\f6\fs28\cf3 Negation\plain\f6\fs28 )
\par
\par \tab \tab \plain\f6\fs28\cf4 a ==> b\plain\f6\fs28 \tab \tab \tab \tab \tab aus a folgt b (\plain\f6\fs28\cf3 Implikation\plain\f6\fs28 )
\par
\par \tab \plain\f6\fs28\cf4 \tab a <=> b\plain\f6\fs28 \tab \tab \tab \tab \tab a ist \'e4quivalent zu b (\plain\f6\fs28\cf3 \'c4quivalenz\plain\f6\fs28 )
\par
\par \tab \plain\f6\fs28\cf4 \tab a xor b\plain\f6\fs28 \tab \tab \tab \tab \tab entweder a oder b (\plain\f6\fs28\cf3 Kontrajunktion\plain\f6\fs28 )
\par ----------------------------------------------------------------------------------------------------------------
\par
\par Zu jeder der obigen logischen Operationen gibt es auch eine sogenannte
\par "funktionale Variante", d.h. statt \plain\f6\fs28\cf4 a and b\plain\f6\fs28 k\'f6nnen wir auch \plain\f6\fs28\cf4 _and( a, b )\plain\f6\fs28 schreiben.
\par Da diese Variante nicht unbedingt die intuitivere ist, verzichten wir hier auf eine
\par zus\'e4tzliche Beschreibung der funktionalen Varianten der logischen Operationen
\par und verweisen stattdessen auf die entsprechenden Hilfeseiten von \plain\f6\fs28\cf4 and\plain\f6\fs28 , \plain\f6\fs28\cf4 or\plain\f6\fs28 , \plain\f6\fs28\cf4 xor\plain\f6\fs28 ,
\par \plain\f6\fs28\cf4 not\plain\f6\fs28 , \plain\f6\fs28\cf4 ==>\plain\f6\fs28 und \plain\f6\fs28\cf4 <=>\plain\f6\fs28 .
\par
\par Wir definieren uns einige logische Ausdr\'fccke:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A1:= a and b
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A2:= a or b
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A3:= a and (not b)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A4:= ((not a) or b) and (not b)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A5:= a ==> ((not a) or b)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A6:= a <=> ((not b) or c)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A7:= a xor (not b)
\par \pard\ri4\plain\f6\fs28
\par Jetzt k\'f6nnen wir diese untereinander wieder beliebig miteinander verkn\'fcpfen:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}((not A1) and A2) or (A3 xor A6) ==> (not A7)
\par \pard\ri4\plain\f6\fs28
\par Eine wichtige Funktion zur Vereinfachung von logischen Ausdr\'fccken ist die
\par Funktion \plain\f6\fs28\cf4 simplify \plain\f6\fs28 mit der Zusatzoption \plain\f6\fs28\cf4 logic\plain\f6\fs28 . M\'f6chte man mit \plain\f6\fs28\cf4 simplify\plain\f6\fs28 logische
\par Ausdr\'fccke vereinfachen, so erh\'e4lt die Funktion stets \plain\f6\fs28\cf2 zwei Argumente\plain\f6\fs28 :
\par
\par \plain\f6\fs28\cf4 1. Argument:\plain\f6\fs28 \plain\f6\fs28\cf2 A\plain\f6\fs28 , ein \plain\f6\fs28\cf2 logischer Ausdruck\plain\f6\fs28 , der vereinfacht werden soll
\par
\par \plain\f6\fs28\cf4 2. Argument:\plain\f6\fs28 \plain\f6\fs28\cf2 logic\plain\f6\fs28 , eine \plain\f6\fs28\cf2 Zusatzoption f\'fcr simplify\plain\f6\fs28 zur Vereinfachung von \plain\f6\fs28\cf2 A\plain\f6\fs28
\par
\par Ein Aufruf der Funktion ist also in unserem Kontext immer von der Form
\par \plain\f6\fs28\cf4 simplify( \plain\f6\fs28\cf2 A, logic\plain\f6\fs28\cf4 )\plain\f6\fs28 .
\par
\par \plain\f6\fs28\cf1 R\'fcckgabewert \plain\f6\fs28 ist eine \plain\f6\fs28\cf1 vereinfachte Version des logischen Ausdruck A\plain\f6\fs28 , falls
\par dieser vereinfacht werden kann, und \plain\f6\fs28\cf1 A selbst, falls A nicht vereinfacht werden\plain\f6\fs28
\par \plain\f6\fs28\cf1 konnte\plain\f6\fs28 .
\par
\par Wir betrachten einige Beispiele
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (not b) and ((not a) or b)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}simplify(A4, logic)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a and (not b)) or (c or (not(a and b)))
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}simplify(A, logic)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a and (not b)) or (c or (not(a and b)) or
\par \pard\li600\ri1\fi-300\plain\f7\fs28\cf4 (not (a or (not b))))
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}simplify(A, logic)
\par \pard\ri4\plain\f6\fs28
\par Formeln, die von vorneherein wahr oder falsch sind, m\'fcssen unter
\par Umst\'e4nden, wenn sie nicht zu kompliziert sind, erst gar nicht vereinfacht
\par werden. MuPAD tut dies von selbst:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a or b) or ((not a) or b)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a and (not b)) and (a and b)
\par \pard\ri4\plain\f6\fs28
\par Mit Hilfe des Operators \plain\f6\fs28\cf4 | \plain\f6\fs28 k\'f6nnen wir die Werte \plain\f6\fs28\cf4 TRUE\plain\f6\fs28 (wahr) oder
\par \plain\f6\fs28\cf4 FALSE\plain\f6\fs28 (falsch) f\'fcr freie Variablen in eine boolsche Formel einsetzen. Dabei
\par ist die Verwendung in diesem Kontext ganz analog zur Verwendung
\par von \plain\f6\fs28\cf4 |\plain\f6\fs28 in anderen Zusammenh\'e4ngen.
\par
\par Der Aufruf erfolgt in der Form \plain\f6\fs28\cf4 A | a = TRUE\plain\f6\fs28\cf0 bzw. \plain\f6\fs28\cf4 A | (a = TRUE, b = FALSE)
\par \plain\f6\fs28\cf0 bei mehreren zu ersetzenden Variablen. A ist hierbei ein logischer Ausdruck,
\par a und b sind boolsche Variablen.
\par \plain\f6\fs28
\par Mit dem Aufruf \plain\f6\fs28\cf2 logischer Ausdruck \plain\f6\fs28\cf4 |\plain\f6\fs28\cf2 boolsche Variable = Wert\plain\f6\fs28\cf4 \plain\f6\fs28\cf0 erreichen
\par wir also, dass in dem \plain\f6\fs28\cf2 logischen Ausdruck\plain\f6\fs28\cf0 die \plain\f6\fs28\cf2 boolsche Variable\plain\f6\fs28\cf0 durch den
\par entsprechenden \plain\f6\fs28\cf2 Wert\plain\f6\fs28\cf0 ersetzt wird.
\par
\par Auch hierzu einige kleine Beispiele:
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a and (not b)) or (c or (not(a and b)) or
\par \pard\li600\ri1\fi-300\plain\f7\fs28\cf4 (not (a or (not b))))
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | a = TRUE
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | (a = TRUE, b = TRUE)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | (a = TRUE, b = TRUE, c = TRUE)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | (a = TRUE, b = TRUE, c = FALSE)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | (a = TRUE, b = FALSE)
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A | a = FALSE
\par \pard\ri4\plain\f6\fs28\cf0
\par Wir k\'f6nnen mit Hilfe von MuPAD auch die Werte von Wahrheitstabellen f\'fcr
\par logische Formeln bestimmen. Wir setzen einfach alle m\'f6glichen Werte
\par f\'fcr alle vorkommenden Variablen ein und bestimmen, ob das Ergebnis
\par wahr oder falsch ist.
\par
\par Wir betrachten die logische Formel
\par
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}A:= (a and (not b)) or (c or (not(a and b)) or
\par \pard\li600\ri1\fi-300\plain\f7\fs28\cf4 (not (a or (not b))))
\par \pard\ri4\plain\f6\fs28\cf0
\par Alle m\'f6glichen Belegungen der Variablen mit den entsprechenden Werten
\par f\'fcr die logische Formel \plain\f6\fs28\cf4 A\plain\f6\fs28\cf0 erhalten wir wie folgt:
\par \plain\f7\fs28\cf4
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f7\fs28\cf4 {\pntext\f1\'b7\tab}for k in \{TRUE, FALSE\} do
\par \pard\li600\ri1\fi-300\plain\f7\fs28\cf4 for l in \{TRUE, FALSE\} do
\par for m in \{TRUE, FALSE\} do
\par print(k, l, m, (A | (a = k, b = l, c = m)));
\par end_for:
\par end_for:
\par end_for:
\par \pard\ri4\plain\f7\fs28\cf4
\par \plain\f6\fs28\cf0 In jeder Zeile sind die ersten drei logischen Werte die Werte, die f\'fcr \plain\f6\fs28\cf4 a\plain\f6\fs28\cf0 , \plain\f6\fs28\cf4 b\plain\f6\fs28\cf0
\par und \plain\f6\fs28\cf4 c\plain\f6\fs28\cf0 in die Formel \plain\f6\fs28\cf4 A\plain\f6\fs28\cf0 eingesetzt werden. Der vierte Wert ist immer genau
\par der Wert, den \plain\f6\fs28\cf4 A\plain\f6\fs28\cf0 bei den entsprechenden Werten f\'fcr \plain\f6\fs28\cf4 a\plain\f6\fs28\cf0 , \plain\f6\fs28\cf4 b\plain\f6\fs28\cf0 und \plain\f6\fs28\cf4 c \plain\f6\fs28\cf0 annimmt. \plain\f6\fs20\cf1
\par
\par \plain\f7\fs20\cf0\b _______________________________________________________________________________
\par \plain\f6\fs22\cf0
\par \plain\f6\fs22\cf2\b Anmerkungen:\plain\f6\fs22\cf2
\par \plain\f6\fs20\cf2\b 1\plain\f6\fs20\cf2 . Weitere Anregungen finden Sie in der Buchreihe \plain\f6\fs20\cf4 Mathematik 1 x anders\plain\f6\fs20\cf2 . In dieser Reihe
\par wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gel\'f6st. Die
\par B\'fccher k\'f6nnen unter \plain\f4\fs20\cf1 www.schule.mupad.de/literatur\plain\f6\fs20\cf2 kostenfrei kopiert werden.
\par \plain\f6\fs20\cf1
\par \plain\f7\fs20\cf0\b _______________________________________________________________________________
\par
\par
\par }