let n be Element of NAT ; :: thesis: for s1, s2 being State of st GCD-Algorithm c= s1 & GCD-Algorithm c= s2 & IC s1 = inspos 5 & n = s1 . SBP & s1 . GBP = 0 & s1 . (DataLoc (s1 . SBP ),3) > 0 & IC s2 = IC s1 & s2 . SBP = s1 . SBP & s2 . GBP = 0 & s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) & s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) holds
for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a )

let s1, s2 be State of ; :: thesis: ( GCD-Algorithm c= s1 & GCD-Algorithm c= s2 & IC s1 = inspos 5 & n = s1 . SBP & s1 . GBP = 0 & s1 . (DataLoc (s1 . SBP ),3) > 0 & IC s2 = IC s1 & s2 . SBP = s1 . SBP & s2 . GBP = 0 & s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) & s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) implies for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

set GA = GCD-Algorithm ;
assume that
A1: GCD-Algorithm c= s1 and
A2: GCD-Algorithm c= s2 ; :: thesis: ( not IC s1 = inspos 5 or not n = s1 . SBP or not s1 . GBP = 0 or not s1 . (DataLoc (s1 . SBP ),3) > 0 or not IC s2 = IC s1 or not s2 . SBP = s1 . SBP or not s2 . GBP = 0 or not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume A3: IC s1 = inspos 5 ; :: thesis: ( not n = s1 . SBP or not s1 . GBP = 0 or not s1 . (DataLoc (s1 . SBP ),3) > 0 or not IC s2 = IC s1 or not s2 . SBP = s1 . SBP or not s2 . GBP = 0 or not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume A4: n = s1 . SBP ; :: thesis: ( not s1 . GBP = 0 or not s1 . (DataLoc (s1 . SBP ),3) > 0 or not IC s2 = IC s1 or not s2 . SBP = s1 . SBP or not s2 . GBP = 0 or not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume A5: s1 . GBP = 0 ; :: thesis: ( not s1 . (DataLoc (s1 . SBP ),3) > 0 or not IC s2 = IC s1 or not s2 . SBP = s1 . SBP or not s2 . GBP = 0 or not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume A6: s1 . (DataLoc (s1 . SBP ),3) > 0 ; :: thesis: ( not IC s2 = IC s1 or not s2 . SBP = s1 . SBP or not s2 . GBP = 0 or not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume that
A7: IC s2 = IC s1 and
A8: s2 . SBP = s1 . SBP and
A9: s2 . GBP = 0 ; :: thesis: ( not s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) or not s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) or for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a ) )

assume that
A10: s2 . (DataLoc (s1 . SBP ),2) = s1 . (DataLoc (s1 . SBP ),2) and
A11: s2 . (DataLoc (s1 . SBP ),3) = s1 . (DataLoc (s1 . SBP ),3) ; :: thesis: for k being Element of NAT
for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,k) = IC (Computation s2,k) & (Computation s1,k) . a = (Computation s2,k) . a )

