Définition
Un mécanisme algorithmique qui calcule la plus petite relation de congruence contenant un ensemble donné d'égalités entre termes, généralement en fusionnant des classes d'équivalence et en propageant la congruence des fonctions pour permettre un raisonnement égalitaire efficace, en particulier pour les fonctions non interprétées.

Principe

Principe
Maintenir des classes d'équivalence de termes sous les égalités affirmées, fusionner les classes lorsque des égalités apparaissent, et assurer que si f(a1,...,an) et f(b1,...,bn) sont présentes et que ai ≡ bi pour tout i alors les termes composés sont fusionnés, répéter jusqu'à atteindre la clôture.

Démonstration

Démonstration
Étant données les égalités a = b et f(a) = c, la fermeture fusionne a et b en une classe, reconnaît ensuite que f(a) et f(b) sont équivalents et fusionne leurs classes, permettant au solveur de déduire efficacement d'autres égalités ou contradictions.

Mauvaise application

Mauvaise application
Appliquer la fermeture de congruence naïvement sur de très grands graphes de termes sans hash-consing ni union-by-rank peut conduire à des surcoûts massifs en temps et mémoire ; une gestion incorrecte des arités des symboles de fonction ou des tris peut entraîner des fusions non valides.

Conséquence

Conséquence
Une fermeture de congruence correcte fournit un raisonnement égalitaire rapide et canonique utilisé dans les moteurs SMT et les démonstrateurs, permettant des vérifications de représentants en temps constant et des mises à jour incrémentales à mesure que des égalités sont ajoutées.

Inversion

Inversion
L'inverse consiste à traiter les égalités uniquement par appariement syntaxique sans propagation de clôture : cela conserve les égalités initiales mais manque de nombreuses égalités impliquées et donne un pouvoir de raisonnement plus faible.

Limite

Limite
Cible le raisonnement d'égalité pour fonctions non interprétées sur termes du premier ordre et égalités ground ; elle ne traite pas en elle-même des théories interprétées (arithmétique, tableaux) sans combinaison avec d'autres solveurs de théorie ou axiomes.

Tension sémantique

Tension sémantique
Tension entre la fermeture de congruence et le traitement des égalités par résolution : la fermeture de congruence offre une maintenance incrémentale pilotée par structures de données, tandis que la résolution traite les égalités via manipulation et inférence de clauses.

Synthèse

Synthèse
La fermeture de congruence fusionne incrémentalement des classes d'équivalence de termes et propage la congruence des fonctions pour former la plus petite congruence contenant les égalités données, fournissant un raisonnement égalitaire compact et efficace qui s'intègre naturellement aux procédures de décision SMT.