Quantificadores e linguagem de primeira ordem

Termos, fórmulas, tradução, variáveis livres e substituição sem captura.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

«Todos os estudantes gostam de alguma cadeira» não é só uma combinação de proposições. Fala de objetos, os estudantes e as cadeiras, e de uma relação entre eles. A lógica de primeira ordem, LPO ou FOL, permite escrever essa estrutura e distinguir «uma cadeira por estudante» de «a mesma cadeira para todos».

Termos e afirmações

Em “a soma de xx e 22”, x+2x+2 é um termo: nomeia um objeto. Em "x+2=5x+2=5", a igualdade transforma o termo numa fórmula. A notação FnF_n e RnR_n distingue funções de relações pelo número de argumentos; o valor de nn é a aridade, definida já a seguir. Lê F1F_1 como “função de um argumento” e R2R_2 como “relação binária”.

Termos e fórmulas

Uma linguagem de primeira ordem tem variáveis, conetivas, quantificadores e, quando indicado, igualdade. Os símbolos não lógicos especificam o que podemos nomear:

  • F0F_0 contém constantes, como aa ou 00.
  • FnF_n contém símbolos de função com aridade nn, como ss de aridade 1 ou ff de aridade 2.
  • RnR_n contém símbolos de predicado com aridade nn, como PP de aridade 1 ou RR de aridade 2.

A aridade é o número de argumentos. Uma constante pode ver-se como uma função de aridade zero.

Um termo representa um objeto. Uma variável é termo, uma constante é termo e aplicar uma função a termos também produz um termo. Um termo é fechado quando não contém variáveis.

Se F0={a}F_0=\{a\}, F1={s}F_1=\{s\} e F2={f}F_2=\{f\}, então f(s(a),x)f(s(a),x) é termo, mas não é fechado. f(a,s(a))f(a,s(a)) é fechado. f(a)f(a) tem aridade errada, por isso não é termo desta linguagem.

Uma fórmula atómica aplica um predicado a termos, ou compara dois termos pela igualdade. Com R1={P}R_1=\{P\} e R2={R}R_2=\{R\}, temos P(s(a))P(s(a)), R(x,f(a,x))R(x,f(a,x)) e x=s(a)x=s(a). Os predicados produzem afirmações, não objetos. Por isso, s(P(a))s(P(a)) e P(a)=P(x)P(a)=P(x) não são fórmulas bem formadas.

A partir das fórmulas atómicas usamos as conetivas e os quantificadores. Se φ\varphi é fórmula, ∀x φ\forall x\,\varphi e ∃x φ\exists x\,\varphi também são.

Domínio e tradução

O quantificador universal ∀x\forall x significa “para todo o objeto xx do domínio”. O existencial ∃x\exists x significa “existe pelo menos um objeto xx do domínio”. O domínio não muda a meio da fórmula.

Se o domínio são pessoas, E(x)E(x) significa ”xx é estudante” e L(x)L(x) significa ”xx lê”:

FraseFórmula
Todos os estudantes leem∀x(E(x)→L(x))\forall x(E(x)\to L(x))
Algum estudante lê∃x(E(x)∧L(x))\exists x(E(x)\land L(x))
Nenhum estudante lê∀x(E(x)→¬L(x))\forall x(E(x)\to\neg L(x))
Nem todos os estudantes leem∃x(E(x)∧¬L(x))\exists x(E(x)\land\neg L(x))

O universal usa uma implicação para restringir a exigência aos estudantes. Uma pessoa que não é estudante não viola a primeira fórmula. O existencial usa uma conjunção para exigir que a testemunha seja estudante e leia. ∃x(E(x)→L(x))\exists x(E(x)\to L(x)) seria verdadeira só por existir uma pessoa que não é estudante.

Quando o domínio já contém apenas estudantes, “todos leem” pode escrever-se ∀x L(x)\forall x\,L(x). Explicitar o domínio antes de traduzir evita restrições em falta.

Ordem dos quantificadores

Se E(x)E(x) significa ”xx é estudante”, C(y)C(y) significa ”yy é uma cadeira” e G(x,y)G(x,y) significa ”xx gosta da cadeira yy”, então “todos os estudantes gostam de alguma cadeira” escreve-se, num domínio com pessoas e cadeiras:

