Function vstd::arithmetic::mul::lemma_mul_strict_upper_bound

source ·
pub broadcast proof fn lemma_mul_strict_upper_bound(x: int, xbound: int, y: int, ybound: int)
Expand description
requires
x < xbound,
y < ybound,
0 < x,
0 < y,
ensures
#[trigger] (x * y) <= #[trigger] ((xbound - 1) * (ybound - 1)),

Proof that when x has an exclusive upper bound xbound and y has an exclusive upper bound ybound, that the product of x and y is bounded above by the product of the predecessors of their upper bounds. In other words, x * y <= (xbound - 1) * (ybound - 1).