Reference · Finite sums
rainbow.math.sums.nonblocking
An encoded maximum is nonnegative exactly when at least one preference gap is.
signed/nonnegative-difference-implies-order
signed/nonnegative-difference-implies-order : (x y : ℚ) (gap : 0 ≤ y + signed/negate x) → x ≤ y
+ = signed/add0 = signed/zeroℚ = signed/SignedRational≤ = signed/at-most
signed/order-implies-nonnegative-difference
signed/order-implies-nonnegative-difference : (x y : ℚ) (order : x ≤ y) → 0 ≤ y + signed/negate x
+ = signed/add0 = signed/zeroℚ = signed/SignedRational≤ = signed/at-most
signed/nonnegative-maximum-gaps-implies-nonblocking
signed/nonnegative-maximum-gaps-implies-nonblocking : (x y z w : ℚ) (encoded : 0 ≤ data/Bool.rec (fun x₄ => ℚ) (y + signed/negate x) (w + signed/negate z) (most)) → proposition/disjunction (x ≤ y) (z ≤ w) where most := signed/decide-at-most (y + signed/negate x) (w + signed/negate z)
+ = signed/add0 = signed/zeroℚ = signed/SignedRational≤ = signed/at-most
signed/nonblocking-implies-nonnegative-maximum-gaps
signed/nonblocking-implies-nonnegative-maximum-gaps : (x y z w : ℚ) (preferences : proposition/disjunction (x ≤ y) (z ≤ w)) → 0 ≤ data/Bool.rec (fun x₄ => ℚ) (y + signed/negate x) (w + signed/negate z) (most) where most := signed/decide-at-most (y + signed/negate x) (w + signed/negate z)
+ = signed/add0 = signed/zeroℚ = signed/SignedRational≤ = signed/at-most