A12: Computation s1,(1 + 0 ) = Following (Computation s1,0 ) by AMI_1:14
.= Following s1 by AMI_1:13
.= Exec (SBP ,3 <=0_goto 9),s1 by A1, A3, Lm1 ;
A13: Computation s2,(1 + 0 ) = Following (Computation s2,0 ) by AMI_1:14
.= Following s2 by AMI_1:13
.= Exec (SBP ,3 <=0_goto 9),s2 by A2, A3, A7, Lm1 ;
A14: IC (Computation s1,1) = Next (IC s1) by A6, A12, SCMPDS_2:68
.= inspos (5 + 1) by A3 ;
then A15: CurInstr (Computation s1,1) = s1 . (inspos 6) by AMI_1:54
.= SBP ,6 := SBP ,3 by A1, Lm1 ;
A16: Computation s1,(1 + 1) = Following (Computation s1,1) by AMI_1:14
.= Exec (SBP ,6 := SBP ,3),(Computation s1,1) by A15 ;
A17: (Computation s1,1) . SBP = n by A4, A12, SCMPDS_2:68;
A18: (Computation s1,1) . GBP = 0 by A5, A12, SCMPDS_2:68;
A19: IC (Computation s2,1) = Next (IC s2) by A6, A8, A11, A13, SCMPDS_2:68
.= inspos (5 + 1) by A3, A7 ;
then A20: CurInstr (Computation s2,1) = s2 . (inspos 6) by AMI_1:54
.= SBP ,6 := SBP ,3 by A2, Lm1 ;
A21: Computation s2,(1 + 1) = Following (Computation s2,1) by AMI_1:14
.= Exec (SBP ,6 := SBP ,3),(Computation s2,1) by A20 ;
A22: IC (Computation s1,2) = Next (IC (Computation s1,1)) by A16, SCMPDS_2:59
.= inspos (6 + 1) by A14 ;
then A23: CurInstr (Computation s1,2) = s1 . (inspos 7) by AMI_1:54
.= Divide SBP ,2,SBP ,3 by A1, Lm1 ;
A24: Computation s1,(2 + 1) = Following (Computation s1,2) by AMI_1:14
.= Exec (Divide SBP ,2,SBP ,3),(Computation s1,2) by A23 ;
A25: DataLoc ((Computation s1,1) . SBP ),6 = intpos (n + 6) by A17, Th5;
then A26: (Computation s1,2) . SBP = n by A16, A17, Lm3, SCMPDS_2:59;
A27: (Computation s1,2) . GBP = 0 by A16, A18, A25, Lm2, SCMPDS_2:59;
A28: IC (Computation s2,2) = Next (IC (Computation s2,1)) by A21, SCMPDS_2:59
.= inspos (6 + 1) by A19 ;
then A29: CurInstr (Computation s2,2) = s2 . (inspos 7) by AMI_1:54
.= Divide SBP ,2,SBP ,3 by A2, Lm1 ;
A30: Computation s2,(2 + 1) = Following (Computation s2,2) by AMI_1:14
.= Exec (Divide SBP ,2,SBP ,3),(Computation s2,2) by A29 ;
A31: IC (Computation s1,3) = Next (IC (Computation s1,2)) by A24, SCMPDS_2:64
.= inspos (7 + 1) by A22 ;
then A32: CurInstr (Computation s1,3) = s1 . (inspos 8) by AMI_1:54
.= SBP ,7 := SBP ,3 by A1, Lm1 ;
A33: Computation s1,(3 + 1) = Following (Computation s1,3) by AMI_1:14
.= Exec (SBP ,7 := SBP ,3),(Computation s1,3) by A32 ;
A34: DataLoc ((Computation s1,2) . SBP ),2 = intpos (n + 2) by A26, Th5;
then A35: SBP <> DataLoc ((Computation s1,2) . SBP ),2 by Lm3;
A36: DataLoc ((Computation s1,2) . SBP ),3 = intpos (n + 3) by A26, Th5;
then SBP <> DataLoc ((Computation s1,2) . SBP ),3 by Lm3;
then A37: (Computation s1,3) . SBP = n by A24, A26, A35, SCMPDS_2:64;
A38: GBP <> DataLoc ((Computation s1,2) . SBP ),2 by A34, Lm2;
GBP <> DataLoc ((Computation s1,2) . SBP ),3 by A36, Lm2;
then A39: (Computation s1,3) . GBP = 0 by A24, A27, A38, SCMPDS_2:64;
A40: IC (Computation s2,3) = Next (IC (Computation s2,2)) by A30, SCMPDS_2:64
.= inspos (7 + 1) by A28 ;
then A41: CurInstr (Computation s2,3) = s2 . (inspos 8) by AMI_1:54
.= SBP ,7 := SBP ,3 by A2, Lm1 ;
A42: Computation s2,(3 + 1) = Following (Computation s2,3) by AMI_1:14
.= Exec (SBP ,7 := SBP ,3),(Computation s2,3) by A41 ;
A43: IC (Computation s1,4) = Next (IC (Computation s1,3)) by A33, SCMPDS_2:59
.= inspos (8 + 1) by A31 ;
then A44: CurInstr (Computation s1,4) = s1 . (inspos 9) by AMI_1:54
.= SBP ,(4 + RetSP ) := GBP ,1 by A1, Lm1 ;
A45: Computation s1,(4 + 1) = Following (Computation s1,4) by AMI_1:14
.= Exec (SBP ,(4 + RetSP ) := GBP ,1),(Computation s1,4) by A44 ;
A46: DataLoc ((Computation s1,3) . SBP ),7 = intpos (n + 7) by A37, Th5;
then A47: (Computation s1,4) . SBP = n by A33, A37, Lm3, SCMPDS_2:59;
A48: (Computation s1,4) . GBP = 0 by A33, A39, A46, Lm2, SCMPDS_2:59;
A49: IC (Computation s2,4) = Next (IC (Computation s2,3)) by A42, SCMPDS_2:59
.= inspos (8 + 1) by A40 ;
then A50: CurInstr (Computation s2,4) = s2 . (inspos 9) by AMI_1:54
.= SBP ,(4 + RetSP ) := GBP ,1 by A2, Lm1 ;
A51: Computation s2,(4 + 1) = Following (Computation s2,4) by AMI_1:14
.= Exec (SBP ,(4 + RetSP ) := GBP ,1),(Computation s2,4) by A50 ;
A52: IC (Computation s1,5) = Next (IC (Computation s1,4)) by A45, SCMPDS_2:59
.= inspos (9 + 1) by A43 ;
then A53: CurInstr (Computation s1,5) = s1 . (inspos 10) by AMI_1:54
.= AddTo GBP ,1,4 by A1, Lm1 ;
A54: Computation s1,(5 + 1) = Following (Computation s1,5) by AMI_1:14
.= Exec (AddTo GBP ,1,4),(Computation s1,5) by A53 ;
DataLoc ((Computation s1,4) . SBP ),(4 + RetSP ) = intpos (n + (4 + 0 )) by A47, Th5, SCMPDS_1:def 22;
then A55: (Computation s1,5) . GBP = 0 by A45, A48, Lm2, SCMPDS_2:59;
A56: IC (Computation s2,5) = Next (IC (Computation s2,4)) by A51, SCMPDS_2:59
.= inspos (9 + 1) by A49 ;
then A57: CurInstr (Computation s2,5) = s2 . (inspos 10) by AMI_1:54
.= AddTo GBP ,1,4 by A2, Lm1 ;
A58: Computation s2,(5 + 1) = Following (Computation s2,5) by AMI_1:14
.= Exec (AddTo GBP ,1,4),(Computation s2,5) by A57 ;
A59: IC (Computation s1,6) = Next (IC (Computation s1,5)) by A54, SCMPDS_2:60
.= inspos (10 + 1) by A52 ;
then A60: CurInstr (Computation s1,6) = s1 . (inspos 11) by AMI_1:54
.= saveIC SBP ,RetIC by A1, Lm1 ;
A61: Computation s1,(6 + 1) = Following (Computation s1,6) by AMI_1:14
.= Exec (saveIC SBP ,RetIC ),(Computation s1,6) by A60 ;
A62: IC (Computation s2,6) = Next (IC (Computation s2,5)) by A58, SCMPDS_2:60
.= inspos (10 + 1) by A56 ;
then A63: CurInstr (Computation s2,6) = s2 . (inspos 11) by AMI_1:54
.= saveIC SBP ,RetIC by A2, Lm1 ;
A64: Computation s2,(6 + 1) = Following (Computation s2,6) by AMI_1:14
.= Exec (saveIC SBP ,RetIC ),(Computation s2,6) by A63 ;
A65: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,1) . b = (Computation s2,1) . b )
assume s1 . b = s2 . b ; :: thesis: (Computation s1,1) . b = (Computation s2,1) . b
hence (Computation s1,1) . b = s2 . b by A12, SCMPDS_2:68
.= (Computation s2,1) . b by A13, SCMPDS_2:68 ;
:: thesis: verum
end;
A66: for b being Int_position st s1 . b = s2 . b holds
(Computation s1,2) . b = (Computation s2,2) . b
proof
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,2) . b = (Computation s2,2) . b )
assume A67: s1 . b = s2 . b ; :: thesis: (Computation s1,2) . b = (Computation s2,2) . b
per cases ( b = DataLoc ((Computation s1,1) . SBP ),6 or b <> DataLoc ((Computation s1,1) . SBP ),6 ) ;
suppose A68: b = DataLoc ((Computation s1,1) . SBP ),6 ; :: thesis: (Computation s1,2) . b = (Computation s2,2) . b
then A69: b = DataLoc ((Computation s2,1) . SBP ),6 by A8, A65;
thus (Computation s1,2) . b = (Computation s1,1) . (DataLoc (s1 . SBP ),3) by A4, A16, A17, A68, SCMPDS_2:59
.= (Computation s2,1) . (DataLoc ((Computation s1,1) . SBP ),3) by A4, A11, A17, A65
.= (Computation s2,1) . (DataLoc ((Computation s2,1) . SBP ),3) by A8, A65
.= (Computation s2,2) . b by A21, A69, SCMPDS_2:59 ; :: thesis: verum
end;
suppose A70: b <> DataLoc ((Computation s1,1) . SBP ),6 ; :: thesis: (Computation s1,2) . b = (Computation s2,2) . b
then A71: b <> DataLoc ((Computation s2,1) . SBP ),6 by A8, A65;
thus (Computation s1,2) . b = (Computation s1,1) . b by A16, A70, SCMPDS_2:59
.= (Computation s2,1) . b by A65, A67
.= (Computation s2,2) . b by A21, A71, SCMPDS_2:59 ; :: thesis: verum
end;
end;
end;
A72: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,3) . b1 = (Computation s2,3) . b1 )
assume A73: s1 . b = s2 . b ; :: thesis: (Computation s1,3) . b1 = (Computation s2,3) . b1
set x1 = DataLoc ((Computation s1,2) . SBP ),2;
set x2 = DataLoc ((Computation s1,2) . SBP ),3;
set y1 = DataLoc ((Computation s2,2) . SBP ),2;
set y2 = DataLoc ((Computation s2,2) . SBP ),3;
A74: DataLoc ((Computation s1,2) . SBP ),2 = DataLoc ((Computation s2,2) . SBP ),2 by A8, A66;
A75: DataLoc ((Computation s1,2) . SBP ),3 = DataLoc ((Computation s2,2) . SBP ),3 by A8, A66;
per cases ( ( b <> DataLoc ((Computation s1,2) . SBP ),2 & b <> DataLoc ((Computation s1,2) . SBP ),3 ) or b = DataLoc ((Computation s1,2) . SBP ),2 or b = DataLoc ((Computation s1,2) . SBP ),3 ) ;
suppose A76: ( b <> DataLoc ((Computation s1,2) . SBP ),2 & b <> DataLoc ((Computation s1,2) . SBP ),3 ) ; :: thesis: (Computation s1,3) . b1 = (Computation s2,3) . b1
hence (Computation s1,3) . b = (Computation s1,2) . b by A24, SCMPDS_2:64
.= (Computation s2,2) . b by A66, A73
.= (Computation s2,3) . b by A30, A74, A75, A76, SCMPDS_2:64 ;
:: thesis: verum
end;
suppose A77: b = DataLoc ((Computation s1,2) . SBP ),2 ; :: thesis: (Computation s1,3) . b1 = (Computation s2,3) . b1
A78: n + 2 <> n + 3 ;
then A79: DataLoc ((Computation s1,2) . SBP ),2 <> DataLoc ((Computation s1,2) . SBP ),3 by A34, A36, AMI_3:52;
A80: DataLoc ((Computation s2,2) . SBP ),2 <> DataLoc ((Computation s2,2) . SBP ),3 by A34, A36, A74, A75, A78, AMI_3:52;
thus (Computation s1,3) . b = ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),2)) div ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A24, A77, A79, SCMPDS_2:64
.= ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),2)) div ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A4, A10, A26, A66
.= ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),2)) div ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A4, A11, A26, A66
.= (Computation s2,3) . b by A30, A74, A75, A77, A80, SCMPDS_2:64 ; :: thesis: verum
end;
suppose A81: b = DataLoc ((Computation s1,2) . SBP ),3 ; :: thesis: (Computation s1,3) . b1 = (Computation s2,3) . b1
hence (Computation s1,3) . b = ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),2)) mod ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A24, SCMPDS_2:64
.= ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),2)) mod ((Computation s1,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A4, A10, A26, A66
.= ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),2)) mod ((Computation s2,2) . (DataLoc ((Computation s1,2) . SBP ),3)) by A4, A11, A26, A66
.= (Computation s2,3) . b by A30, A74, A75, A81, SCMPDS_2:64 ;
:: thesis: verum
end;
end;
end;
A82: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,4) . b1 = (Computation s2,4) . b1 )
assume A83: s1 . b = s2 . b ; :: thesis: (Computation s1,4) . b1 = (Computation s2,4) . b1
per cases ( b = DataLoc ((Computation s1,3) . SBP ),7 or b <> DataLoc ((Computation s1,3) . SBP ),7 ) ;
suppose A84: b = DataLoc ((Computation s1,3) . SBP ),7 ; :: thesis: (Computation s1,4) . b1 = (Computation s2,4) . b1
then A85: b = DataLoc ((Computation s2,3) . SBP ),7 by A8, A72;
thus (Computation s1,4) . b = (Computation s1,3) . (DataLoc ((Computation s1,3) . SBP ),3) by A33, A84, SCMPDS_2:59
.= (Computation s2,3) . (DataLoc ((Computation s1,3) . SBP ),3) by A4, A11, A37, A72
.= (Computation s2,3) . (DataLoc ((Computation s2,3) . SBP ),3) by A8, A72
.= (Computation s2,4) . b by A42, A85, SCMPDS_2:59 ; :: thesis: verum
end;
suppose A86: b <> DataLoc ((Computation s1,3) . SBP ),7 ; :: thesis: (Computation s1,4) . b1 = (Computation s2,4) . b1
then A87: b <> DataLoc ((Computation s2,3) . SBP ),7 by A8, A72;
thus (Computation s1,4) . b = (Computation s1,3) . b by A33, A86, SCMPDS_2:59
.= (Computation s2,3) . b by A72, A83
.= (Computation s2,4) . b by A42, A87, SCMPDS_2:59 ; :: thesis: verum
end;
end;
end;
A88: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,5) . b1 = (Computation s2,5) . b1 )
assume A89: s1 . b = s2 . b ; :: thesis: (Computation s1,5) . b1 = (Computation s2,5) . b1
A90: s1 . (DataLoc ((Computation s1,4) . GBP ),1) = s2 . (intpos (0 + 1)) by A8, A48, Th5
.= s2 . (DataLoc ((Computation s1,4) . GBP ),1) by A48, Th5 ;
per cases ( b = DataLoc ((Computation s1,4) . SBP ),(4 + RetSP ) or b <> DataLoc ((Computation s1,4) . SBP ),(4 + RetSP ) ) ;
suppose A91: b = DataLoc ((Computation s1,4) . SBP ),(4 + RetSP ) ; :: thesis: (Computation s1,5) . b1 = (Computation s2,5) . b1
then A92: b = DataLoc ((Computation s2,4) . SBP ),(4 + RetSP ) by A8, A82;
thus (Computation s1,5) . b = (Computation s1,4) . (DataLoc ((Computation s1,4) . GBP ),1) by A45, A91, SCMPDS_2:59
.= (Computation s2,4) . (DataLoc ((Computation s1,4) . GBP ),1) by A82, A90
.= (Computation s2,4) . (DataLoc ((Computation s2,4) . GBP ),1) by A5, A9, A82
.= (Computation s2,5) . b by A51, A92, SCMPDS_2:59 ; :: thesis: verum
end;
suppose A93: b <> DataLoc ((Computation s1,4) . SBP ),(4 + RetSP ) ; :: thesis: (Computation s1,5) . b1 = (Computation s2,5) . b1
then A94: b <> DataLoc ((Computation s2,4) . SBP ),(4 + RetSP ) by A8, A82;
thus (Computation s1,5) . b = (Computation s1,4) . b by A45, A93, SCMPDS_2:59
.= (Computation s2,4) . b by A82, A89
.= (Computation s2,5) . b by A51, A94, SCMPDS_2:59 ; :: thesis: verum
end;
end;
end;
A95: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,6) . b1 = (Computation s2,6) . b1 )
assume A96: s1 . b = s2 . b ; :: thesis: (Computation s1,6) . b1 = (Computation s2,6) . b1
A97: s1 . (DataLoc ((Computation s1,5) . GBP ),1) = s2 . (intpos (0 + 1)) by A8, A55, Th5
.= s2 . (DataLoc ((Computation s1,5) . GBP ),1) by A55, Th5 ;
per cases ( b = DataLoc ((Computation s1,5) . GBP ),1 or b <> DataLoc ((Computation s1,5) . GBP ),1 ) ;
suppose A98: b = DataLoc ((Computation s1,5) . GBP ),1 ; :: thesis: (Computation s1,6) . b1 = (Computation s2,6) . b1
then A99: b = DataLoc ((Computation s2,5) . GBP ),1 by A5, A9, A88;
thus (Computation s1,6) . b = ((Computation s1,5) . (DataLoc ((Computation s1,5) . GBP ),1)) + 4 by A54, A98, SCMPDS_2:60
.= ((Computation s2,5) . (DataLoc ((Computation s1,5) . GBP ),1)) + 4 by A88, A97
.= ((Computation s2,5) . (DataLoc ((Computation s2,5) . GBP ),1)) + 4 by A5, A9, A88
.= (Computation s2,6) . b by A58, A99, SCMPDS_2:60 ; :: thesis: verum
end;
suppose A100: b <> DataLoc ((Computation s1,5) . GBP ),1 ; :: thesis: (Computation s1,6) . b1 = (Computation s2,6) . b1
then A101: b <> DataLoc ((Computation s2,5) . GBP ),1 by A5, A9, A88;
thus (Computation s1,6) . b = (Computation s1,5) . b by A54, A100, SCMPDS_2:60
.= (Computation s2,5) . b by A88, A96
.= (Computation s2,6) . b by A58, A101, SCMPDS_2:60 ; :: thesis: verum
end;
end;
end;
A102: now
let b be Int_position ; :: thesis: ( s1 . b = s2 . b implies (Computation s1,7) . b1 = (Computation s2,7) . b1 )
assume A103: s1 . b = s2 . b ; :: thesis: (Computation s1,7) . b1 = (Computation s2,7) . b1
per cases ( b = DataLoc ((Computation s1,6) . SBP ),RetIC or b <> DataLoc ((Computation s1,6) . SBP ),RetIC ) ;
end;
end;
hereby :: thesis: verum
let k be Element of NAT ; :: thesis: for a being Int_position st k <= 7 & s1 . a = s2 . a holds
( IC (Computation s1,b2) = IC (Computation s2,b2) & (Computation s1,b2) . b3 = (Computation s2,b2) . b3 )

