let x, y, c be object ; for f being Function of (2 -tuples_on BOOLEAN),BOOLEAN
for s being State of (2GatesCircuit (x,y,c,f)) st c <> [<*x,y*>,f] holds
Following (s,2) is stable
let f be Function of (2 -tuples_on BOOLEAN),BOOLEAN; for s being State of (2GatesCircuit (x,y,c,f)) st c <> [<*x,y*>,f] holds
Following (s,2) is stable
let s be State of (2GatesCircuit (x,y,c,f)); ( c <> [<*x,y*>,f] implies Following (s,2) is stable )
set S = 2GatesCircStr (x,y,c,f);
assume A1:
c <> [<*x,y*>,f]
; Following (s,2) is stable
now ( dom (Following (Following (s,2))) = the carrier of (2GatesCircStr (x,y,c,f)) & dom (Following (s,2)) = the carrier of (2GatesCircStr (x,y,c,f)) & ( for a being object st a in the carrier of (2GatesCircStr (x,y,c,f)) holds
(Following (Following (s,2))) . a = (Following (s,2)) . a ) )thus
(
dom (Following (Following (s,2))) = the
carrier of
(2GatesCircStr (x,y,c,f)) &
dom (Following (s,2)) = the
carrier of
(2GatesCircStr (x,y,c,f)) )
by CIRCUIT1:3;
for a being object st a in the carrier of (2GatesCircStr (x,y,c,f)) holds
(Following (Following (s,2))) . b2 = (Following (s,2)) . b2let a be
object ;
( a in the carrier of (2GatesCircStr (x,y,c,f)) implies (Following (Following (s,2))) . b1 = (Following (s,2)) . b1 )A2:
(InputVertices (2GatesCircStr (x,y,c,f))) \/ (InnerVertices (2GatesCircStr (x,y,c,f))) = the
carrier of
(2GatesCircStr (x,y,c,f))
by XBOOLE_1:45;
assume
a in the
carrier of
(2GatesCircStr (x,y,c,f))
;
(Following (Following (s,2))) . b1 = (Following (s,2)) . b1then reconsider v =
a as
Vertex of
(2GatesCircStr (x,y,c,f)) ;
A3:
InnerVertices (2GatesCircStr (x,y,c,f)) = {[<*x,y*>,f],(2GatesCircOutput (x,y,c,f))}
by Th56;
A4:
(Following (s,2)) . c = s . c
by A1, Th62;
A5:
(
(Following (s,2)) . x = s . x &
(Following (s,2)) . y = s . y )
by A1, Th62;
A6:
(
(Following (s,2)) . [<*x,y*>,f] = f . <*(s . x),(s . y)*> &
(Following (s,2)) . (2GatesCircOutput (x,y,c,f)) = f . <*(f . <*(s . x),(s . y)*>),(s . c)*> )
by A1, Th62;
A7:
InputVertices (2GatesCircStr (x,y,c,f)) = {x,y,c}
by A1, Th57;
per cases
( v in InputVertices (2GatesCircStr (x,y,c,f)) or v in InnerVertices (2GatesCircStr (x,y,c,f)) )
by A2, XBOOLE_0:def 3;
suppose
v in InnerVertices (2GatesCircStr (x,y,c,f))
;
(Following (Following (s,2))) . b1 = (Following (s,2)) . b1then
(
v = [<*x,y*>,f] or
v = 2GatesCircOutput (
x,
y,
c,
f) )
by A3, TARSKI:def 2;
hence
(Following (Following (s,2))) . a = (Following (s,2)) . a
by A1, A6, A5, A4, Lm1;
verum end; end; end;
hence
Following (s,2) = Following (Following (s,2))
by FUNCT_1:2; CIRCUIT2:def 6 verum