Glossário IA
O dicionário completo da Inteligência Artificial
Síntese Dedutiva de Programas
Método de geração automática de programas a partir de especificações formais, utilizando regras de dedução lógica para transformar pré-condições e pós-condições em código executável.
Especificação Formal
Descrição matematicamente precisa do comportamento esperado de um sistema ou programa, utilizando notações formais como Z, VDM ou B para definir as propriedades e restrições.
Cálculo das Pré-condições Mais Fracas
Técnica inventada por Dijkstra para determinar a condição mínima que deve ser verdadeira antes da execução de um programa para garantir uma pós-condição dada, fundamental na verificação formal.
Lógica de Hoare
Sistema formal de regras de inferência que permite raciocinar sobre a correção de programas de computador através de triplos de Hoare {P}S{Q} que ligam pré-condições, instruções e pós-condições.
Programação por Contrato
Abordagem de design de software onde as interações entre componentes são governadas por obrigações formais (pré-condições, pós-condições e invariantes) que definem as responsabilidades mútuas.
Invariante de Laço
Propriedade lógica que permanece verdadeira antes e depois de cada iteração de um laço, essencial para provar a terminação e a correção de programas iterativos.
Resolução em Lógica
Regra de inferência completa para a lógica de primeira ordem, permitindo deduzir automaticamente novas cláusulas a partir de conjuntos de cláusulas existentes.
Semântica Denotacional
Abordagem matemática que atribui um significado preciso aos programas, traduzindo-os para objetos matemáticos (funções, conjuntos), essencial para a síntese formal.
Sistema de reescrita
Conjunto de regras que transformam termos em outros termos, usado para modelar cálculos e otimizações na síntese e transformação de programas.
Método de Floyd
Técnica pioneira de verificação de programas que utiliza asserções e invariantes para provar a correção de programas estruturados, precursora dos métodos modernos.
Sistema de tipos dependentes
Sistema onde os tipos podem depender de valores, permitindo expressar propriedades complexas diretamente no sistema de tipos e garantir a correção ao nível da tipagem.
Síntese guiada por exemplos
Abordagem híbrida que combina raciocínio dedutivo e aprendizagem a partir de exemplos para gerar programas que satisfazem tanto especificações formais quanto comportamentos observados.
Abstração relacional
Técnica que representa o comportamento de um programa por meio de relações entre estados, facilitando o raciocínio sobre as propriedades e a síntese de programas corretos.
Interpretação abstrata
Teoria da aproximação semântica que permite analisar estaticamente as propriedades dos programas calculando em domínios abstratos em vez de concretos.
Invariante de programa
Propriedade lógica preservada pela execução de um programa, utilizada para provar a correção parcial e total em métodos de síntese dedutiva.
Raciocínio equacional
Método de prova baseado na transformação de equações por reescrita, fundamental para a síntese de programas funcionais e algébricos.
Especificação Algébrica
Abordagem formal que define tipos de dados e operações por meio de axiomas algébricos, permitindo a síntese automática de implementações corretas.
Lógica de Ordem Superior
Extensão da lógica de primeira ordem que permite a quantificação sobre predicados e funções, essencial para expressar especificações complexas em síntese.