Expand description
Interface Equality Management for Theory Combination.
This module manages interface equalities in Nelson-Oppen combination:
- Minimal interface equality generation
- Equality generation strategies
- Interface equality scheduling
- Equality minimization algorithms
§Interface Equalities
Interface equalities are equalities between shared terms that must be communicated between theories. The goal is to generate a minimal set of equalities that allows theories to infer all relevant equalities.
§Generation Strategies
- Eager: Generate all possible interface equalities upfront
- Lazy: Generate equalities on-demand
- Minimal: Generate only necessary equalities (star topology)
- Incremental: Add equalities incrementally as needed
§Star Topology
For a set of equivalent terms {t1, t2, …, tn}, we can use a “star” topology: pick one term as the representative and only share equalities t1 = rep, t2 = rep, …, tn = rep. This requires O(n) equalities instead of O(n²).
§References
- Nelson & Oppen (1979): “Simplification by Cooperating Decision Procedures”
- Shostak (1984): “Deciding Combinations of Theories”
- Z3’s
smt/theory_combine.cpp
Structs§
- Equality
- Equality between two terms.
- Equality
Minimizer - Minimizer for interface equalities.
- Equality
Priority - Priority for interface equality.
- Equality
Scheduler - Equality scheduler for coordinating propagation.
- InterfaceE
Class - Equivalence class for interface terms.
- Interface
Equality - Interface equality with metadata.
- Interface
Equality Config - Configuration for interface equality management.
- Interface
Equality Manager - Interface equality manager.
- Interface
Equality Stats - Statistics for interface equality management.
Enums§
- Generation
Strategy - Equality generation strategy.
- Scheduling
Policy - Scheduling policy for equalities.
Type Aliases§
- Decision
Level - Decision level.
- TermId
- Term identifier.
- Theory
Id - Theory identifier.