widen method
Widening operation (∇): ensures termination in fixpoint iteration.
Implementation
@override
IntervalDomain widen(IntervalDomain other) {
if (isBottom) return other;
if (other.isBottom) return this;
// Widen: if bound is growing, jump to infinity
final newMin = (other.min != null && min != null && other.min! < min!)
? null // -∞
: min;
final newMax = (other.max != null && max != null && other.max! > max!)
? null // +∞
: max;
return IntervalDomain(newMin, newMax);
}