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 .
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 .)
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:
- não é ambíguo se existir no máximo um tal que válido e que seja não ambíguo.
- seria ambíguo se existe um modelo de ambos e , ou se φ i é ambíguo.
- 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?
fonte
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.
fonte
Isso começou como um comentário sob a resposta de Andrej Bauer, mas ficou muito grande.
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. ;-)
fonte
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).
fonte
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.
fonte