
theorem Th3:
  for a,b being FinSequence, c being set st
  c = [<*>, (0-tuples_on BOOLEAN)-->TRUE] holds
  1-BitSubtracterStr(a,b) = 1GateCircStr(<*>, (0-tuples_on BOOLEAN)-->TRUE)+*
  BitSubtracterWithBorrowStr(a.1, b.1, c) &
  1-BitSubtracterCirc(a,b) = 1GateCircuit(<*>, (0-tuples_on BOOLEAN)-->TRUE)+*
  BitSubtracterWithBorrowCirc(a.1, b.1, c) &
  1-BitBorrowOutput(a,b) = BorrowOutput(a.1, b.1, c)
proof
  let a,b being FinSequence, c be set such that
A1: c = [<*>, (0-tuples_on BOOLEAN)-->TRUE];
  consider f,g,h being ManySortedSet of NAT such that
A2: 1-BitSubtracterStr(a,b) = f.1 and
A3: 1-BitSubtracterCirc(a,b) = g.1 and
A4: f.0 = 1GateCircStr(<*>,(0-tuples_on BOOLEAN)-->TRUE) and
A5: g.0 = 1GateCircuit(<*>,(0-tuples_on BOOLEAN)-->TRUE) 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+*BitSubtracterWithBorrowStr(a.(n+1),b.(n+1), z) &
  g.(n+1) = A+*BitSubtracterWithBorrowCirc(a.(n+1),b.(n+1), z) &
  h.(n+1) = BorrowOutput(a.(n+1), b.(n+1), z) by A1,Def2;
  1-BitBorrowOutput(a,b) = h.(0+1) by A1,A4,A5,A6,A7,Th1;
  hence thesis by A2,A3,A4,A5,A6,A7;
end;
