Given types 
T and 
U,
let 
t and 
t2 be lvalues
denoting distinct equal objects of types 
const remove_reference_t<T> and
remove_cvref_t<T>, respectively,
let 
u and 
u2 be lvalues
denoting distinct equal objects of types 
const remove_reference_t<U> and
remove_cvref_t<U>, respectively, and
let 
C be:
common_reference_t<const remove_reference_t<T>&, const remove_reference_t<U>&>
T and 
U model
totally_ordered_with<T, U> only if
- bool(t <  u) == bool(CONVERT_TO_LVALUE<C>(t2) <  CONVERT_TO_LVALUE<C>(u2)). 
- bool(t >  u) == bool(CONVERT_TO_LVALUE<C>(t2) >  CONVERT_TO_LVALUE<C>(u2)). 
- bool(t <= u) == bool(CONVERT_TO_LVALUE<C>(t2) <= CONVERT_TO_LVALUE<C>(u2)). 
- bool(t >= u) == bool(CONVERT_TO_LVALUE<C>(t2) >= CONVERT_TO_LVALUE<C>(u2)). 
- bool(u <  t) == bool(CONVERT_TO_LVALUE<C>(u2) <  CONVERT_TO_LVALUE<C>(t2)). 
- bool(u >  t) == bool(CONVERT_TO_LVALUE<C>(u2) >  CONVERT_TO_LVALUE<C>(t2)). 
- bool(u <= t) == bool(CONVERT_TO_LVALUE<C>(u2) <= CONVERT_TO_LVALUE<C>(t2)). 
- bool(u >= t) == bool(CONVERT_TO_LVALUE<C>(u2) >= CONVERT_TO_LVALUE<C>(t2)).