begin
Lm1:
for k being natural number holds - 1 < k
Lm2:
for k being natural number
for a, b, c being Element of NAT st 1 <= a & 2 <= b & not k < a - 1 & not ( a <= k & k <= (a + b) - 3 ) & not k = (a + b) - 2 & not (a + b) - 2 < k holds
k = a - 1
begin
:: deftheorem AMISTD_2:def 1 :
canceled;
:: deftheorem AMISTD_2:def 2 :
canceled;
:: deftheorem defines JumpParts AMISTD_2:def 3 :
for N being set
for S being standard-ins AMI-Struct of N
for T being InsType of S holds JumpParts T = { (JumpPart I) where I is Instruction of S : InsCode I = T } ;
:: deftheorem Def4 defines homogeneous AMISTD_2:def 4 :
for N being set
for S being standard-ins AMI-Struct of N holds
( S is homogeneous iff for I, J being Instruction of S st InsCode I = InsCode J holds
dom (JumpPart I) = dom (JumpPart J) );
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th17:
:: deftheorem defines AddressParts AMISTD_2:def 5 :
for N being set
for S being standard-ins AMI-Struct of N
for T being InsType of S holds AddressParts T = { (AddressPart I) where I is Instruction of S : InsCode I = T } ;
:: deftheorem Def6 defines with_explicit_jumps AMISTD_2:def 6 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins AMI-Struct of N
for I being Instruction of S holds
( I is with_explicit_jumps iff JUMP I c= rng (JumpPart I) );
:: deftheorem Def7 defines without_implicit_jumps AMISTD_2:def 7 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins AMI-Struct of N
for I being Instruction of S holds
( I is without_implicit_jumps iff rng (JumpPart I) c= JUMP I );
:: deftheorem Def8 defines with_explicit_jumps AMISTD_2:def 8 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins AMI-Struct of N holds
( S is with_explicit_jumps iff for I being Instruction of S holds I is with_explicit_jumps );
:: deftheorem Def9 defines without_implicit_jumps AMISTD_2:def 9 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins AMI-Struct of N holds
( S is without_implicit_jumps iff for I being Instruction of S holds I is without_implicit_jumps );
theorem Th18:
:: deftheorem AMISTD_2:def 10 :
canceled;
:: deftheorem Def11 defines regular AMISTD_2:def 11 :
for N being set
for S being standard-ins AMI-Struct of N holds
( S is regular iff for I being Instruction of S
for k being set st k in dom (JumpPart I) holds
(product" (JumpParts (InsCode I))) . k = NAT );
:: deftheorem Dfs defines J/A-independent AMISTD_2:def 12 :
for N being set
for S being standard-ins AMI-Struct of N holds
( S is J/A-independent iff for T being InsType of S
for f1, f2 being Function
for p being set st f1 in JumpParts T & f2 in product (product" (JumpParts T)) & [T,f1,p] in the Instructions of S holds
[T,f2,p] in the Instructions of S );
theorem Th19:
Lm3:
for N being non empty with_non-empty_elements set
for I being Instruction of (Trivial-AMI N) holds JumpPart I = 0
Lm4:
for N being non empty with_non-empty_elements set
for T being InsType of (Trivial-AMI N) holds JumpParts T = {0 }
theorem
theorem Th21:
:: deftheorem defines ins-loc-free AMISTD_2:def 13 :
for N being set
for S being standard-ins AMI-Struct of N
for I being Instruction of S holds
( I is ins-loc-free iff JumpPart I is empty );
theorem
theorem
canceled;
theorem
canceled;
theorem Th25:
theorem Th26:
Lm6:
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite halting standard AMI-Struct of N holds (card (Stop S)) -' 1 = 0
theorem Th27:
begin
:: deftheorem Def14 defines IncAddr AMISTD_2:def 14 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins standard homogeneous regular J/A-independent AMI-Struct of N
for I being Element of the Instructions of S
for k being natural number
for b5 being Instruction of S holds
( b5 = IncAddr I,k iff ( InsCode b5 = InsCode I & AddressPart b5 = AddressPart I & JumpPart b5 = k + (JumpPart I) ) );
theorem Th28:
theorem Th29:
theorem
theorem
theorem
canceled;
theorem
canceled;
theorem Th34:
theorem Th35:
theorem
theorem Th37:
:: deftheorem Def15 defines IncAddr AMISTD_2:def 15 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins standard homogeneous regular J/A-independent AMI-Struct of N
for p being NAT -defined the Instructions of b2 -valued finite Function
for k being natural number
for b5 being FinPartState of S holds
( b5 = IncAddr p,k iff ( dom b5 = dom p & ( for m being natural number st m in dom p holds
b5 . m = IncAddr (p /. m),k ) ) );
theorem Th38:
theorem
:: deftheorem defines Reloc AMISTD_2:def 16 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins standard homogeneous regular J/A-independent AMI-Struct of N
for p being NAT -defined the Instructions of b2 -valued finite Function
for k being Element of NAT holds Reloc p,k = IncAddr (Shift p,k),k;
:: deftheorem AMISTD_2:def 17 :
canceled;
:: deftheorem Def17 defines IC-good AMISTD_2:def 18 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite realistic standard-ins halting standard homogeneous regular J/A-independent AMI-Struct of N
for I being Instruction of S holds
( I is IC-good iff for k being natural number
for s1 being State of S holds (IC (Exec I,s1)) + k = IC (Exec (IncAddr I,k),(IncrIC s1,k)) );
:: deftheorem Def18 defines IC-good AMISTD_2:def 19 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite realistic standard-ins halting standard homogeneous regular J/A-independent AMI-Struct of N holds
( S is IC-good iff for I being Instruction of S holds I is IC-good );
:: deftheorem Def19 defines Exec-preserving AMISTD_2:def 20 :
for N being with_non-empty_elements set
for S being stored-program AMI-Struct of N
for I being Instruction of S holds
( I is Exec-preserving iff for s1, s2 being State of S st s1,s2 equal_outside NAT holds
Exec I,s1, Exec I,s2 equal_outside NAT );
:: deftheorem Def20 defines Exec-preserving AMISTD_2:def 21 :
for N being with_non-empty_elements set
for S being stored-program AMI-Struct of N holds
( S is Exec-preserving iff for I being Instruction of S holds I is Exec-preserving );
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th46:
theorem
canceled;
theorem
canceled;
theorem
canceled;
theorem Th50:
theorem Th51:
:: deftheorem defines ';' AMISTD_2:def 22 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite standard-ins standard homogeneous regular J/A-independent AMI-Struct of N
for F, G being NAT -defined the Instructions of b2 -valued non empty FinPartState of holds F ';' G = (CutLastLoc F) +* (Shift (IncAddr G,((card F) -' 1)),((card F) -' 1));
theorem Th52:
theorem Th53:
theorem Th54:
theorem Th55:
theorem
theorem Th57:
theorem Th58:
theorem Th59:
theorem Th60:
theorem
theorem
theorem
theorem
begin
Lm7:
for a, b, c being set st a c= c & b c= c \ a holds
c = (a \/ (c \ (a \/ b))) \/ b
Lm8:
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite realistic AMI-Struct of N holds NAT c= the carrier of S \ {(IC S)}
theorem
canceled;
theorem
canceled;
theorem
:: deftheorem defines Relocated AMISTD_2:def 23 :
for N being non empty with_non-empty_elements set
for S being non empty stored-program IC-Ins-separated definite realistic standard-ins halting standard homogeneous regular J/A-independent AMI-Struct of N
for k being Element of NAT
for p being FinPartState of S holds Relocated p,k = (IncrIC (NPP p),k) +* (Reloc (ProgramPart p),k);
theorem
theorem Th69:
theorem Th70:
theorem
theorem Th72:
theorem Th73:
theorem
canceled;
theorem Th75:
theorem
theorem
theorem