let S1, S2, S be non empty non void Circuit-like ManySortedSign ; :: thesis: ( InputVertices S1 misses InnerVertices S2 & 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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2 )

assume that

A1: InputVertices S1 misses InnerVertices S2 and

A2: 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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

A3: the carrier of S = the carrier of S1 \/ the carrier of S2 by A2, 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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let A be non-empty Circuit of S; :: thesis: ( A1 tolerates A2 & A = A1 +* A2 implies for s being State of A

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2 )

assume that

A4: A1 tolerates A2 and

A5: A = A1 +* A2 ; :: thesis: for s being State of A

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let s be State of A; :: thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

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

(Following s) | the carrier of S2 = Following s2 )

assume that

A6: s1 = s | the carrier of S1 and

A7: s1 is stable ; :: thesis: for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let s2 be State of A2; :: thesis: ( s2 = s | the carrier of S2 implies (Following s) | the carrier of S2 = Following s2 )

assume A8: s2 = s | the carrier of S2 ; :: thesis: (Following s) | the carrier of S2 = Following s2

then ( dom (Following s2) = the carrier of S2 & dom ((Following s) | the carrier of S2) = the carrier of S2 ) by A3, CIRCUIT1:3, RELAT_1:62, XBOOLE_1:7;

hence (Following s) | the carrier of S2 = Following s2 by A9, FUNCT_1:2; :: thesis: verum

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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2 )

assume that

A1: InputVertices S1 misses InnerVertices S2 and

A2: 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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

A3: the carrier of S = the carrier of S1 \/ the carrier of S2 by A2, 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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

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

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let A be non-empty Circuit of S; :: thesis: ( A1 tolerates A2 & A = A1 +* A2 implies for s being State of A

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2 )

assume that

A4: A1 tolerates A2 and

A5: A = A1 +* A2 ; :: thesis: for s being State of A

for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let s be State of A; :: thesis: for s1 being State of A1 st s1 = s | the carrier of S1 & s1 is stable holds

for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

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

(Following s) | the carrier of S2 = Following s2 )

assume that

A6: s1 = s | the carrier of S1 and

A7: s1 is stable ; :: thesis: for s2 being State of A2 st s2 = s | the carrier of S2 holds

(Following s) | the carrier of S2 = Following s2

let s2 be State of A2; :: thesis: ( s2 = s | the carrier of S2 implies (Following s) | the carrier of S2 = Following s2 )

assume A8: s2 = s | the carrier of S2 ; :: thesis: (Following s) | the carrier of S2 = Following s2

A9: now :: thesis: for a being object st a in the carrier of S2 holds

((Following s) | the carrier of S2) . a = (Following s2) . a

dom (Following s) = the carrier of S
by CIRCUIT1:3;((Following s) | the carrier of S2) . a = (Following s2) . a

let a be object ; :: thesis: ( a in the carrier of S2 implies ((Following s) | the carrier of S2) . a = (Following s2) . a )

assume a in the carrier of S2 ; :: thesis: ((Following s) | the carrier of S2) . a = (Following s2) . a

then reconsider v = a as Vertex of S2 ;

reconsider vv = v as Vertex of S by A3, XBOOLE_0:def 3;

A10: ( v in InputVertices S2 & not v in InnerVertices S1 implies v in (InputVertices S2) \ (InnerVertices S1) ) by XBOOLE_0:def 5;

A11: S1 tolerates S2 by A4, CIRCCOMB:def 3;

then ( v in InnerVertices S2 or ( v in InputVertices S2 & ( v in InnerVertices S1 or not v in InnerVertices S1 ) & InputVertices S = (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1)) ) ) by A2, A11, Th5, XBOOLE_0:def 3;

then A15: ( vv in InnerVertices S2 or v in InputVertices S or ( v in InputVertices S2 & v in InnerVertices S1 ) ) by A10, XBOOLE_0:def 3;

thus ((Following s) | the carrier of S2) . a = (Following s) . v by FUNCT_1:49

.= (Following s2) . a by A2, A4, A5, A8, A12, A15, CIRCCOMB:31 ; :: thesis: verum

end;assume a in the carrier of S2 ; :: thesis: ((Following s) | the carrier of S2) . a = (Following s2) . a

then reconsider v = a as Vertex of S2 ;

reconsider vv = v as Vertex of S by A3, XBOOLE_0:def 3;

A10: ( v in InputVertices S2 & not v in InnerVertices S1 implies v in (InputVertices S2) \ (InnerVertices S1) ) by XBOOLE_0:def 5;

A11: S1 tolerates S2 by A4, CIRCCOMB:def 3;

A12: now :: thesis: ( v in InputVertices S2 & v in InnerVertices S1 implies (Following s) . vv = (Following s2) . vv )

( the carrier of S2 = (InnerVertices S2) \/ (InputVertices S2) & (InputVertices S1) \ (InnerVertices S2) = InputVertices S1 )
by A1, XBOOLE_1:45, XBOOLE_1:83;assume that

A13: v in InputVertices S2 and

A14: v in InnerVertices S1 ; :: thesis: (Following s) . vv = (Following s2) . vv

reconsider v1 = v as Vertex of S1 by A14;

thus (Following s) . vv = (Following s1) . vv by A2, A4, A5, A6, A14, CIRCCOMB:31

.= s1 . v by A7

.= s . v1 by A6, FUNCT_1:49

.= s2 . v by A8, FUNCT_1:49

.= (Following s2) . vv by A13, CIRCUIT2:def 5 ; :: thesis: verum

end;A13: v in InputVertices S2 and

A14: v in InnerVertices S1 ; :: thesis: (Following s) . vv = (Following s2) . vv

reconsider v1 = v as Vertex of S1 by A14;

thus (Following s) . vv = (Following s1) . vv by A2, A4, A5, A6, A14, CIRCCOMB:31

.= s1 . v by A7

.= s . v1 by A6, FUNCT_1:49

.= s2 . v by A8, FUNCT_1:49

.= (Following s2) . vv by A13, CIRCUIT2:def 5 ; :: thesis: verum

then ( v in InnerVertices S2 or ( v in InputVertices S2 & ( v in InnerVertices S1 or not v in InnerVertices S1 ) & InputVertices S = (InputVertices S1) \/ ((InputVertices S2) \ (InnerVertices S1)) ) ) by A2, A11, Th5, XBOOLE_0:def 3;

then A15: ( vv in InnerVertices S2 or v in InputVertices S or ( v in InputVertices S2 & v in InnerVertices S1 ) ) by A10, XBOOLE_0:def 3;

thus ((Following s) | the carrier of S2) . a = (Following s) . v by FUNCT_1:49

.= (Following s2) . a by A2, A4, A5, A8, A12, A15, CIRCCOMB:31 ; :: thesis: verum

then ( dom (Following s2) = the carrier of S2 & dom ((Following s) | the carrier of S2) = the carrier of S2 ) by A3, CIRCUIT1:3, RELAT_1:62, XBOOLE_1:7;

hence (Following s) | the carrier of S2 = Following s2 by A9, FUNCT_1:2; :: thesis: verum