The larger question aside, shouldn't this be:

ExclusiveUpper(earliestTimeOf(upper)) ?