Function vstd::arithmetic::div_mod::lemma_mul_mod_noop_general

source ·
pub broadcast proof fn lemma_mul_mod_noop_general(x: int, y: int, m: int)
Expand description
requires
0 < m,
ensures
((x % m) * y) % m == (x * y) % m,
(x * (y % m)) % m == (x * y) % m,
((x % m) * (y % m)) % m == #[trigger] ((x * y) % m),

Proof of various properties about modulo equivalence with respect to multiplication, specifically various expressions that (x * y) % m is equivalent to.