For example, when we work over a ring, the equation x^3=0 does not imply x^2=0 or x=0, but the vice versa is true. Can we use Mathematica to Simplify equations over a ring?
1 Answer
If you want to solve an equation over integer rings $\mathbb{Z}_n$ you should specify them with Modulus e.g.
Column[Solve[x^3 == 0, x, Modulus -> #] & /@ Range[2, 9]] 
Edit
Since there was no further example of any expression to simplify over a finite ring let's define e.g. a polynomial which cannot be factorized over rationals (as Mathematica does by default)
p[x_] := x^5 + 3 x^4 + 6 x^3 - 2 x^2 + 1 Factor[p[x]] p /@ Range[5] 1 - 2 x^2 + 6 x^3 + 3 x^4 + x^5 {9, 121, 631, 2145, 5701}
however over rings $\mathbb{Z}_n$ it is evaluated automatically with Mod[ p[x], n], (it has the Listable attribute), thus
Column[ Mod[p /@ Range[2, 10], #] & /@ Range[2, 10]] {{{1, 1, 1, 1, 1, 1, 1, 1, 1}}, {{1, 1, 0, 1, 1, 0, 1, 1, 0}}, {{1, 3, 1, 1, 1, 3, 1, 1, 1}}, {{1, 1, 0, 1, 4, 1, 1, 0, 1}}, {{1, 1, 3, 1, 1, 3, 1, 1, 3}}, {{2, 1, 3, 3, 2, 1, 2, 2, 1}}, {{1, 7, 1, 5, 1, 3, 1, 1, 1}}, {{4, 1, 3, 4, 1, 6, 4, 1, 0}}, {{1, 1, 5, 1, 9, 1, 1, 5, 1}} }
On the other hand you can use PolynomialMod to "simplify" a polynomial over a ring $\mathbb{Z}_n$, e.g.
Column[ PolynomialMod[ p[x], #] & /@ Range[2, 6] ] 1 + x^4 + x^5 1 + x^2 + x^5 1 + 2 x^2 + 2 x^3 + 3 x^4 + x^5 1 + 3 x^2 + x^3 + 3 x^4 + x^5 1 + 4 x^2 + 3 x^4 + x^5
So to get the table Column[ Mod[p /@ Range[2, 10], #] & /@ Range[2, 10]] as above, you can Apply as well PolynomialMod on a specific level of an adequate Table, e.g.
Column[ Apply[ PolynomialMod[ p[#2], #1] &, Table[{i, j}, {i, 2, 10}, {j, 2, 10}], {2}] ] === Column[ Mod[ p /@ Range[2, 10], #] & /@ Range[2, 10]] True
In case you'd like to factorize p[x] over a finite field (for n prime $\mathbb{Z}_n$ is a field) it can be done with Modulus as well, e.g.
Column[ Factor[ p[x], Modulus -> #] & /@ Prime @ Range[4]] 
Some related details (e.g. Extension to work with polynomials and algebraic functions over rings of Rationals extended by selected algebraic numbers) you could find here.
Consider another polynomial
w[x_] := 6 - 12 x + x^2 - 2 x^3 - x^4 + 2 x^5 you can solve the equation w[x] == 0 over the field of Rationals as well (by default Mathematica solves over Complexes, and then you needn't specify the domain), e.g.
Column[ Solve[w[x] == 0, x, #] & /@ {Integers, Rationals, Reals, Complexes} ] 
You could factorize completely this polynomial with Extension :
Factor[ w[x]] Factor[ w[x], Extension -> {Sqrt[2], Sqrt[3], I}] 
There is also a package AbstractAlgebra to work with adequate algebraic concepts and a related book Exploring Abstract Algebra with Mathematica.
- $\begingroup$ Nice. But it seems that the option
Modulusis not capable to use withSimplifyorFullSimplify. I don't want to solve the equations, but just want to simplify the relations of equations. Any idea? $\endgroup$Osiris Xu– Osiris Xu2012-06-20 04:29:22 +00:00Commented Jun 20, 2012 at 4:29 - $\begingroup$ @OsirisXu You can use
Simplifyfirst and then useMod. If your expression is quite simple asx^3==0you needn't to use any simplifications e.g.Mod[x^3, 9] /. x -> 6yields0or directly evaluate(Mod[x^3, 9] /. x -> 6) == 0. Otherwise you should specify what you need giving an example. $\endgroup$Artes– Artes2012-06-20 09:30:18 +00:00Commented Jun 20, 2012 at 9:30 - $\begingroup$ Cool. Is there any way to work over Ring of rational numbers QQ? Thanks. $\endgroup$Osiris Xu– Osiris Xu2012-06-20 18:08:13 +00:00Commented Jun 20, 2012 at 18:08
- $\begingroup$ @OsirisXu If I understand what you mean, factorization is by default over
Rationals, see more details mathematica.stackexchange.com/questions/4362/…. You can solve equations overRationals, e.g. trySolve[-(6/7) - 2 x + (3 x^2)/7 + x^3 == 0, x, Rationals]and thenSolve[-(6/7) - 2 x + (3 x^2)/7 + x^3 == 0, x]. $\endgroup$Artes– Artes2012-06-20 19:34:16 +00:00Commented Jun 20, 2012 at 19:34 - $\begingroup$ @OsirisXu I edited the answer to include more details which you'll find interesting. You could edit your question as well to make it more precise since e.g. "Is there any way to work over Ring of rational numbers ?" is slightly too general and there are many aspects which can be still unclear. $\endgroup$Artes– Artes2012-06-21 22:25:21 +00:00Commented Jun 21, 2012 at 22:25