let f be IL-Function of NAT , SCM+FSA ; :: thesis: ( ( for k being Element of NAT holds f . k = insloc k ) implies ( f is bijective & ( for k being Element of NAT holds
( f . (k + 1) in SUCC (f . k) & ( for j being Element of NAT st f . j in SUCC (f . k) holds
k <= j ) ) ) ) )

assume A1: for k being Element of NAT holds f . k = insloc k ; :: thesis: ( f is bijective & ( for k being Element of NAT holds
( f . (k + 1) in SUCC (f . k) & ( for j being Element of NAT st f . j in SUCC (f . k) holds
k <= j ) ) ) )

A2: f is one-to-one
proof
let x1, x2 be set ; :: according to FUNCT_1:def 8 :: thesis: ( not x1 in dom f or not x2 in dom f or not f . x1 = f . x2 or x1 = x2 )
assume that
A3: x1 in dom f and
A4: x2 in dom f and
A5: f . x1 = f . x2 ; :: thesis: x1 = x2
reconsider k1 = x1, k2 = x2 as Element of NAT by A3, A4, FUNCT_2:def 1;
A6: f . k2 = insloc k2 by A1;
f . k1 = insloc k1 by A1;
hence x1 = x2 by A5, A6; :: thesis: verum
end;
A7: NAT c= rng f
proof
let x be set ; :: according to TARSKI:def 3 :: thesis: ( not x in NAT or x in rng f )
A8: dom f = NAT by FUNCT_2:def 1;
assume x in NAT ; :: thesis: x in rng f
then reconsider l = x as Instruction-Location of SCM+FSA by AMI_1:def 4;
reconsider i = l as Element of NAT by ORDINAL1:def 13;
insloc i = f . i by A1;
hence x in rng f by A8, FUNCT_1:def 5; :: thesis: verum
end;
rng f c= NAT by RELAT_1:def 19;
then rng f = NAT by A7, XBOOLE_0:def 10;
then f is onto by FUNCT_2:def 3;
hence f is bijective by A2; :: thesis: for k being Element of NAT holds
( f . (k + 1) in SUCC (f . k) & ( for j being Element of NAT st f . j in SUCC (f . k) holds
k <= j ) )

let k be Element of NAT ; :: thesis: ( f . (k + 1) in SUCC (f . k) & ( for j being Element of NAT st f . j in SUCC (f . k) holds
k <= j ) )

A9: f . k = insloc k by A1;
reconsider k1 = k + 1 as Element of NAT by ORDINAL1:def 13;
f . k1 in NAT by ORDINAL1:def 13;
then A10: f . (k + 1) = insloc (k + 1) by A1;
A11: SUCC (f . k) = {(f . k),(Next (f . k))} by Th84;
hence f . (k + 1) in SUCC (f . k) by A10, A9, TARSKI:def 2; :: thesis: for j being Element of NAT st f . j in SUCC (f . k) holds
k <= j

A12: dom f = NAT by FUNCT_2:def 1;
let j be Element of NAT ; :: thesis: ( f . j in SUCC (f . k) implies k <= j )
assume A13: f . j in SUCC (f . k) ; :: thesis: k <= j
per cases ( f . j = f . k or f . j = Next (f . k) ) by A11, A13, TARSKI:def 2;
end;