set f1 = and2c ;
set f2 = and2a ;
set f3 = and2 ;
let x, y, z be set ; :: thesis: ( x <> [<*y,z*>,and2a ] & y <> [<*z,x*>,and2 ] & z <> [<*x,y*>,and2c ] implies for s being State of (GFA1CarryCirc x,y,z) holds Following s,2 is stable )
assume A1:
( x <> [<*y,z*>,and2a ] & y <> [<*z,x*>,and2 ] & z <> [<*x,y*>,and2c ] )
; :: thesis: for s being State of (GFA1CarryCirc x,y,z) holds Following s,2 is stable
set xy = [<*x,y*>,and2c ];
set yz = [<*y,z*>,and2a ];
set zx = [<*z,x*>,and2 ];
let s be State of (GFA1CarryCirc x,y,z); :: thesis: Following s,2 is stable
set S = GFA1CarryStr x,y,z;
A2:
( dom (Following (Following s,2)) = the carrier of (GFA1CarryStr x,y,z) & dom (Following s,2) = the carrier of (GFA1CarryStr x,y,z) )
by CIRCUIT1:4;
reconsider xx = x, yy = y, zz = z as Vertex of (GFA1CarryStr x,y,z) by Th55;
set a1 = s . xx;
set a2 = s . yy;
set a3 = s . zz;
set ffs = Following s,2;
set fffs = Following (Following s,2);
( s . xx = s . x & s . yy = s . y & s . zz = s . z )
;
then A3:
( (Following s,2) . (GFA1CarryOutput x,y,z) = (((s . xx) '&' ('not' (s . yy))) 'or' (('not' (s . yy)) '&' (s . zz))) 'or' ((s . zz) '&' (s . xx)) & (Following s,2) . [<*x,y*>,and2c ] = (s . xx) '&' ('not' (s . yy)) & (Following s,2) . [<*y,z*>,and2a ] = ('not' (s . yy)) '&' (s . zz) & (Following s,2) . [<*z,x*>,and2 ] = (s . xx) '&' (s . zz) )
by A1, Th61;
A4:
Following s,2 = Following (Following s)
by FACIRC_1:15;
A5:
( x in InputVertices (GFA1CarryStr x,y,z) & y in InputVertices (GFA1CarryStr x,y,z) & z in InputVertices (GFA1CarryStr x,y,z) )
by A1, Th57;
then
( (Following s) . x = s . xx & (Following s) . y = s . yy & (Following s) . z = s . zz )
by CIRCUIT2:def 5;
then A6:
( (Following s,2) . x = s . xx & (Following s,2) . y = s . yy & (Following s,2) . z = s . zz )
by A4, A5, CIRCUIT2:def 5;
now let a be
set ;
:: thesis: ( a in the carrier of (GFA1CarryStr x,y,z) implies (Following s,2) . a = (Following (Following s,2)) . a )assume A7:
a in the
carrier of
(GFA1CarryStr x,y,z)
;
:: thesis: (Following s,2) . a = (Following (Following s,2)) . athen reconsider v =
a as
Vertex of
(GFA1CarryStr x,y,z) ;
A8:
v in (InputVertices (GFA1CarryStr x,y,z)) \/ (InnerVertices (GFA1CarryStr x,y,z))
by A7, XBOOLE_1:45;
thus
(Following s,2) . a = (Following (Following s,2)) . a
:: thesis: verumproof
per cases
( v in InputVertices (GFA1CarryStr x,y,z) or v in InnerVertices (GFA1CarryStr x,y,z) )
by A8, XBOOLE_0:def 3;
suppose
v in InnerVertices (GFA1CarryStr x,y,z)
;
:: thesis: (Following s,2) . a = (Following (Following s,2)) . athen
v in {[<*x,y*>,and2c ],[<*y,z*>,and2a ],[<*z,x*>,and2 ]} \/ {(GFA1CarryOutput x,y,z)}
by Th50;
then
(
v in {[<*x,y*>,and2c ],[<*y,z*>,and2a ],[<*z,x*>,and2 ]} or
v in {(GFA1CarryOutput x,y,z)} )
by XBOOLE_0:def 3;
then
(
v = [<*x,y*>,and2c ] or
v = [<*y,z*>,and2a ] or
v = [<*z,x*>,and2 ] or
v = GFA1CarryOutput x,
y,
z )
by ENUMSET1:def 1, TARSKI:def 1;
hence
(Following s,2) . a = (Following (Following s,2)) . a
by A3, A6, Th59, Th60;
:: thesis: verum end; end;
end; end;
hence
Following s,2 = Following (Following s,2)
by A2, FUNCT_1:9; :: according to CIRCUIT2:def 6 :: thesis: verum