
theorem Th17:
  for a,b being FinSequence, c being set
  st c = [<*>, (0-tuples_on BOOLEAN)-->TRUE] holds
  1-BitGFA1Str(a,b) = 1GateCircStr(<*>, (0-tuples_on BOOLEAN)-->TRUE) +*
  BitGFA1Str(a.1, b.1, c) &
  1-BitGFA1Circ(a,b) = 1GateCircuit(<*>, (0-tuples_on BOOLEAN)-->TRUE) +*
  BitGFA1Circ(a.1, b.1, c) &
  1-BitGFA1CarryOutput(a,b) = GFA1CarryOutput(a.1, b.1, c)
proof
  set f0 = 1GateCircStr(<*>,(0-tuples_on BOOLEAN)-->TRUE);
  set g0 = 1GateCircuit(<*>,(0-tuples_on BOOLEAN)-->TRUE);
  set h0 = [<*>, (0-tuples_on BOOLEAN)-->TRUE];
  let a,b being FinSequence, c be set such that
A1: c = h0;
  consider f,g,h being ManySortedSet of NAT such that
A2: 1-BitGFA1Str(a,b) = f.1 and
A3: 1-BitGFA1Circ(a,b) = g.1 and
A4: f.0 = f0 and
A5: g.0 = g0 and
A6: h.0 = c and
A7: for n being Nat, S being non empty ManySortedSign,
  A being non-empty MSAlgebra over S
  for z be set st S = f.n & A = g.n & z = h.n
  holds f.(n+1) = S +* BitGFA1Str(a.(n+1),b.(n+1), z) &
  g.(n+1) = A +* BitGFA1Circ(a.(n+1),b.(n+1), z) &
  h.(n+1) = GFA1CarryOutput(a.(n+1), b.(n+1), z) by A1,Def6;
  1-BitGFA1CarryOutput(a,b) = h.(0+1) by A1,A4,A5,A6,A7,Th15;
  hence thesis by A2,A3,A4,A5,A6,A7;
end;
