reserve x,y for object,
        D,D1,D2 for non empty set,
        i,j,k,m,n for Nat,
        f,g for FinSequence of D*,
        f1 for FinSequence of D1*,
        f2 for FinSequence of D2*;

theorem Th2:
  for D be set, f,g be FinSequence of D* holds
  Values (f^g) =Values f \/ Values g
proof
  let D be set, f,g be FinSequence of D*;
  set F=f^g;
  A1:Values f c= Values F
  proof
    let a be object;
    assume a in Values f;
    then consider x,y be object such that
    A2:x in dom f & y in dom (f.x) & a = f.x.y by Th1;
    reconsider x as Nat by A2;
    A3:dom f c= dom F by FINSEQ_1:26;
    f.x = F.x by A2,FINSEQ_1:def 7;
    hence thesis by A3,A2,Th1;
  end;
  A4:Values g c= Values F
  proof
    let a be object;
    assume a in Values g;
    then consider x,y be object such that
    A5: x in dom g & y in dom (g.x) & a = g.x.y by Th1;
    reconsider x as Nat by A5;
    len f + x in dom F & F.(len f + x)=g.x
      by A5,FINSEQ_1:28, FINSEQ_1:def 7;
    hence thesis by A5,Th1;
  end;
  Values F c= Values f \/ Values g
  proof
    let a be object;
    assume a in Values F;
    then consider x,y be object such that
    A6: x in dom F & y in dom (F.x) & a = F.x.y by Th1;
    reconsider x as Nat by A6;
    per cases by A6,FINSEQ_1:25;
    suppose A7:x in dom f;
      then f.x =F.x by FINSEQ_1:def 7;
      then a in Values f by Th1,A6,A7;
      hence thesis by XBOOLE_0:def 3;
    end;
    suppose ex k st k in dom g & x=len f+k;
      then consider k such that
      A8: k in dom g & x =len f+k;
      F.x= g.k by A8,FINSEQ_1:def 7;
      then a in Values g by Th1,A6,A8;
      hence thesis by XBOOLE_0:def 3;
    end;
  end;
  hence thesis by A1,A4,XBOOLE_1:8;
end;
