
theorem Th8:
  for n,m be Nat st n <= m for x,y being FinSequence holds
  InnerVertices (n-BitSubtracterStr(x,y)) c=
  InnerVertices (m-BitSubtracterStr(x,y))
proof
  let n,m be Nat such that
A1: n <= m;
  let x,y be FinSequence;
  consider i being Nat such that
A2: m = n+i by A1,NAT_1:10;
  reconsider i as Element of NAT by ORDINAL1:def 12;
  defpred L[Nat] means InnerVertices (n-BitSubtracterStr(x,y)) c=
  InnerVertices ((n+$1)-BitSubtracterStr(x,y));
A3: L[ 0 ];
A4: for j being Nat st L[j] holds L[j+1]
  proof
    let j be Nat;
    assume
A5: InnerVertices (n-BitSubtracterStr(x,y)) c=
    InnerVertices ((n+j)-BitSubtracterStr(x,y));
A6: InnerVertices (n-BitSubtracterStr(x,y)) c=
    InnerVertices (n-BitSubtracterStr(x,y)) \/
    InnerVertices (BitSubtracterWithBorrowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitBorrowOutput(x, y))) by XBOOLE_1:7;
    InnerVertices (n-BitSubtracterStr(x,y)) \/
    InnerVertices (BitSubtracterWithBorrowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitBorrowOutput(x, y))) c=
    InnerVertices ((n+j)-BitSubtracterStr(x,y)) \/
    InnerVertices (BitSubtracterWithBorrowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitBorrowOutput(x, y))) by A5,XBOOLE_1:9;
    then InnerVertices (n-BitSubtracterStr(x,y)) c=
    InnerVertices ((n+j)-BitSubtracterStr(x,y)) \/
    InnerVertices (BitSubtracterWithBorrowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitBorrowOutput(x, y))) by A6;
    then InnerVertices (n-BitSubtracterStr(x,y)) c=
    InnerVertices (((n+j)-BitSubtracterStr(x,y) +*
    BitSubtracterWithBorrowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitBorrowOutput(x, y)))) by FACIRC_1:27;
    hence thesis by Th7;
  end;
A7: for j being Nat holds L[j] from NAT_1:sch 2(A3,A4);
  m = n+i by A2;
  hence thesis by A7;
end;
