
theorem Th31:
  for x,y,z being set holds InnerVertices BitGFA0Str(x,y,z) = {[<*
x,y*>,xor2]} \/ {GFA0AdderOutput(x,y,z)} \/ {[<*x,y*>,and2], [<*y,z*>,and2], [
  <*z,x*>,and2]} \/ {GFA0CarryOutput(x,y,z)}
proof
  let x,y,z be set;
  set f1 = and2, f2 = and2, f3 = and2;
  set f0 = xor2;
  set xyf0 = [<*x,y*>,f0];
  set xyf1 = [<*x,y*>,f1], yzf2 = [<*y,z*>,f2], zxf3 = [<*z,x*>,f3];
  set S = BitGFA0Str(x,y,z);
  set S1 = GFA0AdderStr(x,y,z);
  set S2 = GFA0CarryStr(x,y,z);
  set A1 = GFA0AdderOutput(x,y,z);
  set A2 = GFA0CarryOutput(x,y,z);
  thus InnerVertices S = (InnerVertices S1) \/ InnerVertices S2 by FACIRC_1:27
    .= {xyf0} \/ {A1} \/ InnerVertices S2 by Th24
    .= {xyf0} \/ {A1} \/ ({xyf1, yzf2, zxf3} \/ {A2}) by Th11
    .= {xyf0} \/ {A1} \/ {xyf1, yzf2, zxf3} \/ {A2} by XBOOLE_1:4;
end;
