<<NCGB.m;
<<ans1.result;

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]]];

SetNonCommutative[f,Tp[f],F,Tp[F]];    (* Set f and F noncommutative *)

SetMonomialOrder[{x,Tp[x],Inv[x],Tp[Inv[x]],
                 y,Tp[y],Inv[y],Tp[Inv[y]]},
                 {f,Tp[f],F,Tp[F]},                (* Put f and F *)
                 {d,Inv[d],Tp[d],Tp[Inv[d]]},      (*  into order *)
                 {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]]}];

(* The following substitutions will be made *)
(*                                          *)
(*      f     =   a   +   b   ** Tp[x]      *)
(*      Tp[f] = Tp[a] +   x   ** Tp[b]      *)
(*      F     = Tp[d] - Tp[b] **   y        *)
(*      Tp[F] =   d   - Tp[y] **   b        *)

NewRelations={Tp[f]-Tp[a]-x**Tp[b],f-a-b**Tp[x],
              Tp[F]-d+Tp[y]**b,F-Tp[d]+Tp[b]**y};

StartingRelations=Union[ans1[[2]],ans1[[3]],NewRelations];

ans2=NCProcess[StartingRelations,2,
                  "ans2",UserSelect->newrels,RR->False,
                  DegreeCap->5,DegreeSumCap->10];
                  (* Degree Caps save time *)

Put[Definition[ans2],"ans2.result"];
(* Save the answer for further runs. *)
