pub fn propagate_comparison(
    op: &Operator,
    left_child: &Interval,
    right_child: &Interval
) -> Result<(Option<Interval>, Option<Interval>)>
Expand description

This function propagates constraints arising from comparison operators. The main idea is that we can analyze an inequality like x > y through the equivalent inequality x - y > 0. Assuming that x and y has ranges [xL, xU] and [yL, yU], we simply apply constraint propagation across [xL, xU], [yL, yH] and [0, ∞]. Specifically, we would first do - [xL, xU] <- ([yL, yU] + [0, ∞]) ∩ [xL, xU], and then - [yL, yU] <- ([xL, xU] - [0, ∞]) ∩ [yL, yU].