Any reason why MLIR shape dialect doesn't have a shape.sub op?

It reads like shape.size is nonegative. Or can there be a negative shape.size to use with shape.add to emulate shape.sub?

Honestly oversight - we were going to add it last year and then we had a shift for a shorter term goal and some pending work there was stopped. There was also the discussion given that most of it is around constraints that a sub could be expressed as an equality constraint with the variable moved across the equality. Which is fair, but it is also used executionaly.

(also I don’t recognize the name to know if we’ve talked about shape dialect before, I’d be interested in knowing more about your use case(s) over email)