
theorem ThSTC0IS1:
  for x1,x2,x3,x4,x5,x6,x7 being set holds
  InnerVertices STC0IStr(x1,x2,x3,x4,x5,x6,x7) =
    {[<*x1,x2*>,xor2], GFA0AdderOutput(x1,x2,x3)} \/
    {[<*x1,x2*>,and2], [<*x2,x3*>,and2], [<*x3,x1*>,and2],
                       GFA0CarryOutput(x1,x2,x3)} \/
    {[<*x5,x6*>,xor2], GFA0AdderOutput(x5,x6,x7)} \/
    {[<*x5,x6*>,and2], [<*x6,x7*>,and2], [<*x7,x5*>,and2],
                       GFA0CarryOutput(x5,x6,x7)} \/
    {[<*GFA0AdderOutput(x1,x2,x3),GFA0AdderOutput(x5,x6,x7)*>,xor2],
        GFA0AdderOutput(GFA0AdderOutput(x1,x2,x3),
                        GFA0AdderOutput(x5,x6,x7),x4)} \/
    {[<*GFA0AdderOutput(x1,x2,x3),GFA0AdderOutput(x5,x6,x7)*>,and2],
     [<*GFA0AdderOutput(x5,x6,x7),x4*>,and2],
     [<*x4,GFA0AdderOutput(x1,x2,x3)*>,and2],
        GFA0CarryOutput(GFA0AdderOutput(x1,x2,x3),
                        GFA0AdderOutput(x5,x6,x7),x4)}
  proof
    let x1,x2,x3,x4,x5,x6,x7 be set;
    set S = STC0IStr(x1,x2,x3,x4,x5,x6,x7);
    set S1 = STC0IIStr(x1,x2,x3,x5,x6,x7);
    set A1 = GFA0AdderOutput(x1,x2,x3);
    set C1 = GFA0CarryOutput(x1,x2,x3);
    set A2 = GFA0AdderOutput(x5,x6,x7);
    set C2 = GFA0CarryOutput(x5,x6,x7);
    set x1x20 = [<*x1,x2*>, xor2];
    set x1x2 = [<*x1,x2*>, and2];
    set x2x3 = [<*x2,x3*>, and2];
    set x3x1 = [<*x3,x1*>, and2];
    set x5x60 = [<*x5,x6*>, xor2];
    set x5x6 = [<*x5,x6*>, and2];
    set x6x7 = [<*x6,x7*>, and2];
    set x7x5 = [<*x7,x5*>, and2];
    set S2 = BitGFA0Str(A1,A2,x4);
    set A3 = GFA0AdderOutput(A1,A2,x4);
    set C3 = GFA0CarryOutput(A1,A2,x4);
    set A1A20 = [<*A1,A2*>,xor2];
    set A1A2 = [<*A1,A2*>,and2];
    set A2x4 = [<*A2,x4*>,and2];
    set x4A1 = [<*x4,A1*>,and2];

    S1 tolerates S2 by CIRCCOMB:47;
    hence InnerVertices S
      = (InnerVertices S1) \/ (InnerVertices S2) by CIRCCOMB:11
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/ (InnerVertices S2) by ThSTC0IIS1
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/
        ({A1A20} \/ {A3} \/ {A1A2,A2x4,x4A1} \/ {C3}) by GFACIRC1:31
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/
        ({A1A20,A3} \/ {A1A2,A2x4,x4A1} \/ {C3}) by ENUMSET1:1
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/
        ({A1A20,A3} \/ ({A1A2,A2x4,x4A1} \/ {C3})) by XBOOLE_1:4
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/
        ({A1A20,A3} \/ {A1A2,A2x4,x4A1,C3}) by ENUMSET1:6
     .= {x1x20,A1} \/ {x1x2,x2x3,x3x1,C1} \/
        {x5x60,A2} \/ {x5x6,x6x7,x7x5,C2} \/
        {A1A20,A3} \/ {A1A2,A2x4,x4A1,C3} by XBOOLE_1:4;
  end;
