mma and finite fields

*To*: mathgroup at yoda.physics.unc.edu*Subject*: mma and finite fields*From*: fairman at newton.rutgers.edu (Fairman)*Date*: 24 Aug 93 19:38:43 GMT

I've been trying to get mathematica deal with finite fields by using ff[] to indicate that the argument to ff[] is an element of a particular finite field. So, I'm not using ff[] as a function; it's being used as a way to signal a variable (or expression) of a particular type. Suppose the field is GF(2^{2m+1}), so that whenever ff[a] occurs, we know that a is an element of GF(2^{2m+1}). What I've tried to do is define certain rules for ff[]. For instance, ff[0] := 0; ff[2 x_] := 0; ff[x_ + y_] := ff[x] + ff[y]; ff[x_] ff[y_] := ff[x y]; x_ ff[y_] := ff[x y]; ff[x_]^y_ := ff[x^y]; and so forth. Note that to make these definitions, Power and Times had to be Unprotect[]-ed. I also need some means of reducing exponents modulo 2m+1. I haven't been able to get this idea to work. Ideas, anyone? I'm not interested in doing calculations involving particular elements of GF(q), rather in working with equations, where the variables are known to lie in GF(q). Randall Fairman fairman at math.rutgers.edu