∀x(E(x)→∃y(C(y)∧G(x,y))).\forall x\bigl(E(x)\to\exists y(C(y)\land G(x,y))\bigr).

O yy pode depender de xx. A Ana pode gostar de MD e o Rui de outra cadeira. A existência não exige que só gostem de uma.

Por exemplo, num domínio que contém exatamente Ana, Rui, MD e FP, fixamos E={Ana,Rui}E=\{\text{Ana},\text{Rui}\} e C={MD,FP}C=\{\text{MD},\text{FP}\}. A tabela dá os únicos pares de GG:

EstudanteMDFP
AnaSimNão
RuiNãoSim

Cada linha tem um «Sim»: cada estudante tem uma cadeira. Nenhuma coluna tem dois «Sim»: não há cadeira comum. A tabela separa as duas condições sem mudar os objetos nem a relação.

Para exigir uma cadeira comum, usamos a fórmula seguinte, falsa nessa tabela:

∃y(C(y)∧∀x(E(x)→G(x,y))).\exists y\bigl(C(y)\land\forall x(E(x)\to G(x,y))\bigr).

Em geral, ∃y∀x R(x,y)\exists y\forall x\,R(x,y) implica ∀x∃y R(x,y)\forall x\exists y\,R(x,y), mas a direção inversa falha. Em N\mathbb N, ∀x∃y(x<y)\forall x\exists y(x<y) é verdadeira, escolhendo y=x+1y=x+1. ∃y∀x(x<y)\exists y\forall x(x<y) é falsa: para qualquer candidato yy, o próprio x=yx=y refuta x<yx<y. Por isso, podes trocar universais entre si ou existenciais entre si, mas trocar quantificadores diferentes pode mudar o significado.

Negar frases quantificadas

Negar “todos” produz uma testemunha que falha. Negar “existe” exige que todos falhem:

¬∀x φ⇔∃x ¬φ,¬∃x φ⇔∀x ¬φ.\neg\forall x\,\varphi\Leftrightarrow\exists x\,\neg\varphi, \qquad \neg\exists x\,\varphi\Leftrightarrow\forall x\,\neg\varphi.

Por exemplo:

¬∀x∃y R(x,y)⇔∃x¬∃y R(x,y)⇔∃x∀y ¬R(x,y).\begin{aligned} \neg\forall x\exists y\,R(x,y) &\Leftrightarrow\exists x\neg\exists y\,R(x,y)\\ &\Leftrightarrow\exists x\forall y\,\neg R(x,y). \end{aligned}

A negação diz que existe um xx para o qual nenhum yy serve. Não diz que nenhum xx tem um yy.

“Nem todos os estudantes leem” é a negação de ∀x(E(x)→L(x))\forall x(E(x)\to L(x)). Obtemos ∃x(E(x)∧¬L(x))\exists x(E(x)\land\neg L(x)) porque negar uma implicação exige antecedente verdadeiro e consequente falso.

Existência única e contagens pequenas

“Existe exatamente um xx com P(x)P(x)” escreve-se:

∃x(P(x)∧∀y(P(y)→y=x)).\exists x\bigl(P(x)\land\forall y(P(y)\to y=x)\bigr).

A abreviatura é ∃!x P(x)\exists!x\,P(x). A primeira parte prova existência; a segunda, unicidade. Só ∀x∀y((P(x)∧P(y))→x=y)\forall x\forall y((P(x)\land P(y))\to x=y) diz no máximo um e admite que não exista nenhum.

Para “pelo menos dois”, pedimos testemunhas distintas:

∃x∃y(P(x)∧P(y)∧x≠y).\exists x\exists y(P(x)\land P(y)\land x\ne y).

Para “exatamente dois”, acrescentamos que qualquer objeto com PP é um dos dois:

∃x∃y(P(x)∧P(y)∧x≠y∧∀z(P(z)→(z=x∨z=y))).\exists x\exists y\bigl(P(x)\land P(y)\land x\ne y \land\forall z(P(z)\to(z=x\lor z=y))\bigr).

Variáveis livres e ligadas

O âmbito de um quantificador é a fórmula que ele quantifica. Uma ocorrência de xx está ligada quando está nesse âmbito de ∀x\forall x ou ∃x\exists x. As restantes ocorrências são livres.

Em

(∀x R(x,y))∧P(x),(\forall x\,R(x,y))\land P(x),

