
theorem Th13:
  for n,m be Element of NAT st n <= m for x,y being FinSequence holds
  InnerVertices (n-BitAdderStr(x,y)) c= InnerVertices (m-BitAdderStr(x,y))
proof
  let n,m be Element of 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;
A3: m = n+i by A2;
  defpred L[Nat] means InnerVertices (n-BitAdderStr(x,y)) c=
  InnerVertices ((n+$1)-BitAdderStr(x,y));
A4: L[ 0 ];
A5: for j being Nat st L[j] holds L[j+1]
  proof
    let j be Nat;
    assume
A6: InnerVertices (n-BitAdderStr(x,y)) c=
    InnerVertices ((n+j)-BitAdderStr(x,y));
A7: ((n+j)+1)-BitAdderStr(x,y) = (n+j)-BitAdderStr(x,y) +*
    BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y)) by Th12;
A8: InnerVertices (((n+j)-BitAdderStr(x,y) +*
    BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y))))
    = InnerVertices ((n+j)-BitAdderStr(x,y)) \/
    InnerVertices (BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y))) by FACIRC_1:27;
A9: InnerVertices (n-BitAdderStr(x,y)) c= InnerVertices (n-BitAdderStr(x,y)) \/
    InnerVertices (BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y))) by XBOOLE_1:7;
    InnerVertices (n-BitAdderStr(x,y)) \/
    InnerVertices (BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y))) c=
    InnerVertices ((n+j)-BitAdderStr(x,y)) \/
    InnerVertices (BitAdderWithOverflowStr(x .((n+j)+1), y.((n+j)+1),
    (n+j)-BitMajorityOutput(x, y))) by A6,XBOOLE_1:9;
    hence thesis by A7,A8,A9,XBOOLE_1:1;
  end;
  for j being Nat holds L[j] from NAT_1:sch 2(A4,A5);
  hence thesis by A3;
end;
