Newsimp.cl use of CL rationals



>>>>> "Stavros" == Stavros Macrakis <stavros.macrakis@verizon.net> writes:

    Stavros>   q: new_modular_integer(2,7) => 2[mod 7]
    Stavros>   q^5 => -3[mod 7]
    Stavros>   q^(1/2) => 3[mod 7]       -- arbitrary choice, I guess
    Stavros>   q^(1/3) => 3[mod 7]^(1/3) -- no such root, so keep symbolic
    Stavros>                                (perhaps give error as option)
    Stavros>   q: new_modular_integer(q,17) => 2[mod 17]
    Stavros>   q^5 => -2[mod 17]
    Stavros>   q^(1/2) => -2[mod 17]
    Stavros>   q^(1/3) => 2[mod 17]

This is somewhat off-topic, but could you explain why q^(1/2) is
-2[mod 17] and why q^(1/3) is 2[mod 17]?

If I square -2[mod 17], I think I get 4[mod 17].  Likewise, the cube
of 2[mod 17] is 8[mod 17].

I must be missing something here.

Ray