Esercizietto di propositional logic

raff5184
ciao devo fare una dimostrazione ma sono bloccato. Date le premesse:
P1. (and a (imp b c))
P2. (and a b)

dimostrare che
(and a (imp b c)) , (and a b) |= c
------------------------------------------
Essenzialmente devo provare che P1, P2 |=c
Dunque inizio osservando che:
P1, P2 |=(and P1 P2) ==
e continuo:
== (and (and a (imp b c)) and a b) ==
== (and a (imp b c) a b) ==
== (and a b (imp b c))
a questo punto non so come continuare... Ho provato a riscrivere (imp b c) == (or -b c). Mi date una dritta per favore

Risposte
Lord K
Premetto che dovresti provare a scrivere le formule in maniera un pochetto più chiara... le riscrivo per come le ho comprese io:

Hy:
[tex]a \wedge (b \rightarrow c)[/tex]
[tex]a \wedge b[/tex]

Th:[tex]c[/tex]

o in altre parole:

[tex]a \wedge (b \rightarrow c), a \wedge b \models c[/tex]

E' corretto?

raff5184
si è corretto. Ok proverò a usare la tua notazione. Io ho imparato questa perché sto studiando logica applicata a intelligenza artificiale e quindi programmazione :)

Lord K
Io mi occupo di applicazioni in quel campo, anche se la logica che uso passa per la teoria delle categorie :mrgreen: ma tornando all'esercizio:

[tex]a \wedge b, a \wedge (b \rightarrow c) \models c[/tex]

si dimostra per passi come segue:

[tex]a \wedge b \models a[/tex]
[tex]a \wedge b \models b[/tex]

ed anche:

[tex]a \wedge (b \rightarrow c) \models b \rightarrow c[/tex]

Allora:

[tex]a \wedge b, a \wedge (b \rightarrow c) \models a, b, b \rightarrow c \models c[/tex]

Cosa ne pensi?

raff5184
il problema è sempre nell'ultimo passaggio :)
Credo di avere qualche problema col signor $->$
Perché sui miei appunti ho che $b->c$ significa che: if both b=T and c=F then F, otherwise T. Ma leggendo altro materiale ho letto che significa "if b then c". E non mi sembrano la stessa cosa. Perché, dalla mia definizione, se b è vera non è detto che lo sia anche c.

Lord K
L'implicazione dice che [tex]b \rightarrow c[/tex] è falsa (risp. non soddisfacibile, risp. non dimostrabile, in base alla teoria che usi) se e solamente se [tex]b[/tex] è vera e [tex]c[/tex] è falsa, altrimenti è vera. Detto questo se conosco [tex]b[/tex] e [tex]b \rightarrow c[/tex]anche allora necessariamente conosco [tex]c[/tex], infatti se:

[tex]b \rightarrow c[/tex] è [tex]\top[/tex] (risp. soddisfacibile, risp. dimostrabile, in base alla teoria che usi) e [tex]b[/tex] è [tex]\top[/tex] (risp. soddisfacibile, risp. dimostrabile, in base alla teoria che usi) allora sai che [tex]c[/tex] è [tex]\top[/tex] (risp. soddisfacibile, risp. dimostrabile, in base alla teoria che usi)visto che se fosse falso (risp. non soddisfacibile, risp. non dimostrabile, in base alla teoria che usi) lo sarebbe anche [tex]b \rightarrow c[/tex].

Rggb1
"raff5184":
Perché, dalla mia definizione, se b è vera non è detto che lo sia anche c.

Esatto. Semplicemente, se $b$ è falsa(*), è sempre vera $b -> c$ (e se $b$ è vera, $b->c$ è vera sse è vera $c$)

Insomma, $b$ e $c$ sono le ipotesi, quello che ti interessa è la valutazione di $b -> c$, non di $c$; ti torna?

[ Vero è che l'implicazione spesso crea confusione; a volte questa è voluta, si veda anche il famoso Teorema Universale :-D ]

EDIT: (*) correzione, prima avevo scritto "vera" - figuraccia da matricola!

raff5184
"Rggb":

Ma se $b$ è vera, è sempre vera $b -> c$
non occorre che sia vera c? if both b=T and c=F then F

Rggb1
Scusa, come vedi mi sono impantanato pure io, l'avevo pur detto che crea confusione :-D Scordati di quella parte del messaggio, vado a modificare al volo.

Il senso era comunque
Se $b$ e $c$ sono le ipotesi, quello che ti interessa è la valutazione di $b -> c$

raff5184
Che ne dite di questo, ho fatto bene?
Dimostrare che $(a ^^ (b^^c)), (b->(c->d))|=d$

Ho proceduto così:
$a^^(b^^c)|=a$
$a^^(b^^c)|=b^^c$ da questa ho $b^^c|=b$ e $b^^c|=c$
$b-> (c->d)|=c->d$
Dunque
$(a ^^ (b^^c)), (b->(c->d))|=a,b,c,c->d|=d$ c.v.d.

Rggb1
Questa non mi torna...
$b->(c->d) models c->d$
Controesempio: la valutazione $b=0, c=1, d=0$

Lord K
Io ho capito che intende:

[tex]b,b\rightarrow (c\rightarrow d) \vdash c \rightarrow d[/tex]

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.