
theorem
  for x,y,z being set holds x in the carrier of BitGFA0Str(x,y,z) & y in
the carrier of BitGFA0Str(x,y,z) & z in the carrier of BitGFA0Str(x,y,z) & [<*x
,y*>,xor2] in the carrier of BitGFA0Str(x,y,z) & [<*[<*x,y*>,xor2],z*>,xor2] in
the carrier of BitGFA0Str(x,y,z) & [<*x,y*>,and2] in the carrier of BitGFA0Str(
x,y,z) & [<*y,z*>,and2] in the carrier of BitGFA0Str(x,y,z) & [<*z,x*>,and2] in
  the carrier of BitGFA0Str(x,y,z) & [<*[<*x,y*>,and2],[<*y,z*>,and2],[<*z,x*>,
  and2]*>,or3] in the carrier of BitGFA0Str(x,y,z)
proof
  let x,y,z be set;
  set f1 = and2, f2 = and2, f3 = and2, f4 = or3;
  set f0 = xor2;
  set xy = [<*x,y*>,f1], yz = [<*y,z*>,f2], zx = [<*z,x*>,f3];
  set xyz = [<*xy, yz, zx*>,f4];
  set S1 = GFA0AdderStr(x,y,z);
  set S2 = GFA0CarryStr(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 Th16;
A4: yz in the carrier of S2 & zx in the carrier of S2 by Th16;
  [<*[<*x,y*>,f0],z*>,f0] in the carrier of S1 & xy in the carrier of S2
  by Th16,FACIRC_1:61;
  hence thesis by A1,A2,A4,A3,FACIRC_1:20;
end;
