Checking expressions that depend on supremum

I want to have a screen checking for the attached exercise:


so, for (a), I’d ask students to input the “would be upper bound”, and want to check that they chose one that will work.
So, for example, if u is that “would be upper bound”, it’ll need to see that u=sup(A)+1 is wrong, while u=(sup(A)+sup(B))/2 is right. If I chose values for the supremum to check against, I risk having an answer marked correct, dispite it being in absolutes (+1 and not the average). I don’t want to mark only the average as correct, as I’d like to actually evaluate each answer on it’s merit.
Any idea how to check? Is it even possible?
I thought maybe defining circularly sup(B)=(u+sup(A))/2 just to make sure that the expression depends on both supremum (if defined incorrct, if undefined correct) and then move on to assigning values, but I’m not sure how to make it work, and I have a feeling that won’t cover all possible errors.

I don’t know of a good way to analytically check (and get all possible cases), but I think a sweep of a wide range of numbers could be a good stand-in for that.

I threw together an example of what that could look like in a desmos graph below, where u(a,b) is the function in terms of the supremum of A and the supremum of B, and then it checks that sup(A) < u(sup(A),sup(B)) < sup(B) for a wide range of values of the suprema (ranging from 10^-10 to 10^10) and wide range of differences between the suprema.

Suprema Comparisons | Desmos

This should take care of any expression of the form sup(A) + d for constant d, and still check each answer on it’s own merit.