Requêtes Datalog efficaces avec SQL : une approche ingénieuse basée sur les relations d’environnement

2025-08-31
Requêtes Datalog efficaces avec SQL : une approche ingénieuse basée sur les relations d’environnement

Cet article présente une nouvelle approche pour traduire les programmes Datalog en requêtes SQL. L’auteur exploite intelligemment les capacités d’algèbre relationnelle de SQL, en représentant les environnements de liaison de variables du corps du programme Datalog sous forme de relations. Cela permet une exécution efficace des requêtes Datalog à l’aide des moteurs SQL existants. La méthode est non seulement propre, mais elle permet également une évaluation semi-naïve à l’aide de l’astuce du nombre dual, ce qui améliore encore les performances. L’article inclut des exemples de code Python et SQL, ainsi que des comparaisons de performances par rapport à d’autres moteurs Datalog.

Lire plus
Développement

Construction d'une base de données de règles de réécriture : un projet ambitieux

2025-02-22
Construction d'une base de données de règles de réécriture : un projet ambitieux

Cet article propose la création d'une base de données de règles de réécriture couvrant divers domaines, notamment les propriétés des entiers, la différenciation, la théorie des ensembles, les bitvectors, les programmes fonctionnels, etc. L'auteur énumère de nombreux projets et bibliothèques existants contenant des règles de réécriture et discute de la faisabilité et des défis liés à l'unification de ces règles dans un format commun. Bien que certaines règles puissent être prouvées directement par les solveurs SMT existants, l'auteur soutient qu'une base de données de règles de réécriture bien définie est essentielle pour des réécritures et des manipulations précises dans des contextes d'application spécifiques et constituera une ressource précieuse pour les recherches futures.

Lire plus
Développement règles de réécriture

Études sur les solveurs SAT I : Plongez au cœur de la satisfaisabilité booléenne

2025-01-08
Études sur les solveurs SAT I : Plongez au cœur de la satisfaisabilité booléenne

Cet article de blog explore le monde fascinant des solveurs SAT, retraçant leur évolution des approches simples de force brute aux algorithmes sophistiqués comme Davis-Putnam et l'apprentissage de clauses guidé par les conflits (CDCL). Il compare différentes techniques, en soulignant les progrès récents tels que la clôture de congruence, le balayage d'équivalence clausale et l'ajout de variables bornées qui ont considérablement amélioré les performances. L'auteur fournit des exemples de code Python illustrant les solveurs par force brute, basés sur Davis-Putnam et sur la boucle de clauses données. L'article aborde également les techniques d'évaluation partielle et les orientations futures de la recherche, ce qui en fait une lecture captivante pour quiconque s'intéresse aux complexités de la satisfaisabilité booléenne.

Lire plus

Exécution symbolique par surcharge de __bool__

2024-12-24
Exécution symbolique par surcharge de __bool__

Cet article présente une technique astucieuse pour l'exécution symbolique de code Python en surchargeant la fonction __bool__ dans la bibliothèque Python Z3. L'auteur utilise les capacités de Z3 pour traduire les instructions conditionnelles Python en expressions Z3, permettant l'exploration des chemins et l'analyse des résultats. Cette approche contourne le parcours complexe de l'AST et permet une utilisation directe dans le code Python, simplifiant ainsi l'exécution symbolique.

Lire plus