`mod=``a``b``...`procedure`mod<``a``b``...`procedure`mod<=``a``b``...`procedure`mod>``a``b``...`procedure`mod>=``a``b``...`procedure- a
- integer
- b
- integer

Each of these is equivalent to

`(op (mod a) (mod b) ...)`, where op is the corresponding numeric comparison function. Additionally, when given one argument, the inequality tests always return`#t`.Suppose we wanted to know why 17/4 = 8 (mod 15), but 51/12 (mod 15) is undefined, even though normally 51/12 = 17/4. In code,

> (with-modulus 15 (mod/ 17 4)) 8 > (/ 51 12) 17/4 > (with-modulus 15 (mod/ 51 12)) Error: (modular-inverse) bad argument type - not coprime to modulus 15: 12

We could try to divide by brute force: find, modulo 15, all the numbers

`a`for which`(mod* a 4)`is 17, then find all the numbers`b`for which`(mod* a 12)`is 51.(import srfi-42) > (with-modulus 15 (list-ec (:range a 15) (if (mod= (mod* a 4) 17)) a)) (8) > (with-modulus 15 (list-ec (:range a 15) (if (mod= (mod* a 12) 51)) a)) (3 8 13)

So the problem isn't that

`b`doesn't exist, it's that`b`isn't*unique*.