( not R is trivial implies for p being autonomic FinPartState of (SCM R) st DataPart p <> {} holds
IC in dom p )
proof
assume not R is trivial ; :: thesis: for p being autonomic FinPartState of (SCM R) st DataPart p <> {} holds
IC in dom p

let p be autonomic FinPartState of (SCM R); :: thesis: ( DataPart p <> {} implies IC in dom p )
assume DataPart p <> {} ; :: thesis: IC in dom p
then A1: dom (DataPart p) <> {} ;
assume A2: not IC in dom p ; :: thesis: contradiction
not p is autonomic
proof
set il = the Element of NAT \ (dom p);
set d2 = the Element of (Data-Locations SCM) \ (dom p);
set d1 = the Element of dom (DataPart p);
A3: the Element of dom (DataPart p) in dom (DataPart p) by A1;
DataPart p c= NPP p by COMPOS_1:169;
then A4: dom (DataPart p) c= dom (NPP p) by RELAT_1:25;
dom (DataPart p) c= the carrier of (SCM R) by RELAT_1:def 18;
then reconsider d1 = the Element of dom (DataPart p) as Element of (SCM R) by A3;
not Data-Locations SCM c= dom p ;
then A5: (Data-Locations SCM) \ (dom p) <> {} by XBOOLE_1:37;
then the Element of (Data-Locations SCM) \ (dom p) in Data-Locations SCM by XBOOLE_0:def 5;
then reconsider d2 = the Element of (Data-Locations SCM) \ (dom p) as Data-Location of R by SCMRING2:1;
A6: not d2 in dom p by A5, XBOOLE_0:def 5;
not NAT c= dom p ;
then A7: NAT \ (dom p) <> {} by XBOOLE_1:37;
then reconsider il = the Element of NAT \ (dom p) as Element of NAT by XBOOLE_0:def 5;
A8: not il in dom p by A7, XBOOLE_0:def 5;
Data-Locations (SCM R) = Data-Locations SCM by SCMRING2:31;
then dom (DataPart p) c= Data-Locations SCM by RELAT_1:87;
then reconsider d1 = d1 as Data-Location of R by A3, SCMRING2:1;
A9: dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> (0. R)))) \/ (dom (Start-At (il,(SCM R)))) by FUNCT_4:def 1;
set p1 = p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))));
consider s1 being State of (SCM R) such that
A10: p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) c= s1 by PBOOLE:156;
A11: dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) = (dom p) \/ (dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) by FUNCT_4:def 1;
A12: dom (Start-At (il,(SCM R))) = {(IC )} by FUNCOP_1:19;
then A13: IC in dom (Start-At (il,(SCM R))) by TARSKI:def 1;
then A14: IC in dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) by A9, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) by A11, XBOOLE_0:def 3;
then A15: IC s1 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) . (IC ) by A10, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) . (IC ) by A14, FUNCT_4:14
.= (Start-At (il,(SCM R))) . (IC ) by A13, FUNCT_4:14
.= il by FUNCOP_1:87 ;
A16: il <> IC by COMPOS_1:3;
then A17: not il in dom (Start-At (il,(SCM R))) by A12, TARSKI:def 1;
A18: dom (Start-At (il,(SCM R))) = {(IC )} by FUNCOP_1:19;
then A19: not il in dom (Start-At (il,(SCM R))) by A16, TARSKI:def 1;
A20: d2 <> IC by SCMRING3:3;
then A21: not d2 in dom (Start-At (il,(SCM R))) by A12, TARSKI:def 1;
A22: not d2 in dom (Start-At (il,(SCM R))) by A20, A18, TARSKI:def 1;
A23: dom ((il .--> (d1 := d2)) +* (d2 .--> (0. R))) = (dom (il .--> (d1 := d2))) \/ (dom (d2 .--> (0. R))) by FUNCT_4:def 1;
A24: dom (d2 .--> (0. R)) = {d2} by FUNCOP_1:19;
then A25: d2 in dom (d2 .--> (0. R)) by TARSKI:def 1;
then d2 in dom ((il .--> (d1 := d2)) +* (d2 .--> (0. R))) by A23, XBOOLE_0:def 3;
then A26: d2 in dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) by A9, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) by A11, XBOOLE_0:def 3;
then A27: s1 . d2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) . d2 by A10, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) . d2 by A26, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> (0. R))) . d2 by A21, FUNCT_4:12
.= (d2 .--> (0. R)) . d2 by A25, FUNCT_4:14
.= 0. R by FUNCOP_1:87 ;
A28: il <> d2 by Th5;
then A29: not il in dom (d2 .--> (0. R)) by A24, 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. R))) by A23, XBOOLE_0:def 3;
then A30: il in dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) by A9, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) by A11, XBOOLE_0:def 3;
then A31: s1 . il = (p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) . il by A10, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) . il by A30, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> (0. R))) . il by A17, FUNCT_4:12
.= (il .--> (d1 := d2)) . il by A29, FUNCT_4:12
.= d1 := d2 by FUNCOP_1:87 ;
A32: dom (NPP p) c= the carrier of (SCM R) by RELAT_1:def 18;
dom (Comput ((ProgramPart s1),s1,1)) = the carrier of (SCM R) by PARTFUN1:def 4;
then A33: dom ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) = dom (NPP p) by A32, RELAT_1:91;
consider e being Element of R such that
A34: e <> 0. R by STRUCT_0:def 19;
set p2 = p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))));
consider s2 being State of (SCM R) such that
A35: p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) c= s2 by PBOOLE:156;
A36: dom (Comput ((ProgramPart s2),s2,1)) = the carrier of (SCM R) by PARTFUN1:def 4;
A37: dom ((Comput ((ProgramPart s2),s2,1)) | (dom (NPP p))) = dom (NPP p) by RELAT_1:91, A32, A36;
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. R))) +* (Start-At (il,(SCM R)))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> (0. R)))) \/ (dom (Start-At (il,(SCM R)))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 := d2)) +* (d2 .--> (0. R)))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 := d2))) \/ (dom (d2 .--> (0. R)))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> (0. R)))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R))))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, Lm1
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A6, Lm1
.= {} by A8, Lm1 ;
then dom p misses dom (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 := d2)) +* (d2 .--> (0. R))) +* (Start-At (il,(SCM R)))) by FUNCT_4:33;
then A38: p c= s1 by A10, 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 .--> e)) +* (Start-At (il,(SCM R)))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> e))) \/ (dom (Start-At (il,(SCM R)))) by FUNCT_4:def 1
.= (dom ((il .--> (d1 := d2)) +* (d2 .--> e))) \/ {(IC )} by FUNCOP_1:19
.= ((dom (il .--> (d1 := d2))) \/ (dom (d2 .--> e))) \/ {(IC )} by FUNCT_4:def 1
.= ({il} \/ (dom (d2 .--> e))) \/ {(IC )} by FUNCOP_1:19
.= ({il} \/ {d2}) \/ {(IC )} by FUNCOP_1:19 ;
then (dom p) /\ (dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) = ((dom p) /\ ({il} \/ {d2})) \/ ((dom p) /\ {(IC )}) by XBOOLE_1:23
.= ((dom p) /\ ({il} \/ {d2})) \/ {} by A2, Lm1
.= ((dom p) /\ {il}) \/ ((dom p) /\ {d2}) by XBOOLE_1:23
.= ((dom p) /\ {il}) \/ {} by A6, Lm1
.= {} by A8, Lm1 ;
then dom p misses dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) by XBOOLE_0:def 7;
then p c= p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) by FUNCT_4:33;
then A39: p c= s2 by A35, 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 A38;
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 A39;
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))
A40: dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) = (dom ((il .--> (d1 := d2)) +* (d2 .--> e))) \/ (dom (Start-At (il,(SCM R)))) by FUNCT_4:def 1;
A41: dom (d2 .--> e) = {d2} by FUNCOP_1:19;
then A42: not il in dom (d2 .--> e) by A28, TARSKI:def 1;
A43: dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) = (dom p) \/ (dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) by FUNCT_4:def 1;
A44: IC in dom (Start-At (il,(SCM R))) by A18, TARSKI:def 1;
then A45: IC in dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) by A40, XBOOLE_0:def 3;
then IC in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) by A43, XBOOLE_0:def 3;
then A46: IC s2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) . (IC ) by A35, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) . (IC ) by A45, FUNCT_4:14
.= (Start-At (il,(SCM R))) . (IC ) by A44, FUNCT_4:14
.= il by FUNCOP_1:87 ;
A47: dom ((il .--> (d1 := d2)) +* (d2 .--> e)) = (dom (il .--> (d1 := d2))) \/ (dom (d2 .--> e)) by FUNCT_4: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 .--> e)) by A47, XBOOLE_0:def 3;
then A48: il in dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) by A40, XBOOLE_0:def 3;
then il in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) by A43, XBOOLE_0:def 3;
then A49: s2 . il = (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) . il by A35, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) . il by A48, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> e)) . il by A19, FUNCT_4:12
.= (il .--> (d1 := d2)) . il by A42, FUNCT_4:12
.= d1 := d2 by FUNCOP_1:87 ;
A50: d2 in dom (d2 .--> e) by A41, TARSKI:def 1;
then d2 in dom ((il .--> (d1 := d2)) +* (d2 .--> e)) by A47, XBOOLE_0:def 3;
then A51: d2 in dom (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) by A40, XBOOLE_0:def 3;
then d2 in dom (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) by A43, XBOOLE_0:def 3;
then A52: s2 . d2 = (p +* (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R))))) . d2 by A35, GRFUNC_1:8
.= (((il .--> (d1 := d2)) +* (d2 .--> e)) +* (Start-At (il,(SCM R)))) . d2 by A51, FUNCT_4:14
.= ((il .--> (d1 := d2)) +* (d2 .--> e)) . d2 by A22, FUNCT_4:12
.= (d2 .--> e) . d2 by A50, FUNCT_4:14
.= e by FUNCOP_1:87 ;
A53: (ProgramPart s2) /. il = s2 . il by COMPOS_1:38;
A54: (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
.= e by A46, A49, A52, A53, SCMRING2:13 ;
A55: (ProgramPart s1) /. il = s1 . il 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. R by A15, A31, A27, A55, SCMRING2:13 ;
then ((Comput (P,s1,1)) | (dom (NPP p))) . d1 = 0. R by A33, FUNCT_1:70, A3, A4;
hence (Comput (P,s1,1)) | (dom (NPP p)) <> (Comput (Q,s2,1)) | (dom (NPP p)) by A34, A3, A37, A4, A54, FUNCT_1:70; :: thesis: verum
end;
hence contradiction ; :: thesis: verum
end;
hence SCM R is IC-recognized by AMISTD_5:3; :: thesis: verum