let x, y, c be object ; for f being Function of (2 -tuples_on BOOLEAN),BOOLEAN st c <> [<*x,y*>,f] holds
InputVertices (2GatesCircStr (x,y,c,f)) = {x,y,c}
let f be Function of (2 -tuples_on BOOLEAN),BOOLEAN; ( c <> [<*x,y*>,f] implies InputVertices (2GatesCircStr (x,y,c,f)) = {x,y,c} )
assume A1:
c <> [<*x,y*>,f]
; InputVertices (2GatesCircStr (x,y,c,f)) = {x,y,c}
set S = 2GatesCircStr (x,y,c,f);
set S1 = 1GateCircStr (<*x,y*>,f);
set p = <*[<*x,y*>,f],c*>;
set S2 = 1GateCircStr (<*[<*x,y*>,f],c*>,f);
set R = the ResultSort of (2GatesCircStr (x,y,c,f));
A2:
the carrier of (2GatesCircStr (x,y,c,f)) = the carrier of (1GateCircStr (<*x,y*>,f)) \/ the carrier of (1GateCircStr (<*[<*x,y*>,f],c*>,f))
by CIRCCOMB:def 2;
A3:
rng <*x,y*> = {x,y}
by FINSEQ_2:127;
then A4:
the carrier of (1GateCircStr (<*x,y*>,f)) = {x,y} \/ {[<*x,y*>,f]}
by CIRCCOMB:def 6;
A5: rng the ResultSort of (2GatesCircStr (x,y,c,f)) =
{[<*x,y*>,f],(2GatesCircOutput (x,y,c,f))}
by Th56
.=
{[<*x,y*>,f],[<*[<*x,y*>,f],c*>,f]}
;
A6:
rng <*[<*x,y*>,f],c*> = {[<*x,y*>,f],c}
by FINSEQ_2:127;
then A7:
the carrier of (1GateCircStr (<*[<*x,y*>,f],c*>,f)) = {[<*x,y*>,f],c} \/ {[<*[<*x,y*>,f],c*>,f]}
by CIRCCOMB:def 6;
thus
InputVertices (2GatesCircStr (x,y,c,f)) c= {x,y,c}
XBOOLE_0:def 10 {x,y,c} c= InputVertices (2GatesCircStr (x,y,c,f))proof
let z be
object ;
TARSKI:def 3 ( not z in InputVertices (2GatesCircStr (x,y,c,f)) or z in {x,y,c} )
assume A8:
z in InputVertices (2GatesCircStr (x,y,c,f))
;
z in {x,y,c}
then
(
z in the
carrier of
(1GateCircStr (<*x,y*>,f)) or
z in the
carrier of
(1GateCircStr (<*[<*x,y*>,f],c*>,f)) )
by A2, XBOOLE_0:def 3;
then
(
z in {x,y} or
z in {[<*x,y*>,f]} or
z in {[<*x,y*>,f],c} or
z in {[<*[<*x,y*>,f],c*>,f]} )
by A4, A7, XBOOLE_0:def 3;
then A9:
(
z = x or
z = y or
z = [<*x,y*>,f] or
z = c or
z = [<*[<*x,y*>,f],c*>,f] )
by TARSKI:def 1, TARSKI:def 2;
not
z in rng the
ResultSort of
(2GatesCircStr (x,y,c,f))
by A8, XBOOLE_0:def 5;
hence
z in {x,y,c}
by A5, A9, ENUMSET1:def 1, TARSKI:def 2;
verum
end;
let z be object ; TARSKI:def 3 ( not z in {x,y,c} or z in InputVertices (2GatesCircStr (x,y,c,f)) )
reconsider zz = z as set by TARSKI:1;
assume
z in {x,y,c}
; z in InputVertices (2GatesCircStr (x,y,c,f))
then A10:
( z = x or z = y or z = c )
by ENUMSET1:def 1;
then
( z in {x,y} or z in rng <*[<*x,y*>,f],c*> )
by A6, TARSKI:def 2;
then
( z in InputVertices (1GateCircStr (<*x,y*>,f)) or z in InputVertices (1GateCircStr (<*[<*x,y*>,f],c*>,f)) )
by A3, CIRCCOMB:42;
then A11:
z in the carrier of (2GatesCircStr (x,y,c,f))
by A2, XBOOLE_0:def 3;
( ( z in {x,y} & [<*x,y*>,f] in rng <*[<*x,y*>,f],c*> ) or z in {c} )
by A6, A10, TARSKI:def 1, TARSKI:def 2;
then A12:
( ( the_rank_of zz in the_rank_of [<*x,y*>,f] & the_rank_of [<*x,y*>,f] in the_rank_of [<*[<*x,y*>,f],c*>,f] ) or ( z = c & c in rng <*[<*x,y*>,f],c*> ) )
by A3, A6, CLASSES1:82, TARSKI:def 1, TARSKI:def 2;
then
the_rank_of zz in the_rank_of [<*[<*x,y*>,f],c*>,f]
by CLASSES1:82, ORDINAL1:10;
then A13:
z <> [<*[<*x,y*>,f],c*>,f]
;
z <> [<*x,y*>,f]
by A1, A12;
then
not z in rng the ResultSort of (2GatesCircStr (x,y,c,f))
by A5, A13, TARSKI:def 2;
hence
z in InputVertices (2GatesCircStr (x,y,c,f))
by A11, XBOOLE_0:def 5; verum