let p be non NAT -defined autonomic FinPartState of ; AMISTD_5:def 4 for b1 being set holds
( not NPP p c= b1 or for b2 being set holds
( not ProgramPart p c= b2 or for b3 being Element of NAT holds IC (Comput (b2,b1,b3)) in proj1 (ProgramPart p) ) )
let s be State of SCM+FSA; ( not NPP p c= s or for b1 being set holds
( not ProgramPart p c= b1 or for b2 being Element of NAT holds IC (Comput (b1,s,b2)) in proj1 (ProgramPart p) ) )
assume A1:
NPP p c= s
; for b1 being set holds
( not ProgramPart p c= b1 or for b2 being Element of NAT holds IC (Comput (b1,s,b2)) in proj1 (ProgramPart p) )
let P be the Instructions of SCM+FSA -valued ManySortedSet of NAT ; ( not ProgramPart p c= P or for b1 being Element of NAT holds IC (Comput (P,s,b1)) in proj1 (ProgramPart p) )
assume A2:
ProgramPart p c= P
; for b1 being Element of NAT holds IC (Comput (P,s,b1)) in proj1 (ProgramPart p)
let i be Element of NAT ; IC (Comput (P,s,i)) in proj1 (ProgramPart p)
set Csi = Comput (P,s,i);
set loc = IC (Comput (P,s,i));
set loc1 = (IC (Comput (P,s,i))) + 1;
A3:
( IC (Comput (P,s,i)) in dom (ProgramPart p) iff IC (Comput (P,s,i)) in (dom p) /\ NAT )
by RELAT_1:90;
assume
not IC (Comput (P,s,i)) in dom (ProgramPart p)
; contradiction
then A4:
not IC (Comput (P,s,i)) in dom p
by A3, XBOOLE_0:def 4;
set I = (intloc 0) := (intloc 0);
set p1 = p +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)));
set p2 = p +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA));
reconsider P1 = P +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0))) as the Instructions of SCM+FSA -valued ManySortedSet of NAT ;
reconsider P2 = P +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA)) as the Instructions of SCM+FSA -valued ManySortedSet of NAT ;
A6:
dom ((IC (Comput (P,s,i))) .--> (halt SCM+FSA)) = {(IC (Comput (P,s,i)))}
by FUNCOP_1:19;
then A7:
IC (Comput (P,s,i)) in dom ((IC (Comput (P,s,i))) .--> (halt SCM+FSA))
by TARSKI:def 1;
A12:
dom ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0))) = {(IC (Comput (P,s,i)))}
by FUNCOP_1:19;
then A13:
IC (Comput (P,s,i)) in dom ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)))
by TARSKI:def 1;
Y6:
dom p misses dom ((IC (Comput (P,s,i))) .--> (halt SCM+FSA))
by A4, A6, ZFMISC_1:56;
Y5:
dom p misses dom ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)))
by A4, A12, ZFMISC_1:56;
ProgramPart (p +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)))) =
(ProgramPart p) +* (ProgramPart ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0))))
by FUNCT_4:75
.=
(ProgramPart p) +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)))
by RELAT_1:209
;
then P3:
ProgramPart (p +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0)))) c= P1
by A2, FUNCT_4:131;
ProgramPart (p +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA))) =
(ProgramPart p) +* (ProgramPart ((IC (Comput (P,s,i))) .--> (halt SCM+FSA)))
by FUNCT_4:75
.=
(ProgramPart p) +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA))
by RELAT_1:209
;
then P4:
ProgramPart (p +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA))) c= P2
by A2, FUNCT_4:131;
set Cs2i = Comput (P2,s,i);
set Cs1i = Comput (P1,s,i);
not p is autonomic
proof
((IC (Comput (P,s,i))) .--> (halt SCM+FSA)) . (IC (Comput (P,s,i))) = halt SCM+FSA
by FUNCOP_1:87;
then A18:
P2 . (IC (Comput (P,s,i))) = halt SCM+FSA
by A7, FUNCT_4:14;
((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0))) . (IC (Comput (P,s,i))) = (intloc 0) := (intloc 0)
by FUNCOP_1:87;
then A19:
P1 . (IC (Comput (P,s,i))) = (intloc 0) := (intloc 0)
by A13, FUNCT_4:14;
take
P1
;
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 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)) ) )
ProgramPart p c= ProgramPart (p +* ((IC (Comput (P,s,i))) .--> ((intloc 0) := (intloc 0))))
by Y5, FUNCT_4:33, RELAT_1:105;
hence A25:
ProgramPart p c= P1
by P3, XBOOLE_1:1;
( 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)) ) )
ProgramPart p c= ProgramPart (p +* ((IC (Comput (P,s,i))) .--> (halt SCM+FSA)))
by Y6, FUNCT_4:33, RELAT_1:105;
hence A27:
ProgramPart p c= P2
by P4, XBOOLE_1:1;
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
s
;
ex b1 being set st
( NPP p c= s & NPP p c= b1 & not for b2 being Element of NAT holds (Comput (P1,s,b2)) | (proj1 (NPP p)) = (Comput (P2,b1,b2)) | (proj1 (NPP p)) )
take
s
;
( NPP p c= s & NPP p c= s & not for b1 being Element of NAT holds (Comput (P1,s,b1)) | (proj1 (NPP p)) = (Comput (P2,s,b1)) | (proj1 (NPP p)) )
thus
NPP p c= s
by A1;
( NPP p c= s & not for b1 being Element of NAT holds (Comput (P1,s,b1)) | (proj1 (NPP p)) = (Comput (P2,s,b1)) | (proj1 (NPP p)) )
A28:
(Comput (P1,s,i)) | (dom (NPP p)) = (Comput (P,s,i)) | (dom (NPP p))
by A25, A2, A1, EXTPRO_1:def 9;
thus
NPP p c= s
by A1;
not for b1 being Element of NAT holds (Comput (P1,s,b1)) | (proj1 (NPP p)) = (Comput (P2,s,b1)) | (proj1 (NPP p))
A29:
(Comput (P1,s,i)) | (dom (NPP p)) = (Comput (P2,s,i)) | (dom (NPP p))
by A25, A27, A1, EXTPRO_1:def 9;
take k =
i + 1;
not (Comput (P1,s,k)) | (proj1 (NPP p)) = (Comput (P2,s,k)) | (proj1 (NPP p))
set Cs1k =
Comput (
P1,
s,
k);
A33:
IC in dom p
by AMISTD_5:6;
IC (Comput (P,s,i)) = IC ((Comput (P,s,i)) | (dom (NPP p)))
by A33, COMPOS_1:179, FUNCT_1:72;
then
IC (Comput (P1,s,i)) = IC (Comput (P,s,i))
by A28, A33, COMPOS_1:179, FUNCT_1:72;
then XX:
CurInstr (
P1,
(Comput (P1,s,i))) =
P1 . (IC (Comput (P,s,i)))
by PBOOLE:158
.=
(intloc 0) := (intloc 0)
by A19
;
A31:
Comput (
P1,
s,
k) =
Following (
P1,
(Comput (P1,s,i)))
by EXTPRO_1:4
.=
Exec (
(CurInstr (P1,(Comput (P1,s,i)))),
(Comput (P1,s,i)))
.=
Exec (
((intloc 0) := (intloc 0)),
(Comput (P1,s,i)))
by XX
;
A32:
IC (Exec (((intloc 0) := (intloc 0)),(Comput (P1,s,i)))) = succ (IC (Comput (P1,s,i)))
by SCMFSA_2:89;
A33:
IC in dom p
by AMISTD_5:6;
A34:
IC (Comput (P,s,i)) = IC ((Comput (P,s,i)) | (dom (NPP p)))
by A33, COMPOS_1:179, FUNCT_1:72;
then
IC (Comput (P1,s,i)) = IC (Comput (P,s,i))
by A28, A33, COMPOS_1:179, FUNCT_1:72;
then A35:
IC (Comput (P1,s,k)) =
succ (IC (Comput (P,s,i)))
by A31, A32
.=
(IC (Comput (P,s,i))) + 1
by NAT_1:39
;
set Cs2k =
Comput (
P2,
s,
k);
A36:
Comput (
P2,
s,
k) =
Following (
P2,
(Comput (P2,s,i)))
by EXTPRO_1:4
.=
Exec (
(CurInstr (P2,(Comput (P2,s,i)))),
(Comput (P2,s,i)))
;
A37:
P2 /. (IC (Comput (P2,s,i))) = P2 . (IC (Comput (P2,s,i)))
by PBOOLE:158;
IC (Comput (P2,s,i)) = IC (Comput (P,s,i))
by A28, A34, A29, A33, COMPOS_1:179, FUNCT_1:72;
then A38:
IC (Comput (P2,s,k)) = IC (Comput (P,s,i))
by A36, A18, A37, EXTPRO_1:def 3;
(
IC ((Comput (P1,s,k)) | (dom (NPP p))) = IC (Comput (P1,s,k)) &
IC ((Comput (P2,s,k)) | (dom (NPP p))) = IC (Comput (P2,s,k)) )
by A33, COMPOS_1:179, FUNCT_1:72;
hence
not
(Comput (P1,s,k)) | (proj1 (NPP p)) = (Comput (P2,s,k)) | (proj1 (NPP p))
by A35, A38;
verum
end;
hence
contradiction
; verum