let a, b, c be non pair set ; :: thesis: for X, Y, d being set st Y is pair holds
not GFA0AdderOutput (a,b,c) in InnerVertices (BitGFA0Str (X,Y,d))

let X, Y, d be set ; :: thesis: ( Y is pair implies not GFA0AdderOutput (a,b,c) in InnerVertices (BitGFA0Str (X,Y,d)) )
assume A1: Y is pair ; :: thesis: not GFA0AdderOutput (a,b,c) in InnerVertices (BitGFA0Str (X,Y,d))
set w = GFA0AdderOutput (a,b,c);
set bA = GFA0AdderOutput (X,Y,d);
set bC = GFA0CarryOutput (X,Y,d);
assume GFA0AdderOutput (a,b,c) in InnerVertices (BitGFA0Str (X,Y,d)) ; :: thesis: contradiction
then GFA0AdderOutput (a,b,c) in (({[<*X,Y*>,xor2]} \/ {(GFA0AdderOutput (X,Y,d))}) \/ {[<*X,Y*>,and2],[<*Y,d*>,and2],[<*d,X*>,and2]}) \/ {(GFA0CarryOutput (X,Y,d))} by GFACIRC1:31;
then ( GFA0AdderOutput (a,b,c) in ({[<*X,Y*>,xor2]} \/ {(GFA0AdderOutput (X,Y,d))}) \/ {[<*X,Y*>,and2],[<*Y,d*>,and2],[<*d,X*>,and2]} or GFA0AdderOutput (a,b,c) in {(GFA0CarryOutput (X,Y,d))} ) by XBOOLE_0:def 3;
then ( GFA0AdderOutput (a,b,c) in {[<*X,Y*>,xor2]} \/ {(GFA0AdderOutput (X,Y,d))} or GFA0AdderOutput (a,b,c) in {[<*X,Y*>,and2],[<*Y,d*>,and2],[<*d,X*>,and2]} or GFA0AdderOutput (a,b,c) in {(GFA0CarryOutput (X,Y,d))} ) by XBOOLE_0:def 3;
then A2: ( GFA0AdderOutput (a,b,c) in {[<*X,Y*>,xor2]} or GFA0AdderOutput (a,b,c) in {(GFA0AdderOutput (X,Y,d))} or GFA0AdderOutput (a,b,c) in {[<*X,Y*>,and2],[<*Y,d*>,and2],[<*d,X*>,and2]} or GFA0AdderOutput (a,b,c) in {(GFA0CarryOutput (X,Y,d))} ) by XBOOLE_0:def 3;
per cases ( GFA0AdderOutput (a,b,c) = [<*X,Y*>,xor2] or GFA0AdderOutput (a,b,c) = GFA0AdderOutput (X,Y,d) or GFA0AdderOutput (a,b,c) = [<*X,Y*>,and2] or GFA0AdderOutput (a,b,c) = [<*Y,d*>,and2] or GFA0AdderOutput (a,b,c) = [<*d,X*>,and2] or GFA0AdderOutput (a,b,c) = GFA0CarryOutput (X,Y,d) ) by A2, TARSKI:def 1, ENUMSET1:def 1;
end;