Definition
Ein algorithmischer Mechanismus, der die kleinste Kongruenzrelation berechnet, die eine gegebene Menge von Gleichheiten über Termen enthält, typischerweise durch Verschmelzen von Äquivalenzklassen und Propagieren von Funktionskongruenz, um effiziente Gleichheitsfolgerung, insbesondere für uninterpretiere Funktionen, zu ermöglichen.

Prinzip

Prinzip
Führe Äquivalenzklassen von Termen unter behaupteten Gleichheiten, verschmelze Klassen bei Auftreten von Gleichheiten und sorge dafür, dass wenn f(a1,...,an) und f(b1,...,bn) vorhanden sind und ai ≡ bi für alle i gilt, auch die zusammengesetzten Terme verschmolzen werden; wiederhole dies bis zur Abschlusserreichung.

Demonstration

Demonstration
Gegeben die Gleichheiten a = b und f(a) = c verschmilzt der Abschluss a und b zu einer Klasse, erkennt dann, dass f(a) und f(b) äquivalent sind und verschmilzt deren Klassen, wodurch der Solver weitere Gleichheiten oder Widersprüche effizient folgern kann.

Fehlanwendung

Fehlanwendung
Die Kongruenzschließung naiv auf sehr großen Termgraphen ohne Hash-Consing oder Union-by-Rank anzuwenden kann zu massivem Leistungs- und Speicherzuwachs führen; falsche Behandlung von Funktionsaritäten oder Sorten kann zu unsicheren Verschmelzungen führen.

Konsequenz

Konsequenz
Eine korrekte Kongruenzschließung liefert schnelle, kanonische Gleichheitsfolgerung, die in SMT-Engines und Theoremprovern eingesetzt wird und konstante Repräsentantenprüfungen sowie inkrementelle Updates bei Hinzufügung von Gleichheiten ermöglicht.

Umkehrung

Umkehrung
Das Gegenteil besteht darin, Gleichheiten nur durch syntaktisches Matching zu behandeln ohne Abschlusspropagation: das bewahrt die Anfangsgleichheiten, verpasst jedoch viele implizite Gleichheiten und hat geringere Schlusskraft.

Abgrenzung

Abgrenzung
Zielt auf Gleichheitsreasoning für uninterpreted functions in Erster Ordnung und ground-Gleichheiten; behandelt nicht allein interpretierte Theorien (Arithmetik, Arrays) ohne Kombination mit anderen Theorielösern oder Axiomen.

Semantische Spannung

Semantische Spannung
Spannung zwischen Kongruenzschluss und resolution-orientierter Gleichheitsbehandlung: Kongruenzschluss bietet inkrementelle, datenstrukturgetriebene Äquivalenzerhaltung, während Resolution Gleichheiten über Klauselmanipulation behandelt.

Synthese

Synthese
Kongruenzschluss verschmilzt inkrementell Termäquivalenzklassen und propagiert Funktionskongruenz, um die kleinste Kongruenz zu bilden, die die gegebenen Gleichheiten enthält, und liefert kompaktes, effizientes Gleichheitsreasoning, das sich natürlich in SMT- und Entscheidungsverfahren integriert.