Mathematica : Noncommutative Multiply and Replacement Rules

  • Context: Mathematica 
  • Thread starter Thread starter Hepth
  • Start date Start date
  • Tags Tags
    Mathematica Rules
Hepth
Science Advisor
Gold Member
Messages
458
Reaction score
40
Code:
Val[a_] := ToCharacterCode[ToString[a]][[1]];
GH[a].GH[b].GH[c].GH[d].GH[b] //. {GH[a_].GH[b_] :> If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]]}

I have the noncommutative multiply of GH[a].GH.GH[c].GH[d].GH

My goal is to order these in increasing charcter value. (Val is the function to convert to basically ascii code).

Shouldn't this work? And give GH[a].GH.GH.GH[c].GH[d] at the end?


Notice also that
Code:
GH[a].GH[b].GH[c].GH[d].GH[b]

GH[a].GH[b].GH[c].GH[d].GH[b] //. {
(A_).GH[a_].GH[b_].(B_) :> 
   A.If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]].B,
  (A_).GH[a_].GH[b_] :> 
   A.If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]],
  GH[a_].GH[b_].(B_) :> 
   If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]].B,
  GH[a_].GH[b_] :> If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]]}


GH[a].GH[b].GH[c].GH[d].GH[b] //. {
  (A_).GH[a_].GH[b_] :> A.If[Val[a] > Val[b], GH[b].GH[a], GH[a].GH[b]]
  }

Even though the rule in the 2nd one exists in the replacements of the first, it doesn't apply. I think the problem comes in the fact that its applying a rule to the position right before the last two, and once that is evaluated, does not re-evaluate it, even though no real action was taken. Though I guess if you consider it replacing itself an action, then that's what it did.

Any ideas? Even if its a different method. This is something that I'm trying to write in a much more complicated way, and I need to figure out how these work.

Thanks!
 
on Phys.org
Code:
In[1]:= Val[a_] := ToCharacterCode[ToString[a]][[1]]; 
GH[a].GH[b].GH[c].GH[d].GH[b] //. Dot[h___, GH[a_], GH[b_], t___] /;
   Val[a]>Val[b]:>Dot[h,GH[b],GH[a],t]

Out[1]= GH[a].GH[b].GH[b].GH[c].GH[d]

Or

Code:
In[2]:= Sort[GH[a].GH[b].GH[c].GH[d].GH[b]]

Out[2]= GH[a].GH[b].GH[b].GH[c].GH[d]
 
Last edited:

Similar threads

  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 15 ·
Replies
15
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 20 ·
Replies
20
Views
5K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 52 ·
2
Replies
52
Views
13K
  • · Replies 1 ·
Replies
1
Views
6K