reserve x,y,z,c for object,
  f for Function of 2-tuples_on BOOLEAN, BOOLEAN;
reserve s for State of 2GatesCircuit(x,y,c,f);

theorem
  for x,y,c being non pair object for s being State of
  BitAdderWithOverflowCirc(x,y,c) holds Following(s,2) is stable
proof
  let x,y,c be non pair object;
  set S1 = 2GatesCircStr(x,y,c, 'xor'), S2 = MajorityStr(x,y,c);
  set A = BitAdderWithOverflowCirc(x,y,c);
  set A1 = BitAdderCirc(x,y,c), A2 = MajorityCirc(x,y,c);
  let s be State of A;
  reconsider s2 = s|the carrier of S2 as State of A2 by Th26;
  reconsider t = s as State of A1+*A2;
  reconsider s1 = s|the carrier of S1 as State of A1 by Th26;
  set S = BitAdderWithOverflowStr(x,y,c);
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 Th59;
  then InnerVertices S2 misses InputVertices S1 by Th5,Th67;
  then
A3: Following(s1,2) = Following(t,2)|the carrier of S1 & Following(s1,3) =
  Following(t,3)|the carrier of S1 by Th30;
  Following(s1,2) is stable by Th63;
  then
A4: Following(s1,2) = Following Following(s1,2)
    .= Following(s1,2+1) by Th12;
  InputVertices S2 is without_pairs by Th68;
  then InnerVertices S1 misses InputVertices S2 by Th5,Th58;
  then
A5: Following(s2,2) = Following(t,2)|the carrier of S2 & Following(s2,3) =
  Following(t,3)|the carrier of S2 by Th31;
  Following(s2,2) is stable by Th84;
  then
A6: Following(s2,2) = Following Following(s2,2)
    .= Following(s2,2+1) by Th12;
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,Th12;
  end;
  Following(s,2+1) = Following Following(s,2) & dom Following(s,2) = the
  carrier of S by Th12,CIRCUIT1:3;
  hence Following(s,2) = Following Following(s,2) by A1,A8,FUNCT_1:2;
end;
