let p be autonomic FinPartState of SCMPDS; AMISTD_5:def 3 ( NPP p is empty or IC in proj1 p )
assume A1:
not NPP p is empty
; IC in proj1 p
assume A2:
not IC in dom p
; contradiction
dom (NPP p) c= dom p
by RELAT_1:25;
then
not IC in dom (NPP p)
by A2;
then A3:
dom (NPP p) misses {(IC )}
by ZFMISC_1:56;
dom (NPP p) c= {(IC )} \/ (dom (DataPart p))
by COMPOS_1:171;
then A4:
dom (NPP p) c= dom (DataPart p)
by A3, XBOOLE_1:73;
A5:
dom (DataPart p) <> {}
by A1, A4, XBOOLE_1:3;
DataPart p c= NPP p
by COMPOS_1:169;
then A6:
dom (DataPart p) c= dom (NPP p)
by RELAT_1:25;
not p is autonomic
proof
set il = the
Element of
NAT \ (dom p);
set d1 = the
Element of
dom (DataPart p);
A7:
the
Element of
dom (DataPart p) in dom (DataPart p)
by A5;
dom (DataPart p) c= the
carrier of
SCMPDS
by RELAT_1:def 18;
then reconsider d1 = the
Element of
dom (DataPart p) as
Element of
SCMPDS by A7;
not
NAT c= dom p
;
then A8:
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;
not
il in dom p
by A8, XBOOLE_0:def 5;
then A9:
dom p misses {il}
by ZFMISC_1:56;
dom (DataPart p) c= SCM-Data-Loc
by RELAT_1:87, SCMPDS_2:100;
then reconsider d1 =
d1 as
Int_position by A7, SCMPDS_2:9;
A10:
dom (Start-At (il,SCMPDS)) = {(IC )}
by FUNCOP_1:19;
then A11:
IC in dom (Start-At (il,SCMPDS))
by TARSKI:def 1;
il <> IC
by COMPOS_1:3;
then A12:
not
il in dom (Start-At (il,SCMPDS))
by A10, TARSKI:def 1;
A13:
dom p misses {(IC )}
by A2, ZFMISC_1:56;
set p2 =
p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)));
set p1 =
p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)));
consider s1 being
State of
SCMPDS such that A14:
p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))) c= s1
by PBOOLE:156;
consider s2 being
State of
SCMPDS such that A15:
p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))) c= s2
by PBOOLE:156;
take P1 =
ProgramPart s1;
EXTPRO_1:def 9 ex b1 being set st
( ProgramPart p c= P1 & 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 (P1,b2,b4)) | (proj1 (NPP p)) = (Comput (b1,b3,b4)) | (proj1 (NPP p)) ) )
take P2 =
ProgramPart s2;
( ProgramPart p c= P1 & ProgramPart p c= P2 & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P1,b1,b3)) | (proj1 (NPP p)) = (Comput (P2,b2,b3)) | (proj1 (NPP p)) ) )
dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))) =
(dom (il .--> (d1 := 0))) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1
.=
(dom (il .--> (d1 := 0))) \/ {(IC )}
by FUNCOP_1:19
.=
{il} \/ {(IC )}
by FUNCOP_1:19
;
then (dom p) /\ (dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))) =
((dom p) /\ {il}) \/ ((dom p) /\ {(IC )})
by XBOOLE_1:23
.=
((dom p) /\ {il}) \/ {}
by A13, XBOOLE_0:def 7
.=
{}
by A9, XBOOLE_0:def 7
;
then
dom p misses dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))
by XBOOLE_0:def 7;
then
p c= p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))
by FUNCT_4:33;
then A16:
p c= s1
by A14, XBOOLE_1:1;
hence
ProgramPart p c= P1
by RELAT_1:105;
( ProgramPart p c= P2 & ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P1,b1,b3)) | (proj1 (NPP p)) = (Comput (P2,b2,b3)) | (proj1 (NPP p)) ) )
dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))) =
(dom (il .--> (d1 := 1))) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1
.=
(dom (il .--> (d1 := 1))) \/ {(IC )}
by FUNCOP_1:19
.=
{il} \/ {(IC )}
by FUNCOP_1:19
;
then (dom p) /\ (dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))) =
((dom p) /\ {il}) \/ ((dom p) /\ {(IC )})
by XBOOLE_1:23
.=
((dom p) /\ {il}) \/ {}
by A13, XBOOLE_0:def 7
.=
{}
by A9, XBOOLE_0:def 7
;
then
dom p misses dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))
by XBOOLE_0:def 7;
then
p c= p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))
by FUNCT_4:33;
then A17:
p c= s2
by A15, XBOOLE_1:1;
hence
ProgramPart p c= P2
by RELAT_1:105;
ex b1, b2 being set st
( NPP p c= b1 & NPP p c= b2 & not for b3 being Element of NAT holds (Comput (P1,b1,b3)) | (proj1 (NPP p)) = (Comput (P2,b2,b3)) | (proj1 (NPP p)) )
take
s1
;
ex b1 being set st
( NPP p c= s1 & NPP p c= b1 & not for b2 being Element of NAT holds (Comput (P1,s1,b2)) | (proj1 (NPP p)) = (Comput (P2,b1,b2)) | (proj1 (NPP p)) )
take
s2
;
( NPP p c= s1 & NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P1,s1,b1)) | (proj1 (NPP p)) = (Comput (P2,s2,b1)) | (proj1 (NPP p)) )
p c= s1
by A16;
hence
NPP p c= s1
by XBOOLE_1:1;
( NPP p c= s2 & not for b1 being Element of NAT holds (Comput (P1,s1,b1)) | (proj1 (NPP p)) = (Comput (P2,s2,b1)) | (proj1 (NPP p)) )
thus
NPP p c= s2
by A17, XBOOLE_1:1;
not for b1 being Element of NAT holds (Comput (P1,s1,b1)) | (proj1 (NPP p)) = (Comput (P2,s2,b1)) | (proj1 (NPP p))
take
1
;
not (Comput (P1,s1,1)) | (proj1 (NPP p)) = (Comput (P2,s2,1)) | (proj1 (NPP p))
A18:
dom (p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))) = (dom p) \/ (dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))))
by FUNCT_4:def 1;
A19:
dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))) = (dom (il .--> (d1 := 1))) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1;
then A20:
IC in dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))
by A11, XBOOLE_0:def 3;
then
IC in dom (p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))))
by A18, XBOOLE_0:def 3;
then A21:
IC s2 =
(p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))) . (IC )
by A15, GRFUNC_1:8
.=
((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))) . (IC )
by A20, FUNCT_4:14
.=
(Start-At (il,SCMPDS)) . (IC )
by A11, FUNCT_4:14
.=
il
by FUNCOP_1:87
;
dom (il .--> (d1 := 1)) = {il}
by FUNCOP_1:19;
then
il in dom (il .--> (d1 := 1))
by TARSKI:def 1;
then A22:
il in dom ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))
by A19, XBOOLE_0:def 3;
then
il in dom (p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))))
by A18, XBOOLE_0:def 3;
then A23:
s2 . il =
(p +* ((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS)))) . il
by A15, GRFUNC_1:8
.=
((il .--> (d1 := 1)) +* (Start-At (il,SCMPDS))) . il
by A22, FUNCT_4:14
.=
(il .--> (d1 := 1)) . il
by A12, FUNCT_4:12
.=
d1 := 1
by FUNCOP_1:87
;
A24:
(ProgramPart s2) /. (IC s2) = s2 . (IC s2)
by COMPOS_1:38;
A25:
(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 A21, A23, A24, SCMPDS_2:57
;
A26:
dom (NPP p) c= the
carrier of
SCMPDS
by RELAT_1:def 18;
dom (Comput ((ProgramPart s1),s1,1)) = the
carrier of
SCMPDS
by PARTFUN1:def 4;
then A27:
dom ((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) = dom (NPP p)
by A26, RELAT_1:91;
il <> IC
by COMPOS_1:3;
then A28:
not
il in dom (Start-At (il,SCMPDS))
by A10, TARSKI:def 1;
A29:
dom (p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))) = (dom p) \/ (dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))))
by FUNCT_4:def 1;
A30:
dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))) = (dom (il .--> (d1 := 0))) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1;
then A31:
IC in dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))
by A11, XBOOLE_0:def 3;
then
IC in dom (p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))))
by A29, XBOOLE_0:def 3;
then A32:
IC s1 =
(p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))) . (IC )
by A14, GRFUNC_1:8
.=
((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))) . (IC )
by A31, FUNCT_4:14
.=
(Start-At (il,SCMPDS)) . (IC )
by A11, FUNCT_4:14
.=
il
by FUNCOP_1:87
;
dom (il .--> (d1 := 0)) = {il}
by FUNCOP_1:19;
then
il in dom (il .--> (d1 := 0))
by TARSKI:def 1;
then A33:
il in dom ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))
by A30, XBOOLE_0:def 3;
then
il in dom (p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))))
by A29, XBOOLE_0:def 3;
then A34:
s1 . il =
(p +* ((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS)))) . il
by A14, GRFUNC_1:8
.=
((il .--> (d1 := 0)) +* (Start-At (il,SCMPDS))) . il
by A33, FUNCT_4:14
.=
(il .--> (d1 := 0)) . il
by A28, FUNCT_4:12
.=
d1 := 0
by FUNCOP_1:87
;
A35:
(ProgramPart s1) /. (IC s1) = s1 . (IC s1)
by COMPOS_1:38;
A36:
dom (Comput ((ProgramPart s2),s2,1)) = the
carrier of
SCMPDS
by PARTFUN1:def 4;
A37:
dom ((Comput ((ProgramPart s2),s2,1)) | (dom (NPP p))) = dom (NPP p)
by RELAT_1:91, A26, A36;
(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 A32, A34, A35, SCMPDS_2:57
;
then
((Comput ((ProgramPart s1),s1,1)) | (dom (NPP p))) . d1 = 0
by A7, A27, FUNCT_1:70, A6;
hence
not
(Comput (P1,s1,1)) | (proj1 (NPP p)) = (Comput (P2,s2,1)) | (proj1 (NPP p))
by A25, FUNCT_1:70, A7, A37, A6;
verum
end;
hence
contradiction
; verum