When we implement an algebraic system like a group, a ring or a finite field within an existing symbolic computational language, then there are three possible approaches:
(1) define new operators: for example; if we define an operator %+% for addition on a finite field, then we could operate in the following fashion: 2 %+% 4 .
(2) change mode: for example; if we write ChangeAlgebra[GF,7], then every computation is done over GF(7) until we change to some other algebra.
(3) use the same operations within the existing system (i.e. +,-,*,/ ): for this we have to identify constants and variables to be in a certain algebra. In this method a lot of original functions of the system become available to the new algebra.
Due to the fact that Mathematica is an object based language it facilitates the adaptation of the third method cited above. Thus, the package allows us to use many functions of Mathematica over finite fields without any modification, i.e.; solving linear equations, inverses, determinants, derivations, resultants, etc.
In this paper we do not discus about techniques in Mathematica how to implement finite fields. We explain here the concept and design of the Galois field package.