
theorem XDF:
  for f be XFinSequence, g be FinSequence, x be Nat holds
    x in dom (f^g) iff (x in dom f or x + 1 - len f in dom g)
  proof
    let f be XFinSequence, g be FinSequence, x be Nat;
    L1: x in dom (f^g) implies x in dom f or x + 1 - len f in dom g
    proof
      assume x in dom (f^g); then
      A1: x in Segm(len f + len g) by Def1;
      per cases;
      suppose x < len f; then
        x in Segm (len f) by NAT_1:44;
        hence thesis;
      end;
      suppose len f <= x; then
        len f < x + 1 by NAT_1:13; then
        len f + 1 <= x + 1 by NAT_1:13; then
        (len f + 1) - (len f + 1) <= (x + 1) - (len f + 1) by XREAL_1:9; then
        reconsider y = x - len f as Nat by INT_1:3;
        y + len f < len g + len f by A1,NAT_1:44; then
        y < len g by XREAL_1:6; then
        0 + 1 <= y + 1 & y + 1 <= len g by NAT_1:13;
        hence thesis by FINSEQ_3:25;
      end;
    end;
    (x in dom f or x + 1 - len f in dom g) implies x in dom (f^g)
    proof
      assume x in dom f or x + 1 - len f in dom g; then
      per cases;
      suppose
        x in dom f; then
        B1: x in Segm (len f);
        0 + len f <= len f + len g by XREAL_1:6; then
        x < len f + len g by B1,NAT_1:44,XXREAL_0:2; then
        x in Segm(len f + len g) by NAT_1:44;
        hence thesis by Def1;
      end;
      suppose
        x + 1 - len f in dom g; then
        x + 1 - len f <= len g by FINSEQ_3:25; then
        x + 1 - len f + len f <= len g + len f by XREAL_1:6; then
        x < len g + len f by NAT_1:13; then
        x in Segm(len g + len f) by NAT_1:44;
        hence thesis by Def1;
      end;
    end;
    hence thesis by L1;
  end;
