http://pvs.csl.sri.com/index.shtml ====== Logik und Diskrete Strukturen ====== ===== VL 1 ===== [[https://pads.ccc.de/oVmo9thGzL|EtherPad]] ===== Beweise ===== (Nach stegner 0.3) ^ Zeichen ^ Typ ^ Beschreibung ^ | ∧ | Junktor | Zu Beweisen: Beides muss gezeigt werden \\ In Annahme: Beides //kann// verwendet werden. | | ∨ | Junktor | Zu Beweisen: Es reicht eins zu Zeigen \\ In Annahme: ??? | | ¬ | Junktor | Beweis per wiederspruch | | <=> | Junktor | | | => | Junktor | Mit //Annahme// kann //Konklusion// gezeigt werden | | ∀ | Quantor | Zu Beweisen: "Für ein festes aber belibiges x ..." (Einzige Annahme ist $x \in M$) \\ In Annahme: Belibiges x wählen | | ∃ | Quantor | Zu Beweisen: Für ein belibiges x \\ In Annahme: Festes aber belibiges x (Einzige Annahme ist $x \in M$) | ==== Arten ==== === Äquivalenzbeweis === Anstadt A zeige das äquivalente B oder Lösung wird genannt oder deren existenz bewiesen. === Indirekter Beweis === Eigenschaften lassen auf Existenz von Lösung schließen \[ (A \Rightarrow B) \Leftrightarrow (\lnot B \Rightarrow \lnot A) \] === Wiederspruchsbeweis === Statt //A = wahr// zeigt man //¬A = falsch// > Spezielle form des Induktiven beweises: > (wahr => A) <=> (¬A => falsch) > Offt verwendet wenn das zu zeigende schon eine Negation ist. > $A = \exists_{x \in S}B$ soll negiert werden: > $\lnot \exists x \in S : B \Leftrightarrow \forall x \in S : \lnot B$ === Vollständige Induktion === Induktions//anfang//%%/%%Induktions//vorraussetzung//: P(1) Induktions//schluss//: $\forall x \in N : \underbrace{P(n)}_{\text{Induktionsannahme/Induktionshypothese}} \Rightarrow P(n + 1)$ === Allgemeine Induktion === Vereinfachung/veralgemeinerung von der vollständigen Induktion. Man ist nicht mehr auf den direkten vorgänger beim Beweis beschränkt, sondern kann alle vorgänger verwenden. \[ P(1) \wedge (\forall n: (\forall k \le n : P(k)) \Rightarrow P(n + 1)) \Rightarrow \forall n: P(n) \] ===== Mengen ===== ==== Relationen ==== ^ Name <=> ^ Beschreibung ^ | reflexiv | $\forall a \in A : (a, a) \in R$ | | symetrisch | $\forall a, b \in A : (a, b) \in R \Rightarrow (b, a) \in R$ | | transitiv | $\forall a, b, c \in A : (a, b) \in R \wedge (b, c) \in R \Rightarrow (a,c) \in R$ | | antisymetrisch | $\forall a, b \in R : (a, b) \in R \wedge (b, a) \in R \Rightarrow a = b$ | | homogen | $R \subseteq S \times S$ | ==== Funktionen ==== ^ Name ^ <=> Foo ^ => Bar ^ LOL ^ Beschreibung ^ | injektiv | $\forall b \in B : |f^{-1}(b)| \le 1$ | $|A| \le |B|$ | $f(a) = f(a') \Rightarrow a=a'$ | "Jedes Ergebniss kann durch maximal eine Eingabe ausgelöst werden" | | surjektiv | $\forall b \in B : |f^{-1}(b)| \ge 1$ | $|A| \ge |B|$ | $\forall b \in B \exists a \in A : f(a) = b$ | "Jedes mögliche Ergebniss kommt raus" | | bijektiv | $\forall b \in B : |f^{-1}(b)| = 1$ | $|A| = |B|$ | f injektiv & f surjektiv | "Jedes Ergebniss wird ausgelöst und das durch verschiedene Eingaben" | === Schubfachprinzip === Auch "Pidginhole principle" Beispielhaft: > 11 Brife für 10 Mitarbeiter => Mindestens einer bekomm mehr als einen Brief. $|B| < |A| \Rightarrow \exists a \ne a' : f(a) = f(a')$ === Urbild === "Umkehrfunktion" ohne Funktionskarakter $f^{-1}(b) := \{a \in A \mid f(a) = b\}$ $f^{-1}(B) := \bigcup b \in B : f^{-1}(b)$ $f^{-1}(B) := \{a \in A \mid f(a) \in B \}$ ===== Ordnungen und Verbände ===== (Buch 1.4) ^ Name ^ Beschreibung ^ | Quasiordnung | reflexiv, transitiv | | Partielle Ordnung | reflexiv, transitiv, antisymetrisch | | Äquivalenzrelation | reflexiv, transitiv, symetrisch | $[a]_R$ Äquivalenzklasse mit Representant a $A/R$ Menge aller Äquivalenzklassen. d.H. $[a]_R \in A/R$ ==== Transitive Hülle ==== $R^+ \subseteq M \times M$ so ergänzen das R transitiv wird. Beispiel: \\ $R = \{(a, b), (b, c)\} \Rightarrow R^+ = \{(a, b), (b, c), (a, c)\}$ $R^+$ y ist über 1..n R-Schritte mit x Verbunden ==== Reflexive, transitive Hülle ==== $R^+ \subseteq M \times M$ so ergänzen das R transitiv und reflexiv wird. $R^* = R^+ \cup \{(x, x) \mid x \in S\}$ $R^*$ y ist über 0..n R-Schritte mit x Verbunden (Rein reflexive hüllen gibt es auch, sind aber uninteresant) ==== Partielle Ordnung ==== Ordnung zweier elemente in einer Partiellen Ordnung: $x \preceq y \Leftrightarrow (x, y) \in R$ Partiell geordnete Menge: * Menge $S$ über die es eine * Partielle ordnung $R \subseteq S \times S$ gibt. $R^*$ ist eine Partielle Ordnung $(x, y) \in R \vee (y, x) \in R$ => x und y sind vergleichbar \\ sonst unvergleichbar. $\preccurlyeq \leq \sqsubseteq$ sind häufig verwendete Symbole für partielle Ordnungen. "Partielle Ordnung" = partially ordered set = poset * $z \in A \text{Maximum} \Leftrightarrow \forall_{y \in A} : y \preccurlyeq z$ * $z \in A \text{Minimum} \Leftrightarrow \forall_{y \in A} : z \preccurlyeq y$ Wenn es ein Min/Maximum gibt ist es eindeutig. * Menge an $z \in A \text{obere Schranke von} x, y \Leftrightarrow x \preccurlyeq z \wedge y \preccurlyeq z$ * Menge an $z \in A \text{untere Schranke von} x, y \Leftrightarrow z \preccurlyeq x \wedge z \preccurlyeq y$ * Element $z \in A \text{kleinste obere Schranke (sup) von} x, y \Leftrightarrow z \in \text{obere Schranke} \wedge \forall_{w \in \text{obere Schranke}} : z \preccurlyeq w$ * Element $z \in A \text{kleinste untere Schranke (inf) von} x, y \Leftrightarrow z \in \text{untere Schranke} \wedge \forall_{w \in \text{untere Schranke}} : z \preccurlyeq w$ * $\sup(x, y) = x \sqcup y$ * $\inf(x, y) = x \sqcap y$ Eindeutig wenn sie existieren ==== Hassediagramm ==== * reflexive Verbindungen weglassen * transitive Verbindungen weglassen * "unten was kleiner" ==== Totale/Vollständige/Lineare Ordnung ==== $\forall_{x, y \in S} : (x \preceq y \vee y \preceq x)$\\ (Alle Parungen sind vergleichbar) ==== Verband ==== * Partielle ordnung * reflexiv * transitiv * antisymetrisch * besitzt min/max ($\perp / \top$) * $\forall_{x,y \in A} : \exists : \sup(x, y) \wedge \inf(x, y)$ Daraus follgt * sup(), inf() sind assoziativ [a+(b+c) = (a+b)+c] und kommutativ [a+b = b+a] * $\sup(\top, x) = \top$ * $\sup(\perp, x) = x$ * $\inf(\top, x) = x$ * $\inf(\perp, x) = \perp$ Muss man mit ihnen etwas beweisen/umformen kann man wie folgt vorgehen: * $a \preccurlyeq a \sqcup b \Rightarrow \checkmark$ * $b \preccurlyeq a \sqcup b \Rightarrow \checkmark$ * $a \sqcup b \preccurlyeq c \Rightarrow a \preccurlyeq c \wedge b \preccurlyeq c$ * $a \sqcap b \preccurlyeq a \Rightarrow \checkmark$ * $a \sqcap b \preccurlyeq b \Rightarrow \checkmark$ * $c \preccurlyeq a \sqcap b \Rightarrow c \preccurlyeq a \wedge c \preccurlyeq b$ Sprich es muss $a \preccurlyeq c \wedge b \preccurlyeq c$ gezeigt werden um $a \sqcup b \preccurlyeq c$ zu beweisen. ==== Distributiver verband ==== Zusätzlich gild: * $x \sqcap (y \sqcup z) = (x \sqcap y) \sqcup (x \sqcap z)$ * $x \sqcup (y \sqcap z) = (x \sqcup y) \sqcap (x \sqcup z)$ > Sie werden distributiert, verteilt, der Term wird größer. Die meisten Verbände sind auch distributiv, ausgenommen sin die der form a a / | \ / \ b c d b | \ | / | d e c | \ / e ===== Aritmetik ===== ==== Ganzzahlige division ==== Gild $a = q \cdot b + r$ mit $0 \le r < |b|$ so schreibt man $r = a \mod b$ (oder ''a % b'') und $ q = \lfloor \frac{a}{b} \rfloor$ (oder ''a div b'') === Negativ === * ''-10 mod 3 = 2'' * $\lfloor \frac{-10}{3} \rfloor = -4$ da $-10 = (-4) \cdot 3 + 2$ ^ b ^ a ^ mod ^ | 3 | 4 | 1 | | 3 | 3 | 0 | | 3 | 2 | 2 | | 3 | 1 | 1 | | 3 | 0 | 0 | | 3 | -1 | 2 | | 3 | -2 | 1 | | 3 | -3 | 0 | | 3 | -4 | 2 | ==== Teilbarkeit ==== b%%|%%a <=> a mod b = 0 \\ d.h. $\exists \lfloor \frac{a}{b} \rfloor = q \in Z : a = q \cdot b$ $\forall a \in Z : a|a \wedge 1|a$ "a und b teilerfremd" <=> c|a und c|b //nur// für c=1 ==== Primzahl ==== === Definition === * d|p nur für d=1 und d=p * 1 ist keine Primzahl === Primfaktorzerlegung === Jede Zahl kann aus Primzahlen zusammenmultipliziert werden. \[ \forall_{n \in N} : n = \prod_{i=1}^k p_i^{e_i} \] mit $p_1 \ldots p_k$ paarweise verschieden. === Satz von Euklid === > Unendlich viele Primzahlen $(\prod_{i=1}^k p_i)+1$ lässt sich nicht aus $p_1 \ldots p_k$ zusammenbauen, aber anders. [[http://de.wikipedia.org/wiki/Satz_von_Euklid|wiki]] === Primzahlsatz === Sei $\pi(n) \sim \frac{n}{ln(n)}$ :<=> Anzahl Primzahlen $\le n$ ==== Modulare Arithmetik ==== Es gelten folgende Regeln: * %%(a + b) mod m = (a mod m + b mod m)%% mod m * %%(a * b) mod m = ((a mod m) * (b mod m))%% mod m === Kongurenzklassen === Follgende Aussagen sind äquivalent * $a \equiv b (\mod m)$ :<=> a ist //kongurent// zu b modulo m * a mod m = b mod m * $\exists_{t \in Z} : a = b + t \cdot m$ * m|(a-b) Bsp: $4 \equiv -2$ mod 3 Es gelten folgende Regeln: * $(a \equiv b) \mod m \wedge (c \equiv d) \mod m \Rightarrow a + c \equiv b + d$ (mod m) * $(a \equiv b) \mod m \wedge (c \equiv d) \mod m \Rightarrow a \cdot c \equiv b \cdot d$ (mod m) === Schnelles Potenzieren (use-case) === $7^{66} \mod 13$ \[ \begin{align*} &7^{66} \mod 13 \\ &7^{1} \mod 13 = 7 \\ &7^{2} \mod 13 = 7^2 \mod 13 = 49 \mod 13 = 10 \\ &7^{2} \mod 13 = 10^2 \mod 13 = 100 \mod 13 = 9 \\ &7^{4} \mod 13 = 9^2 \mod 13 = 81 \mod 13 = 3 \\ &7^{8} \mod 13 = 3^2 \mod 13 = 9 \mod 13 = 9 \\ &\vdots \\ &7^{64} \mod 13 = 9^2 \mod 13 = 81 \mod 13 = 3 \\ &7^{66} \mod 13 = 7^{64} \cdot 7^{2} \mod 13 = 90 \mod 13 = 12 \\ \end{align*} \] === ggT === größtes $d \in N$ so das gild d|a und d|b ggT(a, b) = s*a + t*b === Euklidischer Algorithmus === Ziel: ggT berechnen Methode: ggT(A, a) = ggT(A mod a, a) [mit kleineren Zahlen rechnen] {{:users:skruppy:ext:uni:2:foo.png?direct&300|}} === Erweiterter euklidischer Algorithmus === Ziel: * ggT berechnen * $s, t \in Z$ mit ggt$(a, b) = s\cdot a + t \cdot b$ finden == Methode 1 == Oben links und unten rechts (1, 0) sind start Werte. * Nach unten: div/modulo * Nach oben: $x_i = y_{i-1} - x_{i-1} \cdot \text{div}_{\ \ i}$ ggT(24, 15) = 3 = b*x + a*y = 15*-3 + 24*2\\ {{:users:skruppy:ext:uni:2:eea1.png?direct&300|}} \\ == Methode 2 == ^ a/b ^ div ^ x/y ^ | **24** | | -3 | | **15** | 1 | 2 | | 9 | 1 | -1 | | 6 | 1 | **1** | | 3 | 2 | **0** | | 0 | | | == Alt == * gehe in die nächste Zeile * $r = r_{-2} - r_{-1} \cdot q_{-1}$ * $s = s_{-2} - s_{-1} \cdot q_{-1}$ * $q = r_{-1} \div r$ Wenn r = 0: * s * $(r - s \cdot a) \div b$ ===== Lineare Kongurente Gleichungen ===== ==== Gegeben ==== $a \cdot x \equiv b (\mod m) \text{ mit } a, b \in Z$ ==== Ziel ==== Find alle $x \in Z$ so dass gleichung gild. ==== Beispiel ==== $5 \cdot x \equiv 2 (\mod 7) \Rightarrow x = \cdots, -1, 6, 13, \cdots$ ==== Vorbedingung ==== $\operatorname{ggT}(a, m)|b$ ==== Inverses ==== WTF WTF WTF! http://www.inf.fh-flensburg.de/lang/krypto/grund/inverses-element.htm x ist das Inverse von a mod m, wenn gild $a \cdot x = 1 (\mod m)$. Vorbedingung: ggT(a, m) = 1 Berechnung: \\ eggT(a, m) = (1, s, t) \\ 1 = s*a + t*m \\ => s & m sind das gesuchte Inverse Beispiel: Inverses zu 5 mod 7 => 5x $\equiv$ 1 => x=3 ==== Chinesischer Reste Satz ==== Ziel: Find $0 \le x < m_1 \cdot \ldots \cdot m_k$ vom \[ \begin{align*} x \equiv b_1 \pmod{m_1} \\ \vdots \\ x \equiv b_k \pmod{m_k} \end{align*} \] mit $b_i, m_i \in Z$ und $m_i$ paarweise Teilerfremd [ggT($m_i, m_j$) = 1] === Methode === * $M = m_1 \cdots m_k$ * $M_i = \frac{M}{m_i}$ * Erweiterter Euklidischer Algorithmus mit $m_i$ und $M_i$ * [$M_i$ kann größer oder kleiner $m_i$ sein!] * $e_i = M_i \cdot x/y_i$ [Diagonal bei Methode 2] * $x = \left(\sum b_i \cdot e_i \right) \bmod M$ === Beispiel === \[ \begin{align*} x \equiv 1 \bmod 2 \\ x \equiv 2 \bmod 3 \\ M = 2 \cdot 3 = 6 \end{align*} \] \[ \begin{array} b_1 = 1 & m_1 = 2 & M_1 = M/m_1 = 3 \\ b_2 = 2 & m_2 = 3 & M_2 = M/m_2 = 2 \end{array} \] EEA für 1 ^a/b^div^x/y^ | $M_1$ = **3**| | -1| | 2|1| **1**| | 1|2| 0| | 0| | | => $e_2 = 3 \cdot 1 = 3$ EEA für 2 ^a/b^div^x/y^ | 3| | **-1**| | $M_1$ = **2**|1| 1| | 1|2| 0| | 0| | | => $e_2 = 2 \cdot -1 = -2$ $x = \left(\sum b_i \cdot e_i \right) \bmod M = (1 \cdot 3) + (2 \cdot -2) \bmod 6 = -1 \bmod 6 = 5$ Beweis: \[ \begin{align*} 5 \equiv 1 \bmod 2 \Rightarrow 2 \cdot 2 + 1 = 5 \\ 5 \equiv 2 \bmod 3 \Rightarrow 1 \cdot 3 + 2 = 5 \end{align*} \] ===== Polynome ===== Polynom != Polynomfunktion \[ ( \forall x : f_p(x) = f_q(x)) \Rightarrow p = q \] \[ p(x) = \sum a_i x^i \] ==== Normalform & Grad ==== $a_n \cdot x^n + a_{n-1} \cdot x^{n-1} + \ldots + a_1 \cdot x + a_0$ \\ $a_i \ne 0 =$ Koeffizient \\ n = grad(p) = deg(p) Regeln: * grad(p*q) = grad(p) + grad(q) [wenn $p \ne 0 \wedge q \ne 0$] * grad(p+q) $\le$ max(grad(p), grad(q)) Spezialfälle: * p = 7 => n = 0 => grad(p) = 0 * p = 0 => n = -1 => grad(p) = -1 ==== Division ==== a(x) : b(x) => * a(x) = q(x) * b(x) + r(x) * grad%%(r)%% < grad(b) Beispiel: a(x) = 2x^4 + x^3 +3 b(x) = x^2 + x -1 (2x^4 + x^3 + x + 3) : (x^2 + x - 1) = 2x^2 - x + 3 -(2x^4 + 2x^3 - 2x^2) ===================== -x^3 + 2x^2 + x + 3 -(-x^3 - x^2 + x) =================== 3x^2 + 3 -(3x^2 + 3x - 3) ================ -3x + 6 = r Es follt: a = q * b + r mit q = 2x^2 - x +3 r = -3x + 6 ==== Nullstellen ==== Anzahl Nullstellen $\le$ grad(p) $\alpha$ Nulstelle => p(x) : (x - $\alpha$) //ohne Rest!// => $p(x) = q(x) \cdot (x - \alpha)$ ===== Algebraische Struktur ===== NOCH EIN ZU SORTIEREN: Prime Restklassengruppe: http://de.wikipedia.org/wiki/Prime_Restklassengruppe#Berechnung_der_inversen_Elemente ==== Signatur ==== $\sigma$ = Tupel, der Stellenwertigkeiten, einer Algebra. Beispiel: $\sigma = (2, 2, 1)$ => Algebra mit zwei 2-Stelligen Operationen und einer 1-Stelligen Operation. ==== (Universelle) Algebra ==== Algebra Implementiert Signatur (interface) indem es konkrete Operatoren zur Signatur und eine Arbeitsmenge angibt. Tupel das beinhaltet * Eine Menge //A// * Opeationen über die Menge //A// \[ \begin{align*} \sigma = (2, 2) \\ A = R \\ f_1 : A \times A \rightarrow A \\ f_1(x, y) = x \cdot y \\ f_2 : A \times A \rightarrow A \\ f_2(x, y) = x + y \\ \Rightarrow A = (A, f_1, f_2) \end{align*} \] ==== Neutrales Element ==== A mit mindestens einer 2 Stelligen Operation ist * $a \in A$ linksneutral <=> $\forall x : a \circ x = x$ * $a \in A$ rechtsneutral <=> $\forall x : x \circ a = x$ * $a \in A$ neutral <=> Rechtsneutral ==== Assoziativgesetz ==== A mit mit mindestens einer 2-Stelligen Operation f A assoziativ <=> $\forall x,y,z \in A : f(x, f(y, z)) = f(f(x, y), z)$ ==== Unterstruktur ==== $A = (A, f_1, \cdots, f_m)$ mit $\sigma = (d1, \cdots, d_m)$ sei eine Struktur. $U \subseteq A$ ist Unterstruktur wenn U abgeschlossen ist. d.h. wenn $a_1, \cdots, a_{d,i} \in U \Rightarrow f_i(a_1, \cdots, a_{d,i}) \in U$ für alle $i = 1, \cdots, m$ ==== Homomorphismus ==== Für zwei Strukturen $(A, f_1^A, \cdots, f_m^A)$ und $(B, f_1^B, \cdots, f_m^B)$ unter der gleichen Signatur $(a_1, \cdots, d_m)$ ist $h: A \rightarrow B$ ein Homomorphismus wenn gilt $h(f_i^A(a_1, \cdots, a_{d,i})) = f_i^B(h(a_1), \cdots, h(a_{d,i}))$. ===== Logik ===== http://cms.uni-kassel.de/unicms/fileadmin/groups/w_222000/TIL-WS1011/03-Aussagenlogik-07.pdf