let I be Program of ; for l being Element of NAT holds UsedIntLoc (Directed (I,l)) = UsedIntLoc I
let l be Element of NAT ; UsedIntLoc (Directed (I,l)) = UsedIntLoc I
consider UIL being Function of the Instructions of SCM+FSA,(Fin Int-Locations) such that
A1:
for i being Instruction of SCM+FSA holds UIL . i = UsedIntLoc i
and
A2:
UsedIntLoc I = Union (UIL * I)
by SF_MASTR:def 2;
consider UIL2 being Function of the Instructions of SCM+FSA,(Fin Int-Locations) such that
A3:
for i being Instruction of SCM+FSA holds UIL2 . i = UsedIntLoc i
and
A4:
UsedIntLoc (Directed (I,l)) = Union (UIL2 * (Directed (I,l)))
by SF_MASTR:def 2;
A5:
for c being Element of the Instructions of SCM+FSA holds UIL . c = UIL2 . c
A6:
dom UIL = the Instructions of SCM+FSA
by FUNCT_2:def 1;
A7:
UIL . (halt SCM+FSA) = {}
by A1, SF_MASTR:13;
A8: UIL . (goto l) =
UsedIntLoc (goto l)
by A1
.=
{}
by SF_MASTR:15
;
A9:
rng I c= the Instructions of SCM+FSA
by RELAT_1:def 19;
UIL * (Directed (I,l)) =
UIL * (I +~ ((halt SCM+FSA),(goto l)))
by SCMFSA6A:def 1
.=
UIL * (((id the Instructions of SCM+FSA) +* ((halt SCM+FSA),(goto l))) * I)
by A9, FUNCT_7:116
.=
(UIL * ((id the Instructions of SCM+FSA) +* ((halt SCM+FSA),(goto l)))) * I
by RELAT_1:36
.=
UIL * I
by A6, A7, A8, FUNCT_7:108
;
hence
UsedIntLoc (Directed (I,l)) = UsedIntLoc I
by A2, A4, A5, FUNCT_2:63; verum