for p being autonomic FinPartState of SCM+FSA st DataPart p <> {} holds
IC in dom p
proof
let p be autonomic FinPartState of SCM+FSA; :: thesis: ( DataPart p <> {} implies IC in dom p )
assume DataPart p <> {} ; :: thesis: IC in dom p
then A1: dom (DataPart p) <> {} ;
assume not IC in dom p ; :: thesis: contradiction
then A2: dom p misses {(IC )} by ZFMISC_1:56;
not p is autonomic
proof
set il = the Element of NAT \ (dom p);
set d2 = the Element of Int-Locations \ (dom p);
set d1 = the Element of dom (DataPart p);
A3: dom (DataPart p) c= Data-Locations SCM+FSA by RELAT_1:87;
not NAT c= dom p ;
then A4: NAT \ (dom p) <> {} by XBOOLE_1:37;
then the Element of NAT \ (dom p) in NAT by XBOOLE_0:def 5;
then reconsider il = the Element of NAT \ (dom p) as Element of NAT ;
not Int-Locations c= dom p ;
then A5: Int-Locations \ (dom p) <> {} by XBOOLE_1:37;
then the Element of Int-Locations \ (dom p) in Int-Locations by XBOOLE_0:def 5;
then reconsider d2 = the Element of Int-Locations \ (dom p) as Int-Location by SCMFSA_2:11;
A6: the Element of dom (DataPart p) in dom (DataPart p) by A1;
DataPart p c= NPP p by COMPOS_1:169;
then dom (DataPart p) c= dom (NPP p) by RELAT_1:25;
then A7: the Element of dom (DataPart p) in dom (NPP p) by A6;
dom (DataPart p) c= the carrier of SCM+FSA by RELAT_1:def 18;
then reconsider d1 = the Element of dom (DataPart p) as Element of SCM+FSA by A6;
per cases ( d1 in Int-Locations or d1 in FinSeq-Locations ) by A6, A3, XBOOLE_0:def 3, SCMFSA_2:127;
suppose d1 in Int-Locations ; :: thesis: not p is autonomic
then reconsider d1 = d1 as Int-Location by SCMFSA_2:11;
set p1 = p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)));
set p2 = p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)));
consider s1 being State of SCM+FSA such that
A8: p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) c= s1 by PBOOLE:156;
not il in dom p by A4, XBOOLE_0:def 5;
then A9: dom p misses {il} by ZFMISC_1:56;
not d2 in dom p by A5, XBOOLE_0:def 5;
then A10: dom p misses {d2} by ZFMISC_1:56;
consider s2 being State of SCM+FSA such that
A11: p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) c= s2 by PBOOLE:156;
take P = ProgramPart s1; :: according to EXTPRO_1:def 9 :: thesis: ex b1 being set st
( ProgramPart p c= P & ProgramPart p c= b1 & ex b2, b3 being set st
( NPP p c= b2 & NPP p c= b3 & not for b4 being Element of NAT holds (Comput (P,b2,b4)) | (proj1 (NPP p)) = (Comput (b1,b3,b4)) | (proj1 (NPP p)) ) )

take Q = ProgramPart s2; :: thesis: ( ProgramPart p c= P & ProgramPart p c= Q & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) ) )

dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> 0))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 := d2)) +* (d2 .--> 0))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 := d2))) \/ (dom (d2 .--> 0))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> 0))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, XBOOLE_0:def 7
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A10, XBOOLE_0:def 7
.= {} by A9, XBOOLE_0:def 7 ;
then dom p misses dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by FUNCT_4:33;
then A12: p c= s1 by A8, XBOOLE_1:1;
hence ProgramPart p c= P by RELAT_1:105; :: thesis: ( ProgramPart p c= Q & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) ) )

dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> 1))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 := d2)) +* (d2 .--> 1))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 := d2))) \/ (dom (d2 .--> 1))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> 1))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, XBOOLE_0:def 7
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A10, XBOOLE_0:def 7
.= {} by A9, XBOOLE_0:def 7 ;
then dom p misses dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by FUNCT_4:33;
then A13: p c= s2 by A11, XBOOLE_1:1;
hence ProgramPart p c= Q by RELAT_1:105; :: thesis: ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) )

take s1 ; :: thesis: ex b1 being set st
( NPP p c= s1 & NPP p c= b1 & not for b2 being Element of NAT holds (Comput (P,s1,b2)) | (proj1 (NPP p)) = (Comput (Q,b1,b2)) | (proj1 (NPP p)) )

take s2 ; :: thesis: ( NPP p c= s1 & NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p)) )
p c= s1 by A12;
hence NPP p c= s1 by XBOOLE_1:1; :: thesis: ( NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p)) )
p c= s2 by A13;
hence NPP p c= s2 by XBOOLE_1:1; :: thesis: not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p))
take 1 ; :: thesis: not (Comput (P,s1,1)) | (proj1 (NPP p)) = (Comput (Q,s2,1)) | (proj1 (NPP p))
A14: dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> 1))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1;
A15: dom (NPP p) c= the carrier of SCM+FSA by RELAT_1:def 18;
A16: dom (Comput ((ProgramPart s2),s2,1)) = the carrier of SCM+FSA by PARTFUN1:def 4;
A17: dom ((Comput ((ProgramPart s2),s2,1)) | (dom (NPP p))) = dom (NPP p) by RELAT_1:91, A15, A16;
A18: dom ((il .--> (d1 := d2)) +* (d2 .--> 1)) = (dom (il .--> (d1 := d2))) \/ (dom (d2 .--> 1)) by FUNCT_4:def 1;
A19: dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> 0))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1;
A20: dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) = (dom p) \/ (dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by FUNCT_4:def 1;
A21: dom (Start-At (il,SCM+FSA)) = {(IC )} by FUNCOP_1:19;
then A22: IC in dom (Start-At (il,SCM+FSA)) by TARSKI:def 1;
then A23: IC in dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A19, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A20, XBOOLE_0:def 3;
then A24: IC s1 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . (IC ) by A8, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . (IC ) by A23, FUNCT_4:14
.= (Start-At (il,SCM+FSA)) . (IC ) by A22, FUNCT_4:14
.= il by FUNCOP_1:87 ;
il <> IC by COMPOS_1:3;
then A25: not il in dom (Start-At (il,SCM+FSA)) by A21, TARSKI:def 1;
A26: dom ((il .--> (d1 := d2)) +* (d2 .--> 0)) = (dom (il .--> (d1 := d2))) \/ (dom (d2 .--> 0)) by FUNCT_4:def 1;
d2 <> IC by SCMFSA_2:81;
then A27: not d2 in dom (Start-At (il,SCM+FSA)) by A21, TARSKI:def 1;
A28: dom (d2 .--> 0) = {d2} by FUNCOP_1:19;
then A29: d2 in dom (d2 .--> 0) by TARSKI:def 1;
then d2 in dom ((il .--> (d1 := d2)) +* (d2 .--> 0)) by A26, XBOOLE_0:def 3;
then A30: d2 in dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A19, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A20, XBOOLE_0:def 3;
then A31: s1 . d2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . d2 by A8, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . d2 by A30, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> 0)) . d2 by A27, FUNCT_4:12
.= (d2 .--> 0) . d2 by A29, FUNCT_4:14
.= 0 by FUNCOP_1:87 ;
il <> d2 by SCMFSA_2:84;
then A32: not il in dom (d2 .--> 0) by A28, TARSKI:def 1;
dom (il .--> (d1 := d2)) = {il} by FUNCOP_1:19;
then il in dom (il .--> (d1 := d2)) by TARSKI:def 1;
then il in dom ((il .--> (d1 := d2)) +* (d2 .--> 0)) by A26, XBOOLE_0:def 3;
then A33: il in dom (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A19, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A20, XBOOLE_0:def 3;
then A34: s1 . il = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . il by A8, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . il by A33, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> 0)) . il by A25, FUNCT_4:12
.= (il .--> (d1 := d2)) . il by A32, FUNCT_4:12
.= d1 := d2 by FUNCOP_1:87 ;
A35: dom (NPP p) c= the carrier of SCM+FSA by RELAT_1:def 18;
A36: dom (Comput ((ProgramPart s1),s1,1)) = the carrier of SCM+FSA by PARTFUN1:def 4;
A37: dom ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) = dom (NPP p) by RELAT_1:91, A35, A36;
A38: dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) = (dom p) \/ (dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by FUNCT_4:def 1;
A39: dom (Start-At (il,SCM+FSA)) = {(IC )} by FUNCOP_1:19;
then A40: IC in dom (Start-At (il,SCM+FSA)) by TARSKI:def 1;
then A41: IC in dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A14, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A38, XBOOLE_0:def 3;
then A42: IC s2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . (IC ) by A11, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . (IC ) by A41, FUNCT_4:14
.= (Start-At (il,SCM+FSA)) . (IC ) by A40, FUNCT_4:14
.= il by FUNCOP_1:87 ;
d2 <> IC by SCMFSA_2:81;
then A43: not d2 in dom (Start-At (il,SCM+FSA)) by A39, TARSKI:def 1;
A44: dom (d2 .--> 1) = {d2} by FUNCOP_1:19;
then A45: d2 in dom (d2 .--> 1) by TARSKI:def 1;
then d2 in dom ((il .--> (d1 := d2)) +* (d2 .--> 1)) by A18, XBOOLE_0:def 3;
then A46: d2 in dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A14, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A38, XBOOLE_0:def 3;
then A47: s2 . d2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . d2 by A11, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . d2 by A46, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> 1)) . d2 by A43, FUNCT_4:12
.= (d2 .--> 1) . d2 by A45, FUNCT_4:14
.= 1 by FUNCOP_1:87 ;
il <> IC by COMPOS_1:3;
then A48: not il in dom (Start-At (il,SCM+FSA)) by A39, TARSKI:def 1;
il <> d2 by SCMFSA_2:84;
then A49: not il in dom (d2 .--> 1) by A44, TARSKI:def 1;
dom (il .--> (d1 := d2)) = {il} by FUNCOP_1:19;
then il in dom (il .--> (d1 := d2)) by TARSKI:def 1;
then il in dom ((il .--> (d1 := d2)) +* (d2 .--> 1)) by A18, XBOOLE_0:def 3;
then A50: il in dom (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A14, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A38, XBOOLE_0:def 3;
then A51: s2 . il = (p +* (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . il by A11, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . il by A50, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> 1)) . il by A48, FUNCT_4:12
.= (il .--> (d1 := d2)) . il by A49, FUNCT_4:12
.= d1 := d2 by FUNCOP_1:87 ;
A52: (ProgramPart s2) /. (IC s2) = s2 . (IC s2) by COMPOS_1:38;
A53: (Comput ((ProgramPart s2),s2,(0 + 1))) . d1 = (Following ((ProgramPart s2),(Comput ((ProgramPart s2),s2,0)))) . d1 by EXTPRO_1:4
.= (Following ((ProgramPart s2),s2)) . d1 by EXTPRO_1:3
.= 1 by A42, A51, A47, A52, SCMFSA_2:89 ;
A54: (ProgramPart s1) /. (IC s1) = s1 . (IC s1) by COMPOS_1:38;
(Comput ((ProgramPart s1),s1,(0 + 1))) . d1 = (Following ((ProgramPart s1),(Comput ((ProgramPart s1),s1,0)))) . d1 by EXTPRO_1:4
.= (Following ((ProgramPart s1),s1)) . d1 by EXTPRO_1:3
.= 0 by A24, A34, A31, A54, SCMFSA_2:89 ;
then ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) . d1 = 0 by FUNCT_1:70, A7, A37;
hence (Comput (P,s1,1)) | (dom (NPP p)) <> (Comput (Q,s2,1)) | (dom (NPP p)) by A53, FUNCT_1:70, A7, A17; :: thesis: verum
end;
suppose d1 in FinSeq-Locations ; :: thesis: not p is autonomic
then reconsider d1 = d1 as FinSeq-Location by SCMFSA_2:12;
set p1 = p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)));
set p2 = p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)));
consider s1 being State of SCM+FSA such that
A55: p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) c= s1 by PBOOLE:156;
not il in dom p by A4, XBOOLE_0:def 5;
then A56: dom p misses {il} by ZFMISC_1:56;
A57: dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1;
consider k being Element of NAT such that
A58: k = abs (s1 . d2) and
A59: (Exec ((d1 :=<0,...,0> d2),s1)) . d1 = k |-> 0 by SCMFSA_2:101;
A60: dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) = (dom (il .--> (d1 :=<0,...,0> d2))) \/ (dom (d2 .--> 0)) by FUNCT_4:def 1;
A61: dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) = (dom p) \/ (dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by FUNCT_4:def 1;
A62: dom (Start-At (il,SCM+FSA)) = {(IC )} by FUNCOP_1:19;
then A63: IC in dom (Start-At (il,SCM+FSA)) by TARSKI:def 1;
then A64: IC in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A57, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A61, XBOOLE_0:def 3;
then A65: IC s1 = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . (IC ) by A55, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . (IC ) by A64, FUNCT_4:14
.= (Start-At (il,SCM+FSA)) . (IC ) by A63, FUNCT_4:14
.= il by FUNCOP_1:87 ;
il <> IC by COMPOS_1:3;
then A66: not il in dom (Start-At (il,SCM+FSA)) by A62, TARSKI:def 1;
consider s2 being State of SCM+FSA such that
A67: p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) c= s2 by PBOOLE:156;
d2 <> IC by SCMFSA_2:81;
then A68: not d2 in dom (Start-At (il,SCM+FSA)) by A62, TARSKI:def 1;
A69: dom (d2 .--> 0) = {d2} by FUNCOP_1:19;
then A70: d2 in dom (d2 .--> 0) by TARSKI:def 1;
then d2 in dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) by A60, XBOOLE_0:def 3;
then A71: d2 in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A57, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A61, XBOOLE_0:def 3;
then s1 . d2 = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . d2 by A55, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . d2 by A71, FUNCT_4:14
.= ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) . d2 by A68, FUNCT_4:12
.= (d2 .--> 0) . d2 by A70, FUNCT_4:14
.= 0 by FUNCOP_1:87 ;
then A72: k |-> 0 = 0 |-> 0 by A58, ABSVALUE:7
.= {} by FINSEQ_2:72 ;
not d2 in dom p by A5, XBOOLE_0:def 5;
then A73: dom p misses {d2} by ZFMISC_1:56;
il <> d2 by SCMFSA_2:84;
then A74: not il in dom (d2 .--> 0) by A69, TARSKI:def 1;
dom (il .--> (d1 :=<0,...,0> d2)) = {il} by FUNCOP_1:19;
then il in dom (il .--> (d1 :=<0,...,0> d2)) by TARSKI:def 1;
then il in dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) by A60, XBOOLE_0:def 3;
then A75: il in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by A57, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) by A61, XBOOLE_0:def 3;
then A76: s1 . il = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) . il by A55, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) . il by A75, FUNCT_4:14
.= ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) . il by A66, FUNCT_4:12
.= (il .--> (d1 :=<0,...,0> d2)) . il by A74, FUNCT_4:12
.= d1 :=<0,...,0> d2 by FUNCOP_1:87 ;
A77: dom (NPP p) c= the carrier of SCM+FSA by RELAT_1:def 18;
A78: dom (Comput ((ProgramPart s1),s1,1)) = the carrier of SCM+FSA by PARTFUN1:def 4;
A79: dom ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) = dom (NPP p) by RELAT_1:91, A77, A78;
A80: dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) = (dom (il .--> (d1 :=<0,...,0> d2))) \/ (dom (d2 .--> 1)) by FUNCT_4:def 1;
consider k being Element of NAT such that
A81: k = abs (s2 . d2) and
A82: (Exec ((d1 :=<0,...,0> d2),s2)) . d1 = k |-> 0 by SCMFSA_2:101;
A83: dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) = (dom p) \/ (dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by FUNCT_4:def 1;
take P = ProgramPart s1; :: according to EXTPRO_1:def 9 :: thesis: ex b1 being set st
( ProgramPart p c= P & ProgramPart p c= b1 & ex b2, b3 being set st
( NPP p c= b2 & NPP p c= b3 & not for b4 being Element of NAT holds (Comput (P,b2,b4)) | (proj1 (NPP p)) = (Comput (b1,b3,b4)) | (proj1 (NPP p)) ) )

take Q = ProgramPart s2; :: thesis: ( ProgramPart p c= P & ProgramPart p c= Q & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) ) )

dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 :=<0,...,0> d2))) \/ (dom (d2 .--> 0))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> 0))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA)))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, XBOOLE_0:def 7
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A73, XBOOLE_0:def 7
.= {} by A56, XBOOLE_0:def 7 ;
then dom p misses dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 0)) +* (Start-At (il,SCM+FSA))) by FUNCT_4:33;
then A84: p c= s1 by A55, XBOOLE_1:1;
hence ProgramPart p c= P by RELAT_1:105; :: thesis: ( ProgramPart p c= Q & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) ) )

dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 :=<0,...,0> d2))) \/ (dom (d2 .--> 1))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> 1))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, XBOOLE_0:def 7
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A73, XBOOLE_0:def 7
.= {} by A56, XBOOLE_0:def 7 ;
then dom p misses dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by FUNCT_4:33;
then A85: p c= s2 by A67, XBOOLE_1:1;
hence ProgramPart p c= Q by RELAT_1:105; :: thesis: ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P,b1,b3)) | (proj1 (NPP p)) = (Comput (Q,b2,b3)) | (proj1 (NPP p)) )

take s1 ; :: thesis: ex b1 being set st
( NPP p c= s1 & NPP p c= b1 & not for b2 being Element of NAT holds (Comput (P,s1,b2)) | (proj1 (NPP p)) = (Comput (Q,b1,b2)) | (proj1 (NPP p)) )

