reserve x for set;
reserve k, l for Nat;
reserve p, q for FinSequence;
reserve R for Relation;
reserve p, q for RedSequence of R;
reserve E for set;
reserve s, t for XFinSequence;
reserve p, q for XFinSequence-yielding FinSequence;
reserve E for set;
reserve S, T, U for semi-Thue-system of E;
reserve s, t, s1, t1, u, v, u1, v1, w for Element of E^omega;
reserve p for FinSequence of E^omega;

theorem Th23:
  p is RedSequence of ==>.-relation(S) implies p +^ u is
  RedSequence of ==>.-relation(S) & u ^+ p is RedSequence of ==>.-relation(S)
proof
  assume
A1: p is RedSequence of ==>.-relation(S);
A2: now
    let i being Nat such that
A3: i in dom (p +^ u) and
A4: (i + 1) in dom (p +^ u);
A5: (i + 1) in dom p by A4,Def3;
    then
A6: (p +^ u).(i + 1) = (p.(i + 1))^u by Def3;
A7: i in dom p by A3,Def3;
    then [p.i, p.(i + 1)] in ==>.-relation(S) by A1,A5,REWRITE1:def 2;
    then p.i ==>. p.(i + 1), S by Def6;
    then
A8: (p.i)^u ==>. (p.(i + 1))^u, S by Th12;
    (p +^ u).i = (p.i)^u by A7,Def3;
    hence [(p +^ u).i, (p +^ u).(i + 1)] in ==>.-relation(S) by A6,A8,Def6;
  end;
A9: now
    let i being Nat such that
A10: i in dom (u ^+ p) and
A11: (i + 1) in dom (u ^+ p);
A12: (i + 1) in dom p by A11,Def2;
    then
A13: (u ^+ p).(i + 1) = u^(p.(i + 1)) by Def2;
A14: i in dom p by A10,Def2;
    then [p.i, p.(i + 1)] in ==>.-relation(S) by A1,A12,REWRITE1:def 2;
    then p.i ==>. p.(i + 1), S by Def6;
    then
A15: u^(p.i) ==>. u^(p.(i + 1)), S by Th12;
    (u ^+ p).i = u^(p.i) by A14,Def2;
    hence [(u ^+ p).i, (u ^+ p).(i + 1)] in ==>.-relation(S) by A13,A15,Def6;
  end;
  len (p +^ u) = len p by Th5;
  hence p +^ u is RedSequence of ==>.-relation(S) by A1,A2,REWRITE1:def 2;
  len (u ^+ p) = len p by Th5;
  hence thesis by A1,A9,REWRITE1:def 2;
end;
