
theorem Th21:
  for x,y,z being set for s being State of GFA0CarryCirc(x,y,z)
for a1,a2,a3 being Element of BOOLEAN st a1 = s.[<*x,y*>,and2] & a2 = s.[<*y,z
  *>,and2] & a3 = s.[<*z,x*>,and2] holds (Following s).GFA0CarryOutput(x,y,z) =
  a1 'or' a2 'or' a3
proof
  let x,y,z be set;
  set f1 = and2, f2 = and2, f3 = and2, f4 = or3;
  let s be State of GFA0CarryCirc(x,y,z);
  set xy =[<*x,y*>,f1], yz = [<*y,z*>,f2], zx = [<*z,x*>,f3];
  let a1,a2,a3 be Element of BOOLEAN such that
A1: a1 = s.xy & a2 = s.yz & a3 = s.zx;
  set S = GFA0CarryStr(x,y,z);
  reconsider xy, yz, zx as Element of InnerVertices S by Th17;
A2: dom s = the carrier of S by CIRCUIT1:3;
  InnerVertices S = the carrier' of S by FACIRC_1:37;
  hence (Following s).GFA0CarryOutput(x,y,z) = f4.(s*<*xy, yz, zx*>) by
FACIRC_1:35
    .= f4.<*a1,a2,a3*> by A1,A2,FINSEQ_2:126
    .= a1 'or' a2 'or' a3 by TWOSCOMP:14;
end;
