Ambiguidade e lógica


17

Na teoria dos autômatos (autômatos finitos, autômatos de empilhamento, ...) e na complexidade, existe a noção de "ambiguidade". Um autômato é ambíguo se houver uma palavra com pelo menos duas execuções de aceitação distintas. Uma máquina é ambígua se, para cada palavra aceita pela máquina, houver no máximo execuções distintas para aceitar .wkwkw

Essa noção também é definida sobre gramáticas sem contexto: uma gramática é ambígua se existir uma palavra que possa ser derivada de duas maneiras diferentes.

Também é sabido que muitas linguagens têm uma boa caracterização lógica sobre modelos finitos. (Se uma linguagem é regular, existe uma fórmula monádica de segunda ordem sobre palavras, de modo que cada palavra de seja um modelo de , da mesma forma NP se equivalente às fórmulas de segunda ordem em que todos os quantificadores de segunda ordem são existenciais .)LϕwLϕ

Portanto, minha pergunta está nos limites dos dois domínios: existe algum resultado, ou mesmo uma definição canônica, de "ambiguidade" de fórmulas de uma dada lógica?

Eu posso imaginar algumas definições:

  • xϕ(x) não é ambíguo se existir no máximo um tal que válido e que seja não ambíguo. xϕ(x)ϕ(x)
  • ϕ0ϕ1 seria ambíguo se existe um modelo de ambos e , ou se φ i é ambíguo. ϕ0ϕ1ϕi
  • Uma fórmula SAT seria não ambígua se houver no máximo uma atribuição correta.

Por isso, pergunto-me se é uma noção bem conhecida; caso contrário, pode ser interessante tentar fazer pesquisas sobre esse tópico. Se a noção for conhecida, alguém poderia me fornecer palavras-chave que eu poderia usar para procurar informações sobre o assunto (porque "ambiguidade lógica" fornece muitos resultados não relacionados) ou referências a livros / pdf / artigos?

Respostas:


11

Regras em uma gramática e regras de inferência na lógica podem ser pensadas como regras de produção que nos fornecem "coisas novas" de "coisas conhecidas". Assim como pode haver muitas maneiras de produzir (ou analisar) uma palavra com relação a uma gramática, também pode haver muitas maneiras de produzir (ou provar) uma fórmula lógica. Essa analogia pode ser mais aprofundada. Por exemplo, certos sistemas lógicos admitem formas normais de provas. Da mesma forma, certas gramáticas admitem árvores de análise canônica.

Então, eu diria que seus exemplos da lógica estão indo na direção errada. A analogia correta é

"parse tree": "word" = "proof": "fórmula lógica"

De fato, um tipo de gramática suficientemente geral será capaz de expressar regras típicas de inferência da lógica, de modo que as palavras gramaticalmente corretas serão precisamente as fórmulas prováveis. Neste caso, as árvores de análise vai realmente ser as provas.

Na direção oposta, se estivermos dispostos a pensar em regras de inferência muito gerais (que não têm necessariamente um sabor lógico tradicional), toda gramática será expressável como um sistema de axiomas (terminais) e regras de inferência (produções). E mais uma vez veremos que uma prova é a mesma coisa que uma árvore de análise.


Eu realmente não pensei em provas. Estou mais acostumado à teoria de modelos (finitos). Preocupamo-nos em descobrir quais conjuntos são modelos de uma fórmula e quais não. (Especialmente, para uma fórmula, qual é a complexidade de descobrir se um conjunto é um modelo ou não, e para uma fórmula provável, portanto, tautologias, a complexidade é O (1), pois todos os conjuntos são modelos). Mas muito obrigado pela sua resposta.
Arthur MILCHIOR 31/03

2
Bem, para adicionar analogia: a teoria dos modelos é fazer lógica do que é semântica para as linguagens. A teoria dos modelos atribui significado às teorias lógicas, enquanto a semântica atribui significado às linguagens. Às vezes, é melhor não misturar maçãs e laranjas, mesmo que você esteja acostumado.
Andrej Bauer 31/03

7

Apenas duas observações. Espero que eles ajudem.

As definições padrão da semântica de uma lógica e da verdade seguem a apresentação de Tarski, procedendo por indução na estrutura da fórmula. Outra possibilidade é fornecer semântica baseada em jogos, conforme sugerido por Hintikka. Verdade e satisfação são definidas em termos de estratégias em um jogo. Para fórmulas de primeira ordem, pode-se provar que uma fórmula é verdadeira sob a noção de Tarski, se e somente se existe uma estratégia vencedora no jogo Hintikka.

Para formalizar sua pergunta, pode-se perguntar se o jogo admite várias estratégias. Há também a questão interessante sobre se as estratégias devem ser determinísticas. Hintikka exigia que fossem deterministas. A prova de que o original de Hintikka e a semântica de Tarski são equivalentes requer o axioma da escolha. Pode-se também formalizar a verdade em termos de jogos com estratégias não determinísticas com menos complicações.

Seu exemplo da teoria da linguagem trouxe à mente determinismo, relações de simulação e aceitação da linguagem. Uma relação de simulação entre autômatos implica a inclusão de idiomas entre seus idiomas, embora o inverso não seja verdadeiro. Para autômatos determinísticos, as duas noções coincidem. Pode-se perguntar se é possível estender as relações de simulação de uma maneira 'suave' para capturar equivalência de linguagem para autômatos não determinísticos. Kousha Etessami tem um artigo muito bom mostrando como fazer isso usando simulações-k ( uma hierarquia de simulações computáveis ​​em tempo polinomial para autômatos) Intuitivamente, o 'k' reflete o grau de não determinismo que a relação de simulação pode capturar. Quando 'k' é igual ao nível de não determinismo no autômato, a simulação e a equivalência da linguagem coincidem. Esse artigo também fornece uma caracterização lógica das simulações-k em termos de lógica modal poládica e um fragmento variável limitado da lógica de primeira ordem. Você obtém inclusão de linguagem, determinismo, jogos, lógica modal e lógica de primeira ordem, tudo em um único pacote.


