<<NCGB.m;

SetNonCommutative[a,b,c,d,Tp[a], Tp[b],Tp[c],Tp[d],x,y,Tp[x],Tp[y],
                  Inv[x],Inv[y],Tp[Inv[x]],Tp[Inv[y]], Inv[b],Inv[c],
                  Tp[Inv[b]],Tp[Inv[c]],Tp[Inv[d]],Inv[d],Inv[a],
                  Tp[Inv[a]],Inv[c x + d],Tp[Inv[c x + d]]];

SetMonomialOrder[{x,Tp[x],Inv[x],Tp[Inv[x]],
                 y,Tp[y],Inv[y],Tp[Inv[y]]},
                 {d,Inv[d],Tp[d],Tp[Inv[d]]},
                 {b,Tp[b],Tp[Inv[b]],Inv[b]},
                 {a,Tp[a],Inv[a],Tp[Inv[a]]},
                 {c,Tp[c],Tp[Inv[c]],Inv[c]},
                 {Inv[c x + d],Tp[Inv[c x + d]]}];
 
eq3={
(Tp[x]**Tp[c]+Tp[d])**Tp[y]** y**(c**x+d) -(Tp[x]**Tp[a]+Tp[b])** (a**x+b),
y**Tp[y]-(a**x+b)** Inv[c x + d]** Tp[Inv[c x + d]]**(Tp[x]**Tp[a]+Tp[b]),
y**(c**x+d)- (a**x+b),
(Tp[x]**Tp[c]+Tp[d])**Tp[y]- (Tp[x]**Tp[a]+Tp[b]),
1 - a ** Tp[a] + b ** Tp[b],
-a ** Tp[c] + b ** Tp[d],
  -c ** Tp[a] + d ** Tp[b],
-1 - c ** Tp[c] + d ** Tp[d],
1 - Tp[a] ** a + Tp[c] ** c,
-Tp[a] ** b + Tp[c] ** d,
  -Tp[b] ** a + Tp[d] ** c,
-1 - Tp[b] ** b + Tp[d] ** d,
x**Inv[x]-1,
Inv[x]**x-1,
Tp[x]**Tp[Inv[x]]-1,
Tp[Inv[x]]**Tp[x]-1,
y**Inv[y]-1,
Inv[y]**y-1,
Tp[y]**Tp[Inv[y]]-1,
Tp[Inv[y]]**Tp[y]-1,
a**Inv[a]-1,
Inv[a]**a-1,
Tp[a]**Tp[Inv[a]]-1,
Tp[Inv[a]]**Tp[a]-1,
b**Inv[b]-1,
Inv[b]**b-1,
Tp[b]**Tp[Inv[b]]-1,
Tp[Inv[b]]**Tp[b]-1,
c**Inv[c]-1,
Inv[c]**c-1,
Tp[c]**Tp[Inv[c]]-1,
Tp[Inv[c]]**Tp[c]-1,
d**Inv[d]-1,
Inv[d]**d-1,
Tp[d]**Tp[Inv[d]]-1,
Tp[Inv[d]]**Tp[d]-1,
(c**x+d)**Inv[c x + d]-1,
Tp[Inv[c x + d]]**(Tp[x]**Tp[c]+Tp[d])-1,
(Tp[x]**Tp[c]+Tp[d])**Tp[Inv[c x + d]]-1,
Inv[c x + d]**(c**x+d)-1
};

eq3=NCE[eq3];
 
ans1=NCProcess[eq3,2,"ans1",DegreeCap->5,DegreeSumCap->10];
   (* DegreeCaps help save time. *)

Put[Definition[ans1],"ans1.result"];
   (* The Mathematica result is saved for future steps. *)
