let a, b be Instruction of S; :: thesis: ( InsCode a = InsCode I & dom (AddressPart a) = dom (AddressPart I) & ( for n being set st n in dom (AddressPart I) holds
( ( (product" (AddressParts (InsCode I))) . n = NAT implies ex f being Instruction-Location of S st
( f = (AddressPart I) . n & (AddressPart a) . n = il. S,(k + (locnum f)) ) ) & ( (product" (AddressParts (InsCode I))) . n <> NAT implies (AddressPart a) . n = (AddressPart I) . n ) ) ) & InsCode b = InsCode I & dom (AddressPart b) = dom (AddressPart I) & ( for n being set st n in dom (AddressPart I) holds
( ( (product" (AddressParts (InsCode I))) . n = NAT implies ex f being Instruction-Location of S st
( f = (AddressPart I) . n & (AddressPart b) . n = il. S,(k + (locnum f)) ) ) & ( (product" (AddressParts (InsCode I))) . n <> NAT implies (AddressPart b) . n = (AddressPart I) . n ) ) ) implies a = b )
assume that
A17:
InsCode a = InsCode I
and
A18:
dom (AddressPart a) = dom (AddressPart I)
and
A19:
for n being set st n in dom (AddressPart I) holds
( ( (product" (AddressParts (InsCode I))) . n = NAT implies ex f being Instruction-Location of S st
( f = (AddressPart I) . n & (AddressPart a) . n = il. S,(k + (locnum f)) ) ) & ( (product" (AddressParts (InsCode I))) . n <> NAT implies (AddressPart a) . n = (AddressPart I) . n ) )
and
A20:
InsCode b = InsCode I
and
A21:
dom (AddressPart b) = dom (AddressPart I)
and
A22:
for n being set st n in dom (AddressPart I) holds
( ( (product" (AddressParts (InsCode I))) . n = NAT implies ex f being Instruction-Location of S st
( f = (AddressPart I) . n & (AddressPart b) . n = il. S,(k + (locnum f)) ) ) & ( (product" (AddressParts (InsCode I))) . n <> NAT implies (AddressPart b) . n = (AddressPart I) . n ) )
; :: thesis: a = b
A23:
Seg (len (AddressPart a)) = dom (AddressPart a)
by FINSEQ_1:def 3;
for n being Nat st n in Seg (len (AddressPart a)) holds
(AddressPart a) . n = (AddressPart b) . n
hence
a = b
by A17, A20, Th16, A18, A21, A23, FINSEQ_1:17; :: thesis: verum