let ap, bp, cp, dp be non pair set ; :: thesis: for cin being set st cin <> [<*dp,(GFA0AdderOutput ap,bp,cp)*>,and2 ] & not cin in InnerVertices (BitGFA0Str ap,bp,cp) holds
InputVertices (BitFTA0Str ap,bp,cp,dp,cin) = {ap,bp,cp,dp,cin}
let cin be set ; :: thesis: ( cin <> [<*dp,(GFA0AdderOutput ap,bp,cp)*>,and2 ] & not cin in InnerVertices (BitGFA0Str ap,bp,cp) implies InputVertices (BitFTA0Str ap,bp,cp,dp,cin) = {ap,bp,cp,dp,cin} )
set S = BitFTA0Str ap,bp,cp,dp,cin;
set S1 = BitGFA0Str ap,bp,cp;
set A1 = GFA0AdderOutput ap,bp,cp;
set C1 = GFA0CarryOutput ap,bp,cp;
set S2 = BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp;
set A2 = GFA0AdderOutput (GFA0AdderOutput ap,bp,cp),cin,dp;
set C2 = GFA0CarryOutput (GFA0AdderOutput ap,bp,cp),cin,dp;
set apbp0 = [<*ap,bp*>,xor2 ];
set apbp = [<*ap,bp*>,and2 ];
set bpcp = [<*bp,cp*>,and2 ];
set cpap = [<*cp,ap*>,and2 ];
set A1cin0 = [<*(GFA0AdderOutput ap,bp,cp),cin*>,xor2 ];
set A1cin = [<*(GFA0AdderOutput ap,bp,cp),cin*>,and2 ];
set cindp = [<*cin,dp*>,and2 ];
set dpA1 = [<*dp,(GFA0AdderOutput ap,bp,cp)*>,and2 ];
assume A1:
( cin <> [<*dp,(GFA0AdderOutput ap,bp,cp)*>,and2 ] & not cin in InnerVertices (BitGFA0Str ap,bp,cp) )
; :: thesis: InputVertices (BitFTA0Str ap,bp,cp,dp,cin) = {ap,bp,cp,dp,cin}
then A2:
( dp <> [<*(GFA0AdderOutput ap,bp,cp),cin*>,xor2 ] & GFA0AdderOutput ap,bp,cp <> [<*cin,dp*>,and2 ] & cin <> [<*dp,(GFA0AdderOutput ap,bp,cp)*>,and2 ] & dp <> [<*(GFA0AdderOutput ap,bp,cp),cin*>,and2 ] )
by LemmaX11;
A3:
InnerVertices (BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp) misses InputVertices (BitGFA0Str ap,bp,cp)
by LemmaX12;
A4: InnerVertices (BitGFA0Str ap,bp,cp) =
(({[<*ap,bp*>,xor2 ]} \/ {(GFA0AdderOutput ap,bp,cp)}) \/ {[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ]}) \/ {(GFA0CarryOutput ap,bp,cp)}
by GFACIRC1:39
.=
({[<*ap,bp*>,xor2 ],(GFA0AdderOutput ap,bp,cp)} \/ {[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ]}) \/ {(GFA0CarryOutput ap,bp,cp)}
by ENUMSET1:41
.=
{[<*ap,bp*>,xor2 ],(GFA0AdderOutput ap,bp,cp)} \/ ({[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ]} \/ {(GFA0CarryOutput ap,bp,cp)})
by XBOOLE_1:4
.=
{(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ]} \/ {[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by ENUMSET1:46
.=
{(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by ENUMSET1:52
;
GFA0AdderOutput ap,bp,cp in {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by ENUMSET1:def 4;
then A5:
{(GFA0AdderOutput ap,bp,cp)} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)} = {}
by ZFMISC_1:68;
A6:
not dp in {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by ENUMSET1:def 4;
A7: {(GFA0AdderOutput ap,bp,cp),cin,dp} \ (InnerVertices (BitGFA0Str ap,bp,cp)) =
({(GFA0AdderOutput ap,bp,cp)} \/ {cin,dp}) \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by A4, ENUMSET1:42
.=
({(GFA0AdderOutput ap,bp,cp)} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}) \/ ({cin,dp} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)})
by XBOOLE_1:42
.=
({cin} \/ {dp}) \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}
by A5, ENUMSET1:41
.=
({cin} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)}) \/ ({dp} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)})
by XBOOLE_1:42
.=
{cin} \/ ({dp} \ {(GFA0AdderOutput ap,bp,cp),[<*ap,bp*>,xor2 ],[<*ap,bp*>,and2 ],[<*bp,cp*>,and2 ],[<*cp,ap*>,and2 ],(GFA0CarryOutput ap,bp,cp)})
by A1, A4, ZFMISC_1:67
.=
{cin} \/ {dp}
by A6, ZFMISC_1:67
.=
{cin,dp}
by ENUMSET1:41
;
( BitFTA0Str ap,bp,cp,dp,cin = (BitGFA0Str ap,bp,cp) +* (BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp) & BitGFA0Str ap,bp,cp tolerates BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp )
by CIRCCOMB:55;
hence InputVertices (BitFTA0Str ap,bp,cp,dp,cin) =
(InputVertices (BitGFA0Str ap,bp,cp)) \/ ((InputVertices (BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp)) \ (InnerVertices (BitGFA0Str ap,bp,cp)))
by A3, FACIRC_1:4
.=
{ap,bp,cp} \/ ((InputVertices (BitGFA0Str (GFA0AdderOutput ap,bp,cp),cin,dp)) \ (InnerVertices (BitGFA0Str ap,bp,cp)))
by GFACIRC1:42
.=
{ap,bp,cp} \/ ({(GFA0AdderOutput ap,bp,cp),cin,dp} \ (InnerVertices (BitGFA0Str ap,bp,cp)))
by A2, GFACIRC1:41
.=
{ap,bp,cp,dp,cin}
by A7, ENUMSET1:49
;
:: thesis: verum