reserve x,y,c for set;

theorem
  for x,y,c being non pair set for s being State of
  BitSubtracterWithBorrowCirc(x,y,c) holds Following(s,2) is stable
proof
  let x,y,c be non pair set;
  set S = BitSubtracterWithBorrowStr(x,y,c);
  set S1 = 2GatesCircStr(x,y,c, 'xor'), S2 = BorrowStr(x,y,c);
  set A = BitSubtracterWithBorrowCirc(x,y,c);
  set A1 = BitSubtracterCirc(x,y,c), A2 = BorrowCirc(x,y,c);
  let s be State of A;
  reconsider s1 = s|the carrier of S1 as State of A1 by FACIRC_1:26;
  reconsider s2 = s|the carrier of S2 as State of A2 by FACIRC_1:26;
  reconsider t = s as State of A1+*A2;
A1: dom Following(s,3) = the carrier of S by CIRCUIT1:3;
A2: the carrier of S = (the carrier of S1) \/ the carrier of S2 by
CIRCCOMB:def 2;
  InputVertices S1 is without_pairs by FACIRC_1:59;
  then InnerVertices S2 misses InputVertices S1 by Th1,FACIRC_1:5;
  then
A3: Following(s1,2) = Following(t,2)|the carrier of S1 & Following(s1,3) =
  Following(t,3)|the carrier of S1 by FACIRC_1:30;
  Following(s1,2) is stable by FACIRC_1:63;
  then
A4: Following(s1,2) = Following Following(s1,2)
    .= Following(s1,2+1) by FACIRC_1:12;
  InputVertices S2 is without_pairs by Th2;
  then InnerVertices S1 misses InputVertices S2 by FACIRC_1:5,58;
  then
A5: Following(s2,2) = Following(t,2)|the carrier of S2 & Following(s2,3) =
  Following(t,3)|the carrier of S2 by FACIRC_1:31;
  Following(s2,2) is stable by Th18;
  then
A6: Following(s2,2) = Following Following(s2,2)
    .= Following(s2,2+1) by FACIRC_1:12;
A7: dom Following(s1,2) = the carrier of S1 & dom Following(s2,2) = the
  carrier of S2 by CIRCUIT1:3;
A8: now
    let a be object;
    assume a in the carrier of S;
    then a in the carrier of S1 or a in the carrier of S2 by A2,XBOOLE_0:def 3;
    then Following(s,2).a = Following(s1,2).a & Following(s,3).a = Following(
s1,3).a or Following(s,2).a = Following(s2,2).a & Following(s,3).a = Following(
    s2,3).a by A3,A5,A4,A6,A7,FUNCT_1:47;
    hence Following(s,2).a = (Following Following(s,2)).a by A4,A6,FACIRC_1:12;
  end;
  Following(s,2+1) = Following Following(s,2) & dom Following(s,2) = the
  carrier of S by CIRCUIT1:3,FACIRC_1:12;
  hence Following(s,2) = Following Following(s,2) by A1,A8,FUNCT_1:2;
end;
