
theorem ThSTC0S1a:
  for x1,x2,x3,x4,x5,x6,x7 being set holds
  InnerVertices STC0Str(x1,x2,x3,x4,x5,x6,x7) =
    InnerVertices STC0IStr(x1,x2,x3,x4,x5,x6,x7) \/
    {[<*STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7),
        STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7)*>,xor2],
      GFA0AdderOutput(STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7),
                      STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7),
                      STC0ICarryOutputC3(x1,x2,x3,x4,x5,x6,x7))} \/
    {[<*STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7),
        STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7)*>,and2],
     [<*STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7),
        STC0ICarryOutputC3(x1,x2,x3,x4,x5,x6,x7)*>,and2],
     [<*STC0ICarryOutputC3(x1,x2,x3,x4,x5,x6,x7),
        STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7)*>,and2],
      GFA0CarryOutput(STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7),
                      STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7),
                      STC0ICarryOutputC3(x1,x2,x3,x4,x5,x6,x7))}
  proof
    let x1,x2,x3,x4,x5,x6,x7 be set;
    set S = STC0Str(x1,x2,x3,x4,x5,x6,x7);
    set S1 = STC0IStr(x1,x2,x3,x4,x5,x6,x7);
    set C1 = STC0ICarryOutputC1(x1,x2,x3,x4,x5,x6,x7);
    set C2 = STC0ICarryOutputC2(x1,x2,x3,x4,x5,x6,x7);
    set C3 = STC0ICarryOutputC3(x1,x2,x3,x4,x5,x6,x7);

    set S2 = BitGFA0Str(C1,C2,C3);
    set C1C2x = [<*C1,C2*>, xor2];
    set C1C2a = [<*C1,C2*>, and2];
    set C2C3a = [<*C2,C3*>, and2];
    set C3C1a = [<*C3,C1*>, and2];
    set Aout = GFA0AdderOutput(C1,C2,C3);
    set Cout = GFA0CarryOutput(C1,C2,C3);

    S1 tolerates S2 by CIRCCOMB:47;
    hence InnerVertices S
      = (InnerVertices S1) \/ (InnerVertices S2) by CIRCCOMB:11
     .= (InnerVertices S1) \/
        ({C1C2x} \/ {Aout} \/ {C1C2a,C2C3a,C3C1a} \/ {Cout}) by GFACIRC1:31
     .= (InnerVertices S1) \/ ({C1C2x,Aout} \/ {C1C2a,C2C3a,C3C1a} \/ {Cout})
        by ENUMSET1:1
     .= (InnerVertices S1) \/ ({C1C2x,Aout} \/ ({C1C2a,C2C3a,C3C1a} \/ {Cout}))
        by XBOOLE_1:4
     .= (InnerVertices S1) \/ ({C1C2x,Aout} \/ {C1C2a,C2C3a,C3C1a,Cout})
        by ENUMSET1:6
     .= (InnerVertices S1) \/ {C1C2x,Aout} \/ {C1C2a,C2C3a,C3C1a,Cout}
        by XBOOLE_1:4;
  end;
