If I change the first test there to (<= a 0), then the optimization works. This suggests to me that most of the logic is already there in the type propagator.
If I change the first test there to (<= a 0), then the optimization works. This suggests to me that most of the logic is already there in the type propagator.