ClearAll@p
SetAttributes[p, {Flat, OneIdentity}]
p[a_] := a
p[a]
a
Bobby
On Wed, 06 Jul 2011 04:39:33 -0500, Casorati <casorati at f-m.fm> wrote:
> I'm trying to define an anti-commutative algebra in Mathematica.
> Here I will show only a minimal example to demonstrate my point.
> The product of two elements a^b should be give by p[a,b] so I
> make p flat:
>
> SetAttributes[p, {Flat}]
>
> But now I want p[a] to reduce to a.
> Such a rule would make other rules much simpler but when I define
>
> p[a_] := a
>
> the expression p[a] causes an infinite recursion. I get the message
>
> $IterationLimit::itlim: Iteration limit of 4096 exceeded.
>
> I have similar problems with p[]:=1 which makes mathematica puts
> ones into the p : p[a]=p[a,a]=p[1,1,...,a] .
>
> How can I solve this problem?
>
>
--
DrMajorBob at yahoo.com