4. gyakorlat
"Logikai alapok"
\(H \subseteq A \sim \chi_H: A \to \mathbb{L}\)
- \(\chi_H(a)=\begin{cases}\text{igaz, ha } \quad a \in H \\ \text{hamis, ha } \quad a \not\in H\end{cases}\)
Megyjegyzés: \(\; \chi - \text{ejtsd.: kí}\)
\(R: A \to \mathbb{L} \sim [R]\) - Az \(R\) igazsághalmaza
\([R]=\{a \in A \; | \; R(a)\}\)
Karakterisztikus függvény
Amikor teljesül az \(R(a)\)
Megoldás
A megoldás fogalmát logikai alapokra helyezzük.
Így egyszerűbb lesz bizonyítani
Példák
1. példa
- \(A = [1 \ldots 5]\)
- \(Q, R: A \to \mathbb{L}\)
- \([Q]=\{1,2\}\)
- \([R]=\{2,3,4\}\)
a. \([Q \land R] = [Q] \cap [R] = \{2\}\)
Amelyre a \(Q\) és az \(R\) is igazat ad \(\Rightarrow\) metszet
b. \([Q \lor R] = [Q] \cup [R] = \{1,2,3,4\}\)
Amelyre \(Q\) vagy \(R\) igazat ad \(\Rightarrow\) unió
c. \([\lnot Q] = A\setminus[Q] = \{3,4,5\}\)
A \(Q\) igazsághalmazán kívül eső értékek
d. \([Q \to R] = [\lnot Q \lor R] = (A\setminus[Q])\cup[R]=\{2,3,4,5\}\)
Implikáció: Ha a \(Q\) igazsághalmazában benne vannak, akkor az \(R\)-ében is benne kell, hogy legyenek. Illetve azok, amelyek a \(Q\)-ban nincsenek benne.
"\(Q \to R\) akkor igaz minden \(a\)-ra, ha a \(Q\) igazsághalmaza az része az \(R\) igazsághalmazának." \(Q \to R \; \text{ igaz } \; \forall a \in A \iff [Q] \subseteq [R]\)
Leggyengébb előfeltétel
\(lf(S,R): A \to \mathbb{L}\) - Az \(S\) programnak az \(R\) feltételre vett leggyengébb előfeltétele
"Azokra az állapotokra ad igazat, amelyre az \(S\) program BIZTOSAN beleterminál az \(R\) igazsághalmazába"
\([lf(S,R)]=\{a \in D_{p(S)} \; | \; p(S)(a) \subseteq [R]\}\)
2. példa
- \(A = [1 \ldots 5]\)
- \(R: A \to \mathbb{L}\)
- \([R]=\{1,2\}\)
- \(S=\{1 \to <1> \; <1,3>, <2> \to <2,1> \; <2>, <3> \to <3,2> \; <3, fail>, 4 \to <4,1> \; <4,2> \; <4,4,4,\ldots>, 5 \to <5,1>\}\)
- S átláthatóbban:
- 1
- \(1 \to <1>\)
- \(1 \to <1,3>\)
- 2
- \(2 \to <2,1>\)
- \(2 \to <2>\)
- 3
- \(3 \to <3,2>\)
- \(3 \to <3, fail>\)
- 4
- \(4 \to <4,1>\)
- \(4 \to <4,2>\)
- \(4 \to <4,4,4,\ldots>\)
- 5
- \(5 \to <5,1>\)
- 1
lfs(S, R) : \(A \to \mathbb{L}\)
\(D_{p(S)} = \{1, 2, 5\}\)
- \(p(S)(1) = \{1, 3\}\)
- \(p(S)(2) = \{1, 2\}\)
- \(p(S)(5) = \{1\}\)
\([lf(S,R)]=\{2, 5\}\)
3. példa
\(S\) program \(A\) állapottér felett
\(R: A \to \mathbb{L}\)
\(Q: A \to \mathbb{L}\)
a. \([lf(S, R)] \cup [\lnot lf(S, R)] = A\)
b. \([lf(S,R)] \cup [lf(S, \lnot R)] = A\)
Hamis: ellenpéldát mutatunk
Előző feladat szerint
\([\lnot R] = \{3,4,5\}\)
\([lf(S, \lnot R)] = \varnothing\)
Tehát \([lf(S,R)] \cup \varnothing \neq A\)
c. Igaz-e, hogy ha \([Q] \subseteq [R]\), akkor \([lf(S, Q)] \subseteq [lf(S, R)]\)?
Igaz
Bizonyítás: Meggondolandó
d. \(lf(S, Q) \lor lf(S, R) \quad ? \quad lf(S, Q \lor R)\)
Van-e közöttük kapcsolat? (Mi van a kérdőjel helyén?)
\(lf(S, Q) \lor lf(S, R) \quad \subseteq \quad lf(S, Q \lor R)\) igaz, de
\(lf(S, Q) \lor lf(S, R) \quad \supseteq \quad lf(S, Q \lor R)\) nem igaz, hiszen
- \(p(S)(1) = \{1, 3\}\)
- \(p(S)(2) = \{1, 2\}\)
-
\(p(S)(5) = \{1\}\)
-
\([Q] = \{3,4,5\}\)
- \([R] = \{1,2\}\)
esetén
- \([lf(S, Q)] = \varnothing\)
- \([lf(S, R)] = \{2,5\}\)
- \([lf(S, Q \lor R)] = \{1,2,5\} \not\subseteq \varnothing \cup \{2,5\}\)
Tehát ebbe az irányban a nem-determinisztikusság miatt nem igaz.
e. \(lf(S, Q) \land lf(S, R) \quad ? \quad lf(S, Q \land R)\)
(Lecseréltük a vagy-ot és-re.)
\(\subseteq\) biztos igaz
\(\supseteq\) igaz-e?
Nézzük igazság halmazokkal:
\([lf(S, R)] \cap [lf(S, Q)] \quad ? \quad [lf(S, R \land Q)]\)
-
eset: \(\subseteq\)
\(a \in [lf(S, R)] \cap [lf(S, Q)]\)
\(a \in [lf(S, R)]\) és \(a \in [lf(S, Q)]\)
Ebből következik:
\(a \in D_{p(S)}\) és \(p(S)(a) \subseteq [R]\)
\(a \in D_{p(S)}\) és \(p(S)(a) \subseteq [Q]\)
Tehát
\(A \in D_{p(S)}\) és \(p(S)(a) \subseteq [R] \cap [Q]\)
Ami megegyezik az \(lf(S, R \land Q)\)
Mivel minden lépés ekvivalens, ezért a másik irányba is igaz: \(\supseteq\) is igaz.
Ezzel bizonyítottuk, hogy igaz
\([lf(S, R)] \cap [lf(S, Q)] \quad \subseteq \quad [lf(S, R \land Q)]\)
4. példa
-
\(lf(S, \text{hamis}) = \text{hamis}\)
\([lf(S, \text{hamis})] = \varnothing\)
-
\(lf(S, \text{igaz}) = \chi_{D_{p(S)}}\)
\([lf(S, \text{igaz})] = D_{p(S)}\)
-
\(\text{SKIP} = \{a \to <a>\}\)
(Semmit sem csináló program. Rögtön terminál.)
\(lf(\text{SKIP}, R) = R\)
-
\(\text{ABORT} = \{a \to <a, fail>\}\)
(Bármilyen állapotból indítjuk el, azonnal fail-lel. "Helyből rosszul működő program.")
\(lf(\text{ABORT}, R) = \text{hamis} \quad\) (másképp \(\empty\))
-
\(A = (x: \N, y: \N)\)
\(lf(x := x-y, 2x+y < 5) = ?\)
a. \((x := x-y)(3,1) = \{<(3,1), (2,1)>\}\)
\((x := x-y)(3,3) = \{<(3,3), (0,3)>\}\)
\((x := x-y)(1,3) = \{<(1,3), fail>\}\)
b. \(D_{p(x := x-y)} = \{a \in A \; | \; x(a) - y(a) \geq 0 \}\)
\(p(x := x-y)(a) = \{(x(a)-y(a), y(a))\}\)
c. \((2 \cdot x + y < 5):A \to \mathbb{L}\)
\((2x + y < 5)(3,1) = 2 \cdot 3 + 1 < 5 = \text{hamis}\)
(Tulajdonképpen ez egy lambda kifejezés.)
(\ x y -> 2 * x + y < 5)d. \(lf(x := x-y, 2x+y<5)\)
- Először igazsághalmaz kiszámolása:
- \([lf(x := x-y, 2x+y<5)] =\{a \in D_{p(x := x-y)} \; | \; p(x:=x-y)(a) \subseteq [2x+y<5]\}\)
- \(= \{ a \in A \; | \; a \in D_{p(x := x - y)} \land (2x+y<5)(p(x:=x-y)(a))\}\)
- \(= \{a \in A \; | \; x(a) - y(a) \geq 0 \; \land \; 2(x(a)-y(a))+y(a)<5\}\)
- * \((p(x:=x-y)(a)) = x(a) - y(a), y(a)\)
- \(= \{a \in A \; | \; x(a) - y(a) \geq 0 \; \land \; 2x(a)-y(a)<5\}\)
- \(lf(x:=x-y, 2x+y<5) = (x \geq y \land 2x-y<5)\)
- Először igazsághalmaz kiszámolása:
Fogalmak a következő órára
- állapot
- állapottér
- program
- program függvény
- megoldás
- Leggyengébb előfeltétel