let n be Element of NAT ; for R being good Ring
for a being Data-Location of R
for loc being Element of NAT
for s1, s2 being State of (SCM R) st not R is trivial holds
for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
let R be good Ring; for a being Data-Location of R
for loc being Element of NAT
for s1, s2 being State of (SCM R) st not R is trivial holds
for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
let a be Data-Location of R; for loc being Element of NAT
for s1, s2 being State of (SCM R) st not R is trivial holds
for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
let loc be Element of NAT ; for s1, s2 being State of (SCM R) st not R is trivial holds
for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
let s1, s2 be State of (SCM R); ( not R is trivial implies for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R ) )
assume A1:
not R is trivial
; for p being non NAT -defined autonomic FinPartState of st p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) holds
( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
set Cs2i1 = Comput ((ProgramPart s2),s2,(n + 1));
set Cs1i1 = Comput ((ProgramPart s1),s1,(n + 1));
set I = CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n)));
let p be non NAT -defined autonomic FinPartState of ; ( p c= s1 & p c= s2 & CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc & loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) implies ( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R ) )
assume A2:
( p c= s1 & p c= s2 )
; ( not CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc or not loc <> succ (IC (Comput ((ProgramPart s1),s1,n))) or ( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R ) )
A3:
CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = CurInstr ((ProgramPart (Comput ((ProgramPart s2),s2,n))),(Comput ((ProgramPart s2),s2,n)))
by A1, A2, Th28;
set Cs2i = Comput ((ProgramPart s2),s2,n);
set Cs1i = Comput ((ProgramPart s1),s1,n);
A4: Comput ((ProgramPart s1),s1,(n + 1)) =
Following ((ProgramPart s1),(Comput ((ProgramPart s1),s1,n)))
by EXTPRO_1:4
.=
Exec ((CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n)))),(Comput ((ProgramPart s1),s1,n)))
by AMI_1:123
;
A5: Comput ((ProgramPart s2),s2,(n + 1)) =
Following ((ProgramPart s2),(Comput ((ProgramPart s2),s2,n)))
by EXTPRO_1:4
.=
Exec ((CurInstr ((ProgramPart (Comput ((ProgramPart s2),s2,n))),(Comput ((ProgramPart s2),s2,n)))),(Comput ((ProgramPart s2),s2,n)))
by AMI_1:123
;
A6:
( ((Comput ((ProgramPart s1),s1,(n + 1))) | (dom p)) . (IC (SCM R)) = (Comput ((ProgramPart s1),s1,(n + 1))) . (IC (SCM R)) & ((Comput ((ProgramPart s2),s2,(n + 1))) | (dom p)) . (IC (SCM R)) = (Comput ((ProgramPart s2),s2,(n + 1))) . (IC (SCM R)) )
by A1, Th25, FUNCT_1:72;
assume that
A7:
CurInstr ((ProgramPart (Comput ((ProgramPart s1),s1,n))),(Comput ((ProgramPart s1),s1,n))) = a =0_goto loc
and
A8:
loc <> succ (IC (Comput ((ProgramPart s1),s1,n)))
; ( (Comput ((ProgramPart s1),s1,n)) . a = 0. R iff (Comput ((ProgramPart s2),s2,n)) . a = 0. R )
A9:
IC (Comput ((ProgramPart s1),s1,n)) = IC (Comput ((ProgramPart s2),s2,n))
by A1, A2, Th28;
hereby ( (Comput ((ProgramPart s2),s2,n)) . a = 0. R implies (Comput ((ProgramPart s1),s1,n)) . a = 0. R )
assume
(
(Comput ((ProgramPart s1),s1,n)) . a = 0. R &
(Comput ((ProgramPart s2),s2,n)) . a <> 0. R )
;
contradictionthen
(
(Comput ((ProgramPart s1),s1,(n + 1))) . (IC (SCM R)) = loc &
(Comput ((ProgramPart s2),s2,(n + 1))) . (IC (SCM R)) = succ (IC (Comput ((ProgramPart s2),s2,n))) )
by A3, A4, A5, A7, SCMRING2:18;
hence
contradiction
by A2, A9, A6, A8, EXTPRO_1:def 9;
verum
end;
assume that
A10:
(Comput ((ProgramPart s2),s2,n)) . a = 0. R
and
A11:
(Comput ((ProgramPart s1),s1,n)) . a <> 0. R
; contradiction
A12:
(Comput ((ProgramPart s1),s1,(n + 1))) . (IC (SCM R)) = succ (IC (Comput ((ProgramPart s1),s1,n)))
by A4, A7, A11, SCMRING2:18;
(Comput ((ProgramPart s2),s2,(n + 1))) . (IC (SCM R)) = loc
by A3, A5, A7, A10, SCMRING2:18;
hence
contradiction
by A2, A6, A8, A12, EXTPRO_1:def 9; verum