4

Isso começou como um comentário sob a resposta de Andrej Bauer, mas ficou muito grande.

umambEugvocêovocês(ϕ)M1 1,M2|M1 1ϕM2ϕM1 1ψM2ψ

ϕψϕ

Você pode conectar isso à resposta de Andrej sobre provas através da Complexidade descritiva. A combinação da existência de uma codificação de um modelo específico mais a sua aceitação por uma MT apropriada como modelo de uma dada fórmula É uma prova de que os axiomas e inferências (e, portanto, uma gramática equivalente) codificados nessa fórmula são consistentes.

Para tornar isso totalmente compatível com a resposta de Andrej, você diria que o modelo é "gerado" pela fórmula que atua como um filtro no espaço de todos os modelos finitos possíveis (ou algo parecido), com a codificação e a ação da filtragem no modelo de entrada como a "prova". As provas distintas, então, testemunham a ambiguidade.

Esse pode não ser um sentimento popular, mas costumo pensar na teoria dos modelos finitos e na teoria da prova como a mesma coisa vista sob diferentes ângulos. ;-)


ϕ

Sim, isso deveria ter sido "como uma fórmula". Eu consertei isso. Quanto à distinção entre modelos finitos, a outra situação é que existe apenas um modelo finito aceito para a sua linguagem (possivelmente até alguma noção de isomorfismo). Isso é o oposto da ambiguidade.
Marc Hamann

Eu acho que isso seria de fato "ambiguidade". Eu simplesmente não pensei nisso assim. Principalmente porque, no que diz respeito à linguagem, isso não seria realmente interessante. Mas de um ponto-de-vue lógica se faz sens
Arthur Milchior

Não tenho certeza de que a parte do idioma deva ser entediante. Tenho mais idéias sobre isso, mas acho que isso nos levaria além do escopo deste fórum. ;-)
Marc Hamann

0

Não tenho certeza sobre a pergunta aplicada ao CS, mas tente pesquisar pelo termo Vagacidade e lógica. Na filosofia da lógica, a ambiguidade é geralmente diferenciada da imprecisão (veja aqui, por exemplo), e acho que o que você procura é imprecisão (como imprecisão é definida como termos em que existem casos limítrofes). O principal livro nesta área é Vagueness de Timothy Williamson (mas também veja a bibliografia no site de Stanford acima).


11
Obrigado pela sua resposta. Mas, como você diz, não vejo realmente relação com a ciência da computação. Especialmente, um universo é ou não é um modelo de fórmula, não há realmente nenhuma imprecisão aqui. Em vez disso, em relação aos autômatos, a ambiguidade é algo bem definido, e existem algoritmos conhecidos para decidir se um autômato é ambíguo, k-ambíguo ou inequívoco. (apenas sobre algum tipo de autômato)
Arthur MILCHIOR 31/03

Você está certo, eu provavelmente não deveria ter entrado nessa questão e preso à espreita. Sou apenas um noob no CS (prestes a terminar minha graduação em lógica / filosofia da ciência e matemática pura). Obrigado pela informação embora.
DanielC

0

Eu (também) concordo com Anrej.

Penso que a complexidade descritiva é uma caracterização sem computação (o que a torna interessante à sua maneira) e, portanto, os exemplos de ambiguidade computacional da teoria das linguagens formais (autômatos / gramáticas / ...) que você parecia estar em um domínio bem diferente . Na complexidade descritiva, as linguagens correspondem a classes de complexidade e as consultas (em uma linguagem) correspondem a problemas computacionais (não algoritmos). Não existe uma maneira pretendida de verificar / computar uma consulta AFAIK; portanto, se você não está procurando ambiguidade computacional no IMHO, esses exemplos são enganosos.


Kaveh, não tenho certeza se concordo que a caracterização sem computação da complexidade descritiva esteja 100% correta. Os detalhes computacionais são muito importantes para entender como uma lógica específica captura uma classe de complexidade. A vantagem é que, depois de fazer suas provas e entender como funciona, você pode deixar o cálculo de lado e focar nos detalhes lógicos usando métodos lógicos padrão.
Marc Hamann

A mesma observação à marca. A complexidade descritiva também é conhecida como teoria do banco de dados, um vocabulário sendo uma estrutura de um banco de dados e os modelos da teoria sendo o conteúdo do banco de dados. Por isso, é uma satisfação que possamos calcular e descobrir se um banco de dados respeita uma fórmula.
Arthur MILCHIOR

UMAC0 0FO

11
@ Kaveh, estou fazendo uma observação um pouco sutil, mas que acho importante, pois parece ser frequentemente mal compreendida (por exemplo, por tentativas fracassadas de P = NP?). Não é um, bastante algoritmo de força bruta subjacente que sustenta a correspondência de uma linguagem lógica e uma classe de complexidade. Trabalhar com a lógica permite que você não precise pensar nos detalhes desse algoritmo a cada segundo, mas a beleza e a genialidade das provas de Fagin, Immerman, Vardi e outras estão exatamente na descrição desses algoritmos. As pessoas que os perdem completamente de vista geralmente acabam tendo problemas.
Marc Hamann

11
@ Kaveh, acho que nos entendemos e compartilhamos nosso respeito pelo campo. A "força bruta" não era um desprezo aos algoritmos subjacentes, apenas deixando claro que estamos falando de algo um pouco mais abstrato do que alguém que, digamos, o trabalho de otimização algorítmica possa pensar como um algoritmo.
Marc Hamann
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.