o primeiro xx está ligado; o segundo está livre. yy também está livre. Logo, o conjunto de variáveis livres é {x,y}\{x,y\}. Uma variável pode ter ocorrências livres e ligadas na mesma fórmula.

Uma fórmula sem variáveis livres é uma proposição, ou fórmula fechada. As variáveis ligadas continuam a aparecer, mas os seus valores são escolhidos pelos quantificadores. Não confundas termo fechado, que não contém variáveis, com fórmula fechada, que pode conter variáveis todas ligadas.

Pelas convenções de precedência, ∀x P(x)∨Q(x)\forall x\,P(x)\lor Q(x) significa (∀x P(x))∨Q(x)(\forall x\,P(x))\lor Q(x). Para quantificar as duas partes, escreve ∀x(P(x)∨Q(x))\forall x(P(x)\lor Q(x)).

Substituição sem captura

φ[x↦t]\varphi[x\mapsto t] substitui apenas as ocorrências livres de xx pelo termo tt.

Se φ=(∀x P(x))∧R(x,y)\varphi=(\forall x\,P(x))\land R(x,y), então:

φ[x↦f(a,y)]=(∀x P(x))∧R(f(a,y),y).\varphi[x\mapsto f(a,y)] =(\forall x\,P(x))\land R(f(a,y),y).

O xx ligado não muda. A substituição não deve ligar uma variável que estava livre no termo inserido. Dizemos que tt está livre para xx em φ\varphi quando nenhuma ocorrência livre de xx está sob um quantificador de uma variável que ocorre em tt.

Em ∀y R(x,y)\forall y\,R(x,y), o termo f(y)f(y) não está livre para xx. A substituição literal daria ∀y R(f(y),y)\forall y\,R(f(y),y) e capturaria o yy inserido. Para uma substituição que preserve o significado, renomeamos primeiro a variável ligada:

∀y R(x,y)⇔∀z R(x,z),\forall y\,R(x,y)\Leftrightarrow\forall z\,R(x,z),

com zz novo. Agora substituímos e obtemos ∀z R(f(y),z)\forall z\,R(f(y),z). O yy do termo continua livre.

Quando um exercício pede “para que variáveis o termo é livre”, verifica cada ocorrência livre dessa variável. Se uma única ocorrência provocaria captura, a condição falha. Se a variável não ocorre livre, não há ocorrência a capturar e a condição é satisfeita.

Numa substituição simultânea, os termos inseridos não recebem a outra substituição. Em R(x,y)[x↦y,y↦a]R(x,y)[x\mapsto y,y\mapsto a], o resultado é R(y,a)R(y,a), não R(a,a)R(a,a). Duas substituições sucessivas podem dar outro resultado.

Exercícios

Termos, aridades e variáveis livres

A linguagem tem igualdade, F0={a}F_0=\{a\}, F1={s}F_1=\{s\}, F2={f}F_2=\{f\} e R1={P}R_1=\{P\}. Para cada expressão, decide se é um termo, uma fórmula bem formada ou nenhuma dessas coisas. Nas fórmulas, indica as variáveis livres:

  1. f(x,a)=s(y)f(x,a)=s(y);
  2. P(a)=P(x)P(a)=P(x);
  3. P(f(a))P(f(a));
  4. f(s(a),x)f(s(a),x);
  5. ∀xP(f(x,a))\forall xP(f(x,a)).

Pista

Confere cada expressão de dentro para fora: primeiro os termos, depois os predicados e os quantificadores.

Solução
  1. Fórmula atómica: a igualdade liga dois termos. As variáveis livres são x,yx,y.
  2. Não é bem formada: P(a)P(a) e P(x)P(x) são fórmulas, e a igualdade liga termos.
  3. Não é bem formada: ff exige dois argumentos, mas só recebeu aa.
  4. Termo não fechado, porque contém xx. Não é uma afirmação com valor de verdade.
  5. Fórmula fechada: f(x,a)f(x,a) é termo, P(f(x,a))P(f(x,a)) é fórmula e o quantificador liga a única variável, xx.

Confere a tua resposta:

  • Distingui termos de fórmulas.
  • Identifiquei a aridade errada e a igualdade entre fórmulas.
  • Determinei as variáveis livres das fórmulas válidas.
Voltar à explicação
Captura numa substituição

