let x, y, c be non pair set ; for s being State of (MajorityCirc x,y,c) holds Following s,2 is stable
set S = MajorityStr x,y,c;
reconsider xx = x, yy = y, cc = c as Vertex of (MajorityStr x,y,c) by Th72;
let s be State of (MajorityCirc x,y,c); Following s,2 is stable
set a1 = s . xx;
set a2 = s . yy;
set a3 = s . cc;
set ffs = Following s,2;
set fffs = Following (Following s,2);
A1:
Following s,2 = Following (Following s)
by Th15;
A2:
y in InputVertices (MajorityStr x,y,c)
by Th74;
then
(Following s) . y = s . yy
by CIRCUIT2:def 5;
then A3:
(Following s,2) . y = s . yy
by A1, A2, CIRCUIT2:def 5;
s . yy = s . y
;
then A4:
(Following s,2) . [<*c,x*>,'&' ] = (s . cc) '&' (s . xx)
by Lm3;
A5:
x in InputVertices (MajorityStr x,y,c)
by Th74;
then
(Following s) . x = s . xx
by CIRCUIT2:def 5;
then A6:
(Following s,2) . x = s . xx
by A1, A5, CIRCUIT2:def 5;
s . xx = s . x
;
then A7:
(Following s,2) . [<*y,c*>,'&' ] = (s . yy) '&' (s . cc)
by Lm3;
A8:
c in InputVertices (MajorityStr x,y,c)
by Th74;
then
(Following s) . c = s . cc
by CIRCUIT2:def 5;
then A9:
(Following s,2) . c = s . cc
by A1, A8, CIRCUIT2:def 5;
s . cc = s . c
;
then A10:
(Following s,2) . [<*x,y*>,'&' ] = (s . xx) '&' (s . yy)
by Lm3;
A11:
(Following s,2) . (MajorityOutput x,y,c) = (((s . xx) '&' (s . yy)) 'or' ((s . yy) '&' (s . cc))) 'or' ((s . cc) '&' (s . xx))
by Lm3;
A12:
now let a be
set ;
( a in the carrier of (MajorityStr x,y,c) implies (Following s,2) . a = (Following (Following s,2)) . a )assume A13:
a in the
carrier of
(MajorityStr x,y,c)
;
(Following s,2) . a = (Following (Following s,2)) . athen reconsider v =
a as
Vertex of
(MajorityStr x,y,c) ;
A14:
v in (InputVertices (MajorityStr x,y,c)) \/ (InnerVertices (MajorityStr x,y,c))
by A13, XBOOLE_1:45;
thus
(Following s,2) . a = (Following (Following s,2)) . a
verumproof
per cases
( v in InputVertices (MajorityStr x,y,c) or v in InnerVertices (MajorityStr x,y,c) )
by A14, XBOOLE_0:def 3;
suppose
v in InnerVertices (MajorityStr x,y,c)
;
(Following s,2) . a = (Following (Following s,2)) . athen
v in {[<*x,y*>,'&' ],[<*y,c*>,'&' ],[<*c,x*>,'&' ]} \/ {(MajorityOutput x,y,c)}
by Th75;
then
(
v in {[<*x,y*>,'&' ],[<*y,c*>,'&' ],[<*c,x*>,'&' ]} or
v in {(MajorityOutput x,y,c)} )
by XBOOLE_0:def 3;
then
(
v = [<*x,y*>,'&' ] or
v = [<*y,c*>,'&' ] or
v = [<*c,x*>,'&' ] or
v = MajorityOutput x,
y,
c )
by ENUMSET1:def 1, TARSKI:def 1;
hence
(Following s,2) . a = (Following (Following s,2)) . a
by A11, A10, A7, A4, A6, A3, A9, Lm2, Th79;
verum end; end;
end; end;
( dom (Following (Following s,2)) = the carrier of (MajorityStr x,y,c) & dom (Following s,2) = the carrier of (MajorityStr x,y,c) )
by CIRCUIT1:4;
hence
Following s,2 = Following (Following s,2)
by A12, FUNCT_1:9; CIRCUIT2:def 6 verum