set P = F ';' G;
set k = (card F) -' 1;
A1:
dom (F ';' G) = (dom (CutLastLoc F)) \/ (dom (Reloc (G,((card F) -' 1))))
by FUNCT_4:def 1;
A2:
dom (Reloc (G,((card F) -' 1))) = { (m + ((card F) -' 1)) where m is Nat : m in dom (IncAddr (G,((card F) -' 1))) }
by VALUED_1:def 12;
A3:
(card G) - 1 >= 0
by NAT_1:14, XREAL_1:48;
then
((card F) -' 1) + ((card G) - 1) >= ((card F) -' 1) + 0
by XREAL_1:6;
then A4: (((card F) -' 1) + (card G)) -' 1 =
(((card F) -' 1) + (card G)) - 1
by XREAL_0:def 2
.=
((card F) -' 1) + ((card G) - 1)
.=
((card F) -' 1) + ((card G) -' 1)
by A3, XREAL_0:def 2
;
let f be Nat; COMPOS_1:def 15 ( (F ';' G) . f = halt S & f in dom (F ';' G) implies f = LastLoc (F ';' G) )
assume that
A5:
(F ';' G) . f = halt S
and
A6:
f in dom (F ';' G)
; f = LastLoc (F ';' G)
per cases
( f in dom (CutLastLoc F) or f in dom (Reloc (G,((card F) -' 1))) )
by A1, A6, XBOOLE_0:def 3;
suppose A9:
f in dom (Reloc (G,((card F) -' 1)))
;
f = LastLoc (F ';' G)then consider m being
Nat such that A10:
f = m + ((card F) -' 1)
and A11:
m in dom (IncAddr (G,((card F) -' 1)))
by A2;
A12:
m in dom G
by A11, Def9;
then A13:
G /. m = G . m
by PARTFUN1:def 6;
IncAddr (
(G /. m),
((card F) -' 1)) =
(IncAddr (G,((card F) -' 1))) . m
by A12, Def9
.=
(Reloc (G,((card F) -' 1))) . (m + ((card F) -' 1))
by A11, VALUED_1:def 12
.=
halt S
by A5, A9, A10, FUNCT_4:13
;
then
G . m = halt S
by A13, COMPOS_0:12;
then m =
LastLoc G
by A12, Def7
.=
(card G) -' 1
by AFINSQ_1:70
;
then m + ((card F) -' 1) =
(((card F) + (card G)) -' 1) -' 1
by A4, NAT_1:14, NAT_D:38
.=
(card (F ';' G)) -' 1
by Th11
;
hence
f = LastLoc (F ';' G)
by A10, AFINSQ_1:70;
verum end; end;