let q be NAT -defined the InstructionsF of SCMPDS -valued finite non halt-free Function; AMISTD_5:def 3 for b1 being set holds
( b1 is empty or IC in dom b1 )
let p be q -autonomic FinPartState of SCMPDS; ( p is empty or IC in dom p )
assume A1:
not p is empty
; IC in dom p
assume A2:
not IC in dom p
; contradiction
not IC in dom p
by A2;
then A3:
dom p misses {(IC )}
by ZFMISC_1:50;
dom p c= {(IC )} \/ (dom (DataPart p))
by MEMSTR_0:32;
then A4:
dom p c= dom (DataPart p)
by A3, XBOOLE_1:73;
A5:
dom (DataPart p) <> {}
by A1, A4, XBOOLE_1:3;
DataPart p c= p
by MEMSTR_0:12;
then A6:
dom (DataPart p) c= dom p
by RELAT_1:11;
not p is q -autonomic
proof
set il = the
Element of
NAT \ (dom q);
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 q
;
then A8:
NAT \ (dom q) <> {}
by XBOOLE_1:37;
then reconsider il = the
Element of
NAT \ (dom q) as
Element of
NAT by XBOOLE_0:def 5;
A9:
not
il in dom q
by A8, XBOOLE_0:def 5;
dom (DataPart p) c= SCM-Data-Loc
by RELAT_1:58, SCMPDS_2:84;
then reconsider d1 =
d1 as
Int_position by A7, AMI_2:def 16;
A10:
IC in dom (Start-At (il,SCMPDS))
by TARSKI:def 1;
A11:
dom p misses {(IC )}
by A2, ZFMISC_1:50;
set p2 =
p +* (Start-At (il,SCMPDS));
set p1 =
p +* (Start-At (il,SCMPDS));
set q2 =
q +* (il .--> (d1 := 1));
set q1 =
q +* (il .--> (d1 := 0));
A13:
dom q misses dom (il .--> (d1 := 1))
by A9, ZFMISC_1:50;
A14:
dom q misses dom (il .--> (d1 := 0))
by A9, ZFMISC_1:50;
consider s1 being
State of
SCMPDS such that A15:
p +* (Start-At (il,SCMPDS)) c= s1
by PBOOLE:141;
consider S1 being
Instruction-Sequence of
SCMPDS such that A16:
q +* (il .--> (d1 := 0)) c= S1
by PBOOLE:145;
consider s2 being
State of
SCMPDS such that A17:
p +* (Start-At (il,SCMPDS)) c= s2
by PBOOLE:141;
consider S2 being
Instruction-Sequence of
SCMPDS such that A18:
q +* (il .--> (d1 := 1)) c= S2
by PBOOLE:145;
take P1 =
S1;
EXTPRO_1:def 10 ex b1 being set st
( q c= P1 & q c= b1 & ex b2, b3 being set st
( p c= b2 & p c= b3 & not for b4 being set holds (Comput (P1,b2,b4)) | (dom p) = (Comput (b1,b3,b4)) | (dom p) ) )
take P2 =
S2;
( q c= P1 & q c= P2 & ex b1, b2 being set st
( p c= b1 & p c= b2 & not for b3 being set holds (Comput (P1,b1,b3)) | (dom p) = (Comput (P2,b2,b3)) | (dom p) ) )
(dom p) /\ (dom (Start-At (il,SCMPDS))) =
(dom p) /\ {(IC )}
.=
{}
by A11, XBOOLE_0:def 7
.=
{}
;
then
dom p misses dom (Start-At (il,SCMPDS))
by XBOOLE_0:def 7;
then
p c= p +* (Start-At (il,SCMPDS))
by FUNCT_4:32;
then A19:
p c= s1
by A15, XBOOLE_1:1;
q c= q +* (il .--> (d1 := 0))
by A14, FUNCT_4:32;
hence
q c= P1
by A16, XBOOLE_1:1;
( q c= P2 & ex b1, b2 being set st
( p c= b1 & p c= b2 & not for b3 being set holds (Comput (P1,b1,b3)) | (dom p) = (Comput (P2,b2,b3)) | (dom p) ) )
(dom p) /\ (dom (Start-At (il,SCMPDS))) =
(dom p) /\ {(IC )}
.=
{}
by A11, XBOOLE_0:def 7
.=
{}
;
then
dom p misses dom (Start-At (il,SCMPDS))
by XBOOLE_0:def 7;
then
p c= p +* (Start-At (il,SCMPDS))
by FUNCT_4:32;
then A20:
p c= s2
by A17, XBOOLE_1:1;
q c= q +* (il .--> (d1 := 1))
by A13, FUNCT_4:32;
hence
q c= P2
by A18, XBOOLE_1:1;
ex b1, b2 being set st
( p c= b1 & p c= b2 & not for b3 being set holds (Comput (P1,b1,b3)) | (dom p) = (Comput (P2,b2,b3)) | (dom p) )
take
s1
;
ex b1 being set st
( p c= s1 & p c= b1 & not for b2 being set holds (Comput (P1,s1,b2)) | (dom p) = (Comput (P2,b1,b2)) | (dom p) )
take
s2
;
( p c= s1 & p c= s2 & not for b1 being set holds (Comput (P1,s1,b1)) | (dom p) = (Comput (P2,s2,b1)) | (dom p) )
p c= s1
by A19;
hence
p c= s1
;
( p c= s2 & not for b1 being set holds (Comput (P1,s1,b1)) | (dom p) = (Comput (P2,s2,b1)) | (dom p) )
thus
p c= s2
by A20;
not for b1 being set holds (Comput (P1,s1,b1)) | (dom p) = (Comput (P2,s2,b1)) | (dom p)
take
1
;
not (Comput (P1,s1,1)) | (dom p) = (Comput (P2,s2,1)) | (dom p)
A21:
dom (p +* (Start-At (il,SCMPDS))) = (dom p) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1;
A22:
dom (q +* (il .--> (d1 := 1))) = (dom q) \/ (dom (il .--> (d1 := 1)))
by FUNCT_4:def 1;
A23:
IC in dom (Start-At (il,SCMPDS))
by A10;
then
IC in dom (p +* (Start-At (il,SCMPDS)))
by A21, XBOOLE_0:def 3;
then A24:
IC s2 =
(p +* (Start-At (il,SCMPDS))) . (IC )
by A17, GRFUNC_1:2
.=
(Start-At (il,SCMPDS)) . (IC )
by A23, FUNCT_4:13
.=
(Start-At (il,SCMPDS)) . (IC )
.=
il
by FUNCOP_1:72
;
il in dom (il .--> (d1 := 1))
by TARSKI:def 1;
then A25:
il in dom (il .--> (d1 := 1))
;
then
il in dom (q +* (il .--> (d1 := 1)))
by A22, XBOOLE_0:def 3;
then A26:
S2 . il =
(q +* (il .--> (d1 := 1))) . il
by A18, GRFUNC_1:2
.=
(il .--> (d1 := 1)) . il
by A25, FUNCT_4:13
.=
(il .--> (d1 := 1)) . il
.=
d1 := 1
by FUNCOP_1:72
;
A27:
S2 /. (IC s2) = S2 . (IC s2)
by PBOOLE:143;
A28:
(Comput (S2,s2,(0 + 1))) . d1 =
(Following (S2,(Comput (S2,s2,0)))) . d1
by EXTPRO_1:3
.=
(Following (S2,s2)) . d1
.=
1
by A24, A26, A27, SCMPDS_2:45
;
A29:
dom p c= the
carrier of
SCMPDS
by RELAT_1:def 18;
dom (Comput (S1,s1,1)) = the
carrier of
SCMPDS
by PARTFUN1:def 2;
then A30:
dom ((Comput (S1,s1,1)) | (dom p)) = dom p
by A29, RELAT_1:62;
A31:
dom (p +* (Start-At (il,SCMPDS))) = (dom p) \/ (dom (Start-At (il,SCMPDS)))
by FUNCT_4:def 1;
A32:
dom (q +* (il .--> (d1 := 0))) = (dom q) \/ (dom (il .--> (d1 := 0)))
by FUNCT_4:def 1;
A33:
IC in dom (Start-At (il,SCMPDS))
by A10;
then
IC in dom (p +* (Start-At (il,SCMPDS)))
by A31, XBOOLE_0:def 3;
then A34:
IC s1 =
(p +* (Start-At (il,SCMPDS))) . (IC )
by A15, GRFUNC_1:2
.=
(Start-At (il,SCMPDS)) . (IC )
by A33, FUNCT_4:13
.=
(Start-At (il,SCMPDS)) . (IC )
.=
il
by FUNCOP_1:72
;
il in dom (il .--> (d1 := 0))
by TARSKI:def 1;
then A36:
il in dom (il .--> (d1 := 0))
;
then
il in dom (q +* (il .--> (d1 := 0)))
by A32, XBOOLE_0:def 3;
then A37:
S1 . il =
(q +* (il .--> (d1 := 0))) . il
by A16, GRFUNC_1:2
.=
(il .--> (d1 := 0)) . il
by A36, FUNCT_4:13
.=
(il .--> (d1 := 0)) . il
.=
d1 := 0
by FUNCOP_1:72
;
A38:
S1 /. (IC s1) = S1 . (IC s1)
by PBOOLE:143;
A39:
dom (Comput (S2,s2,1)) = the
carrier of
SCMPDS
by PARTFUN1:def 2;
A40:
dom ((Comput (S2,s2,1)) | (dom p)) = dom p
by A29, A39, RELAT_1:62;
(Comput (S1,s1,(0 + 1))) . d1 =
(Following (S1,(Comput (S1,s1,0)))) . d1
by EXTPRO_1:3
.=
(Following (S1,s1)) . d1
.=
0
by A34, A37, A38, SCMPDS_2:45
;
then
((Comput (S1,s1,1)) | (dom p)) . d1 = 0
by A7, A30, A6, FUNCT_1:47;
hence
not
(Comput (P1,s1,1)) | (dom p) = (Comput (P2,s2,1)) | (dom p)
by A28, A7, A40, A6, FUNCT_1:47;
verum
end;
hence
contradiction
; verum