Académique Documents
Professionnel Documents
Culture Documents
Antnio Ravara
Departamento de Informtica
26 de Maro de 2012
Algoritmos auxiliares
Eliminao da implicao
Seja ImplFree: GP HP a seguinte funo recursiva. se = 1 ImplFree(1 ), ImplFree(1 ) ImplFree(2 ), se = 1 2 ImplFree() = ImplFree(1 ) ImplFree(2 ), se = 1 2 ImplFree(1 ) ImplFree(2 ), se = 1 2 , caso contrrio Note-se que o caso base da denio recursiva quando a frmula um smbolo proposicional.
Antnio Ravara
Lgica Computacional
ImplFree(((p s) q) (p (r s))) = ImplFree((p s) q) ImplFree(p (r s)) = ( ImplFree(p s) ImplFree(q)) ( ImplFree(p) ImplFree(r s)) = ((ImplFree(p) ImplFree(s)) q) (p (ImplFree(r ) ImplFree(s))) = ((p ImplFree(s)) q) (p (r ImplFree(s))) = ((p s) q) (p (r s))
Antnio Ravara
Lgica Computacional
Algoritmos auxiliares
Forma normal da negao
Uma frmula HP diz-se que est na forma normal da negao (e escreve-se FNN()), se s as suas subfrmulas que so frmulas atmicas esto negadas.
Antnio Ravara
Lgica Computacional
Algoritmos auxiliares
Funo de converso de frmulas na FNN para a FNC
Seja CNFC: HP HP a seguinte funo recursiva. Distr(CNFC(1 ), CNFC(2 )), se = 1 2 se = 1 2 CNFC() = CNFC(1 ) CNFC(2 ), , caso contrrio sendo Distr: HP HP HP a seguinte funo. Distr(11 , 2 ) Distr(12 , 2 ), se 1 = 11 12 Distr(1 , 2 )= Distr(1 , 21 ) Distr(1 , 22 ), se 2 = 21 22 1 2 , caso contrrio
Antnio Ravara
Lgica Computacional
CNFC((p (q r )) ((r s) t)) = CNFC(p (q r )) CNFC((r s) t) = Distr(CNFC(p), CNFC(q r )) Distr(CNFC(r s), CNFC(t)) = Distr(p, CNFC(q) CNFC(r )) Distr(CNFC(r ) CNFC(s), t) = Distr(p, q r ) Distr(r s, t) = Distr(p, q) Distr(p, r ) Distr(r , t) Distr(s, t) = (p q) (p r ) (r t) (s t)
Antnio Ravara
Lgica Computacional
Algoritmo T
O algoritmo seguinte converte frmulas proposicionais para a FNC.
Lemas de optimizao
1. Se HP ento ImplFree()=. 2. Se FNN() ento NNFC()=. 3. Se FNC() ento CNFC()=.
Antnio Ravara Lgica Computacional
Provas
Por induo na denio das funes.
Antnio Ravara Lgica Computacional
Correco do algoritmo T
Prova
Por induo estrutural, compondo por ordem os lemas anteriores. Note-se que todos os algoritmos terminam.
Antnio Ravara
Lgica Computacional
Aplicao do algoritmo
Como vericar a validade de uma frmula pelo algoritmo CNFC?
necessrio primeiro converter a frmula (chame-se-lhe ) para a Forma Normal Conjuntiva. Obtm-se uma frmula equivalente a que analisamos com o Lema da disjuno de literais.
Vericar
1. Calcular =T ()=CNFC(NNFC(ImplFree())). 2. A frmula vlida se cada uma das suas disjunes o for, e cada uma -o se contiver um literal e a sua negao ou o .
Antnio Ravara
Lgica Computacional
= = = =
|= (p q p) (p q r q) ?
No. 1. |= p q r q, pois contm q e q, mas 2. |= p q p, pois fazendo V (p) = 0 e V (q) = 1 tem-se que V p q p A frmula no vlida mas possvel, porque para V (p) = 0 e V (q) = 0 tem-se que V p q p.
Antnio Ravara Lgica Computacional