Lógica Computacional LEI FCT UNL, 2o Semestre 2010/2011 Resolução do Teste 3 Tipo Duração: 2h00m Grupo I (1+1 valores) Represente as seguintes afirmações em lógica de primeira ordem: 1. Há quadrados perfeitos pares e ı́mpares. Solução: ∃x (QuadrPerf(x) ∧ Par(x)) ∧ ∃x (QuadrPerf(x) ∧ Impar(x)) 2. Há mais que dois testes nesta cadeira. Solução: ∃x∃y∃z (Teste(x, C) ∧ Teste(y, C) ∧ Teste(z, C) ∧ x 6= y ∧ x 6= z ∧ y 6= z) Grupo II (3+3 valores) Sejam x, y, z ∈ X e a ∈ SF0 . Considere ainda a seguinte fórmula. def ϕ = ∀x Q(f (x), g(y, a)) → ∃zM (z, f (x)) 1. Calcule os conjuntos das variáveis livre e mudas da fórmula. Solução: calculam-se recursivamente os conjuntos VL(ϕ) e VM(ϕ). VL(ϕ) = VL(∀x Q(f (x), g(y, a))) ∪ VL(∃zM (z, f (x))) = VL(Q(f (x), g(y, a))) \ {x} ∪ VL(M (z, f (x))) \ {z} = (V(f (x)) ∪ V(g(y, a))) \ {x} ∪ (V(z) ∪ V(f (x))) \ {z} = (V(x) ∪ V(y) ∪ V(a)) \ {x} ∪ ({z} ∪ V(x)) \ {z} = ({x} ∪ {y} ∪ ∅) \ {x} ∪ ({z} ∪ {x}) \ {z} = {y} ∪ {x} = {x, y} VM(ϕ) = VM(∀x Q(f (x), g(y, a))) ∪ VM(∃zM (z, f (x))) = {x} ∪ VM(Q(f (x), g(y, a))) ∪ {z} ∪ VM(M (z, s(x))) = {x} ∪ ∅ ∪ {z} ∪ ∅ = {x, z} 2. Se cada termo em baixo for livre na fórmula para a variável referida, encontre a nova fórmula que resulta da substituição dessa variável por esse termo. (a) Seja t = q(y), sendo a variável y. Solução: como t é livre para y em ϕ, pois V(t) ∩ VM(ϕ) = ∅, então ϕ{t/y} = ∀x Q(f (x), g(q(y), a)) → ∃zM (z, f (x)) (b) t = q(x), sendo a variável y. Solução: como t não é livre para y em ϕ, pois x ∈ V(t) ∩ VM(ϕ), não se deve substituir y por t em ϕ. Grupo III (3+3+3 valores) Considere a assinatura Σ = (SF, SP ) onde: • SF0 = {zero}, SF1 = {suc}, SF2 = {⊕, ⊗} e; • SP2 = {Eq}. Considere também a estrutura de interpretação Nat = (N0 , I), sendo: • I(zero) = 0; • I(suc) : N0 → N0 tal que I(suc)(n) = n + 1; • I(⊕) : N20 → N0 tal que I(⊕)(n, m) = n + m; • I(⊗) : N20 → N0 tal que I(⊗)(n, m) = n × m; • I(Eq) : N20 → {0, 1} tal que I(Eq)(n, m) = 1 se n = m e I(Eq)(n, m) = 0 caso contrário. Verifique semanticamente se: 1. Nat |= ∀x ∃y Eq(⊗(suc(zero), x), ⊕(y, x)) Solução: tem que se mostrar que para qualquer atribuição ρ se tem que Nat, ρ |= ∀x ∃y Eq(⊗(suc(zero), x), ⊕(y, x)) i.e., para qualquer n ∈ N0 encontra-se um m ∈ N0 tal que Nat, ρ[x := n][y := m] |= Eq(⊗(suc(zero), x), ⊕(y, x)) Seja m = 0. ρ[x:=n][y:=0] I(Eq)([[⊗(suc(zero), x)]]Nat ρ[x:=n][y:=0] , [[⊕(y, x)]]Nat )= ρ[x:=n][y:=0] ρ[x:=n][y:=0] ρ[x:=n][y:=0] ρ[x:=n][y:=0] (I(⊗)([[suc(zero)]]Nat , [[x]]Nat ) = I(⊕)([[y]]Nat , [[x]]Nat )) ρ[x:=n][y:=0] ((I(suc)([[zero]]Nat ) × ρ[x := n][y := 0](x)) = (ρ[x := n][y := 0](y) + ρ[x := n][y := 0](x))) = = (((I(zero) + 1) × n) = (0 + n)) = (((0 + 1) × n) = n) = (n = n) = 1 2. {∃x P (x) ∧ ∃x Q(x)} |= ∃x (P (x) ∧ Q(x)) Solução: considere-se a estrutura de interpretação M = (N0 , I) sendo I(P )(n) = 1 se n > 3 e I(Q) : N0 → {0, 1} tal que I(Q)(n) = 1 se n < 3. Para qualquer atribuição ρ tem-se que M, ρ ∃x P (x) ∧ ∃x Q(x): (a) M, ρ ∃x P (x), uma vez que M, ρ[x := 4] P (x), pois I(P )(ρ[x := 4](x)) = I(P )(4) = 1 (b) M, ρ ∃x Q(x), uma vez que M, ρ[x := 2] P (x), pois I(Q)(ρ[x := 2](x)) = I(Q)(2) = 1 No entanto, M, ρ 6 ∃x (P (x) ∧ Q(x)), pois não é verdade que para existe n ∈ N0 tal que M, ρ[x := n] P (x) e M, ρ[x := n] Q(x). Conclui-se então que {∃x P (x) ∧ ∃x Q(x)} 6|= ∃x (P (x) ∧ Q(x)) 3. ∃x (ϕ → ψ) ≡ ∀x ϕ → ∃x ψ Solução: como a equivalência lógica é uma congruência, a equivalência em causa prova-se da seguinte forma. ∃x (ϕ → ψ) ≡ ∃x (¬ϕ ∨ ψ) (pois ψ → ϕ ≡ ¬ψ ∨ ϕ) ≡ ∃x ¬ϕ ∨ ∃x ψ (pois ∃x (ϕ ∨ ψ) ≡ ∃x ϕ ∨ ∃x ψ) ≡ ¬∀x ϕ ∨ ∃x ψ (pois ∃x ¬ϕ ≡ ¬∀x ϕ) ≡ ∀x ϕ → ∃x ψ (pois ¬ϕ ∨ ψ ≡ ϕ → ψ) Grupo IV (1+2 valores) 1. Considere que dada assinatura é tal que f ∈ SF1 , e seja x ∈ X. A expressão ∀x f (x) é uma fórmula da Lógica de primeira ordem? Justifique. Solução: a expressão dada é uma fórmula, se f (x) o for. Mas trata-se de uma função, pois f ∈ SF1 , não de um predicado, logo não é uma fórmula. 2. Mostre que o conjunto das variáveis de um termo (concreto) de primeira ordem é finito. Solução: prova-se por indução na estrutura dos termos. • Caso t = a, para a ∈ SF0 ; por definição, V(t) = V(a) = ∅, que é finito. • Caso t = x, para x ∈ X; por definição, V(t) = V(x) = {x}, que é finito. X n • Caso t = f (t1 , . . . , tn ), para f ∈ SF S n e {t1 , . . . , tn } ⊆ (TΣ ) , com n ≥ 0; por definição, V(t) = V(f (t1 , . . . , tn )) = i∈{1,...,n} V(ti ), e como por hipótese de indução cada V(ti ) é finito, também o é a união indicada.