
theorem
  for x,y,z being set holds x in the carrier of BitGFA2Str(x,y,z) & y in
the carrier of BitGFA2Str(x,y,z) & z in the carrier of BitGFA2Str(x,y,z) & [<*x
,y*>,xor2c] in the carrier of BitGFA2Str(x,y,z) & [<*[<*x,y*>,xor2c],z*>,xor2c]
  in the carrier of BitGFA2Str(x,y,z) & [<*x,y*>,and2a] in the carrier of
BitGFA2Str(x,y,z) & [<*y,z*>,and2c] in the carrier of BitGFA2Str(x,y,z) & [<*z,
  x*>,nor2] in the carrier of BitGFA2Str(x,y,z) & [<*[<*x,y*>,and2a],[<*y,z*>,
  and2c],[<*z,x*>,nor2]*>,nor3] in the carrier of BitGFA2Str(x,y,z)
proof
  let x,y,z be set;
  set f1 = and2a, f2 = and2c, f3 = nor2, f4 = nor3;
  set f0 = xor2c;
  set xy = [<*x,y*>,f1], yz = [<*y,z*>,f2], zx = [<*z,x*>,f3];
  set xyz = [<*xy, yz, zx*>,f4];
  set S1 = GFA2AdderStr(x,y,z);
  set S2 = GFA2CarryStr(x,y,z);
A1: x in the carrier of S1 & y in the carrier of S1 by FACIRC_1:60;
A2: z in the carrier of S1 & [<*x,y*>,f0] in the carrier of S1 by FACIRC_1:60
,61;
A3: xyz in the carrier of S2 by Th79;
A4: yz in the carrier of S2 & zx in the carrier of S2 by Th79;
  [<*[<*x,y*>,f0],z*>,f0] in the carrier of S1 & xy in the carrier of S2
  by Th79,FACIRC_1:61;
  hence thesis by A1,A2,A4,A3,FACIRC_1:20;
end;
