Skip to main content.
Why those funny names?
I like funny names, because they are easier to remember and because they are funny. In this case I use what I call xwords: a xword starts with x and obeys two rules: 1) without the x it is a word or acronym related to the project, and 2) with the x it sounds like a totally different thing (the more different the meanings the better). Spanish and English are sometimes mixed in the joke. Pronounciation of a xword is that of its second meaning, but with a clear x. A great example is xAmple. Of course, I search for xwords with the Wolfram Language: xWords.nb. Note that ACT in xAct are the reversed initials of Tensor Computer Algebra. They are actually in the right order in Spanish: Algebra Computacional Tensorial.
Why do you develop xAct?
It was initially a way to learn Wolfram Language while developing some useful tools for my work in GR. Then it became an interesting scientific project on itself, and this is how I see it right now: as a science project. This motivates what I ask from users of xAct: please cite this web page and my papers on xAct.
How do I report a bug?
The best way is through the google xAct group page, so that all users are informed of the problem and can share their experiences. It can also be directly reported to me at
I think MakeRule should be more intelligent and do this...

The general problem of constructing tensor rules can be arbitrarily complicated. I believe the general case can be handled using the full power of Wolfram Language's patterns language and xTensor's functions IndexRule and IndexRuleDelayed. However, the function MakeRule can solve a small class of frequent problems by using the syntax MakeRule[ { LHS, RHS, conditions }, options ]. The main advantage is that the LHS is given without patterns, and MakeRule will add them following the options given. The result is a proper Wolfram Language rule that can be used with Replace or ReplaceAll, as usual.

The main point to stresss is that MakeRule only knows how to work on that class of problems. Different users need different extensions of that class. MakeRule is already a highly complicated function (only second to ToCanonical in complexity), and further extensions would make it slower and more difficult to mantain. Hence MakeRule is unlikely to be extended, unless there is a very good reason to do it.

Note that the Wolfram Language does not have a general function to construct rules: users are expected to construct rules by themselves, using directly the combination of pattern structures most appropriate for their particular problem.