let S1, S2, S be non empty non void Circuit-like ManySortedSign ; :: thesis: ( S = S1 +* S2 implies for A1 being non-empty Circuit of S1
for A2 being non-empty Circuit of S2
for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds
for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) ) )

assume A1: S = S1 +* S2 ; :: thesis: for A1 being non-empty Circuit of S1
for A2 being non-empty Circuit of S2
for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds
for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) )

A2: the carrier of S = the carrier of S1 \/ the carrier of S2 by A1, CIRCCOMB:def 2;
let A1 be non-empty Circuit of S1; :: thesis: for A2 being non-empty Circuit of S2
for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds
for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) )

let A2 be non-empty Circuit of S2; :: thesis: for A being non-empty Circuit of S st A1 tolerates A2 & A = A1 +* A2 holds
for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) )

let A be non-empty Circuit of S; :: thesis: ( A1 tolerates A2 & A = A1 +* A2 implies for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) ) )

assume A3: ( A1 tolerates A2 & A = A1 +* A2 ) ; :: thesis: for s being State of A st s is stable holds
( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) )

let s be State of A; :: thesis: ( s is stable implies ( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) ) )

assume A4: s = Following s ; :: according to CIRCUIT2:def 6 :: thesis: ( ( for s1 being State of A1 st s1 = s | the carrier of S1 holds
s1 is stable ) & ( for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable ) )

hereby :: thesis: for s2 being State of A2 st s2 = s | the carrier of S2 holds
s2 is stable
let s1 be State of A1; :: thesis: ( s1 = s | the carrier of S1 implies s1 is stable )
assume A5: s1 = s | the carrier of S1 ; :: thesis: s1 is stable
A6: now :: thesis: for x being object st x in the carrier of S1 holds
s1 . x = (Following s1) . x
let x be object ; :: thesis: ( x in the carrier of S1 implies s1 . x = (Following s1) . x )
assume x in the carrier of S1 ; :: thesis: s1 . x = (Following s1) . x
then reconsider v = x as Vertex of S1 ;
reconsider v9 = v as Vertex of S by A2, XBOOLE_0:def 3;
the carrier of S1 = (InputVertices S1) \/ (InnerVertices S1) by XBOOLE_1:45;
then ( v in InputVertices S1 or v9 in InnerVertices S1 ) by XBOOLE_0:def 3;
then ( s1 . v = (Following s1) . v or s . v9 = (Following s1) . v ) by A1, A3, A4, A5, CIRCCOMB:31, CIRCUIT2:def 5;
hence s1 . x = (Following s1) . x by A5, FUNCT_1:49; :: thesis: verum
end;
( dom s1 = the carrier of S1 & dom (Following s1) = the carrier of S1 ) by CIRCUIT1:3;
then s1 = Following s1 by A6, FUNCT_1:2;
hence s1 is stable ; :: thesis: verum
end;
let s2 be State of A2; :: thesis: ( s2 = s | the carrier of S2 implies s2 is stable )
assume A7: s2 = s | the carrier of S2 ; :: thesis: s2 is stable
A8: now :: thesis: for x being object st x in the carrier of S2 holds
s2 . x = (Following s2) . x
let x be object ; :: thesis: ( x in the carrier of S2 implies s2 . x = (Following s2) . x )
assume x in the carrier of S2 ; :: thesis: s2 . x = (Following s2) . x
then reconsider v = x as Vertex of S2 ;
reconsider v9 = v as Vertex of S by A2, XBOOLE_0:def 3;
the carrier of S2 = (InputVertices S2) \/ (InnerVertices S2) by XBOOLE_1:45;
then ( v in InputVertices S2 or v9 in InnerVertices S2 ) by XBOOLE_0:def 3;
then ( s2 . v = (Following s2) . v or s . v9 = (Following s2) . v ) by A1, A3, A4, A7, CIRCCOMB:31, CIRCUIT2:def 5;
hence s2 . x = (Following s2) . x by A7, FUNCT_1:49; :: thesis: verum
end;
( dom s2 = the carrier of S2 & dom (Following s2) = the carrier of S2 ) by CIRCUIT1:3;
hence s2 = Following s2 by A8, FUNCT_1:2; :: according to CIRCUIT2:def 6 :: thesis: verum