take s2 ; :: thesis: ( NPP p c= s1 & NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p)) )
p c= s1 by A84;
hence NPP p c= s1 by XBOOLE_1:1; :: thesis: ( NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p)) )
p c= s2 by A85;
hence NPP p c= s2 by XBOOLE_1:1; :: thesis: not for b1 being Element of NAT holds (Comput (P,s1,b1)) | (proj1 (NPP p)) = (Comput (Q,s2,b1)) | (proj1 (NPP p))
take 1 ; :: thesis: not (Comput (P,s1,1)) | (proj1 (NPP p)) = (Comput (Q,s2,1)) | (proj1 (NPP p))
A86: dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) = (dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1))) \/ (dom (Start-At (il,SCM+FSA))) by FUNCT_4:def 1;
A87: dom (Start-At (il,SCM+FSA)) = {(IC )} by FUNCOP_1:19;
then A88: IC in dom (Start-At (il,SCM+FSA)) by TARSKI:def 1;
then A89: IC in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A86, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A83, XBOOLE_0:def 3;
then A90: IC s2 = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . (IC ) by A67, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . (IC ) by A89, FUNCT_4:14
.= (Start-At (il,SCM+FSA)) . (IC ) by A88, FUNCT_4:14
.= il by FUNCOP_1:87 ;
d2 <> IC by SCMFSA_2:81;
then A91: not d2 in dom (Start-At (il,SCM+FSA)) by A87, TARSKI:def 1;
A92: dom (d2 .--> 1) = {d2} by FUNCOP_1:19;
then A93: d2 in dom (d2 .--> 1) by TARSKI:def 1;
then d2 in dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) by A80, XBOOLE_0:def 3;
then A94: d2 in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A86, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A83, XBOOLE_0:def 3;
then s2 . d2 = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . d2 by A67, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . d2 by A94, FUNCT_4:14
.= ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) . d2 by A91, FUNCT_4:12
.= (d2 .--> 1) . d2 by A93, FUNCT_4:14
.= 1 by FUNCOP_1:87 ;
then A95: k |-> 0 = 1 |-> 0 by A81, ABSVALUE:def 1
.= <*0*> by FINSEQ_2:73 ;
il <> IC by COMPOS_1:3;
then A96: not il in dom (Start-At (il,SCM+FSA)) by A87, TARSKI:def 1;
il <> d2 by SCMFSA_2:84;
then A97: not il in dom (d2 .--> 1) by A92, TARSKI:def 1;
dom (il .--> (d1 :=<0,...,0> d2)) = {il} by FUNCOP_1:19;
then il in dom (il .--> (d1 :=<0,...,0> d2)) by TARSKI:def 1;
then il in dom ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) by A80, XBOOLE_0:def 3;
then A98: il in dom (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) by A86, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) by A83, XBOOLE_0:def 3;
then A99: s2 . il = (p +* (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA)))) . il by A67, GRFUNC_1:8
.= (((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) +* (Start-At (il,SCM+FSA))) . il by A98, FUNCT_4:14
.= ((il .--> (d1 :=<0,...,0> d2)) +* (d2 .--> 1)) . il by A96, FUNCT_4:12
.= (il .--> (d1 :=<0,...,0> d2)) . il by A97, FUNCT_4:12
.= d1 :=<0,...,0> d2 by FUNCOP_1:87 ;
A100: (ProgramPart s2) /. (IC s2) = s2 . (IC s2) by COMPOS_1:38;
A101: (Comput ((ProgramPart s2),s2,(0 + 1))) . d1 = (Following ((ProgramPart s2),(Comput ((ProgramPart s2),s2,0)))) . d1 by EXTPRO_1:4
.= (Following ((ProgramPart s2),s2)) . d1 by EXTPRO_1:3
.= <*0*> by A90, A99, A82, A95, A100 ;
A102: dom (NPP p) c= the carrier of SCM+FSA by RELAT_1:def 18;
A103: dom (Comput ((ProgramPart s2),s2,1)) = the carrier of SCM+FSA by PARTFUN1:def 4;
A104: dom ((Comput ((ProgramPart s2),s2,1)) | (dom (NPP p))) = dom (NPP p) by RELAT_1:91, A102, A103;
A105: (ProgramPart s1) /. (IC s1) = s1 . (IC s1) by COMPOS_1:38;
(Comput ((ProgramPart s1),s1,(0 + 1))) . d1 = (Following ((ProgramPart s1),(Comput ((ProgramPart s1),s1,0)))) . d1 by EXTPRO_1:4
.= (Following ((ProgramPart s1),s1)) . d1 by EXTPRO_1:3
.= {} by A65, A76, A59, A72, A105 ;
then ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) . d1 = {} by FUNCT_1:70, A7, A79;
hence (Comput (P,s1,1)) | (dom (NPP p)) <> (Comput (Q,s2,1)) | (dom (NPP p)) by A101, FUNCT_1:70, A7, A104; :: thesis: verum
end;
end;
end;
hence contradiction ; :: thesis: verum
end;
hence SCM+FSA is IC-recognized by AMISTD_5:3; :: thesis: verum