let a be Int_position ; :: thesis: ( k <= 7 & s1 . a = s2 . a implies ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 ) )
assume that
A108: k <= 7 and
A109: s1 . a = s2 . a ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
per cases ( k = 0 or k = 1 or k = 2 or k = 3 or k = 4 or k = 5 or k = 6 or k = 7 ) by A108, NAT_1:32;
suppose A110: k = 0 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC s1 by AMI_1:13
.= IC (Computation s2,k) by A7, A110, AMI_1:13 ;
:: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = s1 . a by A110, AMI_1:13
.= (Computation s2,k) . a by A109, A110, AMI_1:13 ; :: thesis: verum
end;
suppose A111: k = 1 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A14, A19; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A65, A109, A111; :: thesis: verum
end;
suppose A112: k = 2 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A22, A28; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A66, A109, A112; :: thesis: verum
end;
suppose A113: k = 3 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A31, A40; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A72, A109, A113; :: thesis: verum
end;
suppose A114: k = 4 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A43, A49; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A82, A109, A114; :: thesis: verum
end;
suppose A115: k = 5 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A52, A56; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A88, A109, A115; :: thesis: verum
end;
suppose A116: k = 6 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = IC (Computation s2,k) by A59, A62; :: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A95, A109, A116; :: thesis: verum
end;
suppose A117: k = 7 ; :: thesis: ( IC (Computation s1,b1) = IC (Computation s2,b1) & (Computation s1,b1) . b2 = (Computation s2,b1) . b2 )
hence IC (Computation s1,k) = Next (IC (Computation s2,6)) by A59, A61, A62, SCMPDS_2:71
.= IC (Computation s2,k) by A64, A117, SCMPDS_2:71 ;
:: thesis: (Computation s1,k) . a = (Computation s2,k) . a
thus (Computation s1,k) . a = (Computation s2,k) . a by A102, A109, A117; :: thesis: verum
end;
end;
end;