
theorem ::VALUED146:
  for f be FinSequence,g be XFinSequence holds
  dom(f \/ (Shift(g,len f + 1))) = Seg (len f + len g)
  proof
    let f be FinSequence, g be XFinSequence;
A0: dom (f \/ (Shift(g,len f + 1))) = dom f \/ dom (Shift (g,len f + 1))
      by XTUPLE_0:23;
    for x be object holds x in dom
      (f \/ (Shift(g,len f + 1))) iff x in Seg (len f + len g)
    proof
      let x be object;
  C1: x in dom (f \/ (Shift(g,len f + 1))) implies x in Seg (len f + len g)
      proof
        assume
        D1: x in dom (f \/ (Shift(g,len f + 1))); then
        reconsider x as Nat;
        per cases by A0,D1,XBOOLE_0:def 3;
        suppose
          x in dom f; then
          1 <= x <= len f & len f + len g >= len f + 0
            by FINSEQ_3:25,XREAL_1:6; then
          1 <= x <= len f + len g by XXREAL_0:2;
          hence thesis;
        end;
        suppose
          x in dom Shift (g,len f + 1); then
          x in {m + (len f + 1) where m is Nat: m in dom g}
            by VALUED_1:def 12; then
          consider m be Nat such that
          E1: x = m + (len f + 1) & m in dom g;
          m in Segm len g by E1; then
          m < len g by NAT_1:44; then
          m + 1 <= len g  by NAT_1:13; then
          0 + 1 <= (len f + m) + 1 & (m + 1) + len f <= len g + len f
            by XREAL_1:6;
          hence thesis by E1;
        end;
      end;
      x in Seg (len f + len g) implies x in dom (f \/ (Shift(g,len f + 1)))
      proof
        assume
        C1: x in Seg (len f + len g); then
        reconsider x as Nat;
        C2: 1 <= x <= len f + len g by C1,FINSEQ_1:1;
        per cases by C1,FINSEQ_1:1;
        suppose 1 <= x <= len f; then
          x in dom f by FINSEQ_3:25;
          hence thesis by A0,XBOOLE_0:def 3;
        end;
        suppose
          x > len f; then
          x >= len f + 1 by NAT_1:13; then
          D1: (len f + len g) - len f >= x - len f >= (len f + 1) - len f
            by C2,XREAL_1:9; then
          reconsider k = x - len f as non zero Nat;
          reconsider l = k - 1 as Nat;
          l+1 in Seg (len g) by D1; then
          l in Segm (len g) by NEWTON02:106; then
          (x - (len f + 1)) + (len f + 1) in dom (Shift (g,len f + 1))
            by VALUED_1:24;
          hence thesis by A0,XBOOLE_0:def 3;
        end;
      end;
      hence thesis by C1;
    end;
    hence thesis by TARSKI:2;
  end;
