
theorem
  for n being Nat for x,y being nonpair-yielding FinSeqLen of n holds
  InputVertices (n-BitGFA0Str(x,y)) = rng x \/ rng y
proof
  set f1 = and2, f0 = xor2;
  defpred P[Nat] means
  for x,y being nonpair-yielding FinSeqLen of $1 holds
  InputVertices ($1-BitGFA0Str(x,y)) = rng x \/ rng y;
A1: P[ 0 ]
  proof
    let x,y be nonpair-yielding FinSeqLen of 0;
    set f = (0-tuples_on BOOLEAN)-->FALSE;
    0-BitGFA0Str(x,y) = 1GateCircStr(<*>, f) by Th2;
    hence InputVertices (0-BitGFA0Str(x,y)) = rng <*> by CIRCCOMB:42
      .= rng x \/ rng y;
  end;
A2: for i being Nat st P[i] holds P[i+1]
  proof
    let i be Nat such that
A3: P[i];
    let x,y be nonpair-yielding FinSeqLen of i+1;
    consider x9 being nonpair-yielding FinSeqLen of i,
    z1 being non pair set such that
A4: x = x9^<*z1*> by FACIRC_2:34;
    consider y9 being nonpair-yielding FinSeqLen of i,
    z2 being non pair set such that
A5: y = y9^<*z2*> by FACIRC_2:34;
A6: 1 in Seg 1 by FINSEQ_1:1;
    then
A7: 1 in dom <*z1*> by FINSEQ_1:def 8;
    len x9 = i by CARD_1:def 7;
    then
A8: x .(i+1) = <*z1*>.1 by A4,A7,FINSEQ_1:def 7
      .= z1;
A9: 1 in dom <*z2*> by A6,FINSEQ_1:def 8;
    len y9 = i by CARD_1:def 7;
    then
A10: y .(i+1) = <*z2*>.1 by A5,A9,FINSEQ_1:def 7
      .= z2;
    deffunc F(Nat) = $1-BitGFA0CarryOutput(x,y);
A11: {z1,z2,F(i)} = {F(i),z1,z2} by ENUMSET1:59;
A12: rng x = rng x9 \/ rng <*z1*> by A4,FINSEQ_1:31
      .= rng x9 \/ {z1} by FINSEQ_1:38;
A13: rng y = rng y9 \/ rng <*z2*> by A5,FINSEQ_1:31
      .= rng y9 \/ {z2} by FINSEQ_1:38;
A14: F(i) <> [<*z1,z2*>, f1] by Lm2;
A15: F(i) <> [<*z1,z2*>, f0] by Lm2;
A16: x9 = x9^{} by FINSEQ_1:34;
    y9 = y9^{} by FINSEQ_1:34;
    then i-BitGFA0Str(x,y) = i-BitGFA0Str(x9,y9) by A4,A5,A16,Th5;
    hence InputVertices ((i+1)-BitGFA0Str(x, y))
    = (InputVertices (i-BitGFA0Str(x9,y9))) \/
    ((InputVertices BitGFA0Str(z1,z2,F(i))) \ {F(i)}) by A8,A10,Th12
      .= (rng x9 \/ rng y9) \/
    ((InputVertices BitGFA0Str(z1,z2,F(i))) \ {F(i)}) by A3
      .= (rng x9 \/ rng y9) \/ ({z1,z2,F(i)} \ {F(i)}) by A14,A15,GFACIRC1:33
      .= (rng x9 \/ rng y9) \/ {z1,z2} by A11,ENUMSET1:86
      .= rng x9 \/ rng y9 \/ ({z1} \/ {z2}) by ENUMSET1:1
      .= rng x9 \/ rng y9 \/ {z1} \/ {z2} by XBOOLE_1:4
      .= rng x9 \/ {z1} \/ rng y9 \/ {z2} by XBOOLE_1:4
      .= rng x \/ rng y by A12,A13,XBOOLE_1:4;
  end;
  thus for i being Nat holds P[i] from NAT_1:sch 2(A1,A2);
end;
