Construindo um banco de dados de regras de reescrita: Um projeto ambicioso

2025-02-22
Construindo um banco de dados de regras de reescrita: Um projeto ambicioso

Esta publicação propõe a criação de um banco de dados de regras de reescrita abrangendo vários domínios, incluindo propriedades de inteiros, diferenciação, teoria de conjuntos, bitvectors, programas funcionais e muito mais. O autor lista vários projetos e bibliotecas existentes que contêm regras de reescrita e discute a viabilidade e os desafios de unificar essas regras em um formato comum. Embora algumas regras possam ser provadas diretamente por resolvedores SMT existentes, o autor argumenta que um banco de dados de regras de reescrita bem definido é crucial para reescritas e manipulações precisas em contextos de aplicação específicos e será um recurso valioso para pesquisas futuras.

Leia mais
Desenvolvimento regras de reescrita

Estudos de resolvedores SAT I: Uma imersão na satisfação booleana

2025-01-08
Estudos de resolvedores SAT I: Uma imersão na satisfação booleana

Esta postagem de blog explora o fascinante mundo dos resolvedores SAT, traçando sua evolução de abordagens simples de força bruta a algoritmos sofisticados como Davis-Putnam e Aprendizado de Cláusulas Orientado a Conflitos (CDCL). Ele compara diferentes técnicas, destacando avanços recentes, como fechamento de congruência, varredura de equivalência de cláusulas e adição de variáveis ​​limitadas que melhoraram drasticamente o desempenho. O autor fornece exemplos de código Python que ilustram resolvedores de força bruta, baseados em Davis-Putnam e em loop de cláusulas fornecidas. A postagem também aborda técnicas de avaliação parcial e direções futuras de pesquisa, tornando-se uma leitura convincente para quem se interessa pelas intrincadas da satisfação booleana.

Leia mais

Execução Simbólica por Sobrecarga de __bool__

2024-12-24
Execução Simbólica por Sobrecarga de __bool__

Este artigo apresenta uma técnica inteligente para execução simbólica de código Python, sobrecarregando a função __bool__ na biblioteca Python Z3. O autor utiliza as capacidades do Z3 para traduzir instruções condicionais Python em expressões Z3, permitindo a exploração de caminhos e análise de resultados. Esta abordagem ignora a travessia complexa de AST e permite o uso direto em código Python, simplificando a execução simbólica.

Leia mais