Seja φ=∃x(R(x,y)∧∀y R(z,y))\varphi=\exists x(R(x,y)\land\forall y\,R(z,y)). Determina as variáveis livres. O termo f(y)f(y) está livre para zz em φ\varphi? Renomeia o necessário e faz uma substituição de zz sem captura.

Pista

O primeiro yy não está no âmbito de ∀y\forall y. O zz está.

Mais uma pista

Renomeia ∀y R(z,y)\forall y\,R(z,y) para ∀w R(z,w)\forall w\,R(z,w) com ww novo.

Solução

As variáveis livres são {y,z}\{y,z\}. f(y)f(y) não está livre para zz, pois a ocorrência de zz está sob ∀y\forall y. Depois de renomear esse quantificador, obtemos ∃x(R(x,y)∧∀w R(f(y),w))\exists x(R(x,y)\land\forall w\,R(f(y),w)). O yy inserido permanece livre.

Confere a tua resposta:

  • Identifiquei y e z como as variáveis livres.
  • Detetei que o y inserido seria capturado.
  • Renomeei apenas as ocorrências ligadas ao quantificador e mantive y livre.

Erros frequentes

Não renomeies o primeiro yy: é livre. Trocar todos os símbolos iguais sem olhar para o âmbito altera a fórmula.

Voltar à explicação
Exatamente dois objetos

Traduz “há exatamente dois objetos com a propriedade PP”, num domínio não vazio e com igualdade.

Pista

Precisamos de pelo menos dois e no máximo dois.

Mais uma pista

Depois de escolher x,yx,y, limita cada zz com P(z)P(z) a xx ou yy.

Solução
∃x∃y(P(x)∧P(y)∧x≠y∧∀z(P(z)→(z=x∨z=y))).\exists x\exists y\bigl(P(x)\land P(y)\land x\ne y\land\forall z(P(z)\to(z=x\lor z=y))\bigr).

As testemunhas distintas garantem pelo menos dois. O universal impede um terceiro.

Confere a tua resposta:

  • Apresentei duas testemunhas com P.
  • Exigi que fossem distintas.
  • Exigi que qualquer objeto com P coincidisse com uma das testemunhas.

Erros frequentes

∃x∃y(P(x)∧P(y))\exists x\exists y(P(x)\land P(y)) aceita x=yx=y. Mesmo acrescentando distinção, ainda não limita a quantidade a dois.

Voltar à explicação
Testemunhas individuais e cadeira comum

O domínio contém pessoas e cadeiras. E(x)E(x) significa «xx é estudante», C(y)C(y) significa «yy é cadeira» e G(x,y)G(x,y) significa «xx gosta de yy». Traduz:

  1. Cada estudante gosta de pelo menos uma cadeira.
  2. Há uma cadeira de que todos os estudantes gostam.

Constrói uma estrutura com dois estudantes e duas cadeiras em que a primeira frase seja verdadeira e a segunda falsa. Explica por que os quantificadores não podem trocar de ordem.

Pista

Uma tabela com estudantes em linhas e cadeiras em colunas permite procurar uma coluna que sirva para todas as linhas.

Solução

As traduções são ∀x(E(x)→∃y(C(y)∧G(x,y)))\forall x(E(x)\to\exists y(C(y)\land G(x,y))) e ∃y(C(y)∧∀x(E(x)→G(x,y)))\exists y(C(y)\land\forall x(E(x)\to G(x,y))).

Usa domínio {u,v,c,d}\{u,v,c,d\}, E={u,v}E=\{u,v\}, C={c,d}C=\{c,d\} e G={(u,c),(v,d)}G=\{(u,c),(v,d)\}. Na primeira fórmula, cc serve para uu e dd para vv. Para as cadeiras tomadas como xx, o antecedente E(x)E(x) é falso. Na segunda, cc falha para vv e dd falha para uu; os outros objetos não são cadeiras. Logo não há testemunha comum.

Os existenciais da primeira fórmula podem escolher valores diferentes conforme o estudante. O existencial exterior da segunda faz uma escolha que tem de servir para todos.

Confere a tua resposta:

  • Restringi estudantes e cadeiras no domínio misto.
  • Declarei os objetos e os únicos pares da relação G.
  • Verifiquei uma testemunha por estudante e a ausência de cadeira comum.
Voltar à explicação

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.