let m be Element of NAT ; for I being preProgram of SCM+FSA holds card (ProgramPart (Relocated I,m)) = card I
deffunc H1( Element of NAT ) -> Element of NAT = $1;
let I be preProgram of SCM+FSA ; card (ProgramPart (Relocated I,m)) = card I
set B = { l where l is Element of NAT : H1(l) in dom I } ;
A1:
for x being set st x in dom I holds
ex d being Element of NAT st x = H1(d)
A3:
for d1, d2 being Element of NAT st H1(d1) = H1(d2) holds
d1 = d2
;
A4:
dom I,{ l where l is Element of NAT : H1(l) in dom I } are_equipotent
from FUNCT_7:sch 3(A1, A3);
defpred S1[ Element of NAT ] means $1 in dom I;
deffunc H2( Element of NAT ) -> Element of NAT = $1 + m;
defpred S2[ Element of NAT ] means H1($1) in dom I;
set D = { l where l is Element of NAT : S2[l] } ;
set C = { H2(l) where l is Element of NAT : l in { l where l is Element of NAT : H1(l) in dom I } } ;
defpred S3[ set ] means verum;
{ l where l is Element of NAT : S2[l] } is Subset of NAT
from DOMAIN_1:sch 7();
then A5:
{ l where l is Element of NAT : H1(l) in dom I } c= NAT
;
A6:
for d1, d2 being Element of NAT st H2(d1) = H2(d2) holds
d1 = d2
;
A7:
{ l where l is Element of NAT : H1(l) in dom I } ,{ H2(l) where l is Element of NAT : l in { l where l is Element of NAT : H1(l) in dom I } } are_equipotent
from FUNCT_7:sch 4(A5, A6);
set C = { H2(l) where l is Element of NAT : ( l in { n where n is Element of NAT : S1[n] } & S3[l] ) } ;
set A = { H2(l) where l is Element of NAT : ( S1[l] & S3[l] ) } ;
A8:
{ H2(l) where l is Element of NAT : ( l in { n where n is Element of NAT : S1[n] } & S3[l] ) } = { (l + m) where l is Element of NAT : l in { l where l is Element of NAT : H1(l) in dom I } }
{ H2(l) where l is Element of NAT : ( S1[l] & S3[l] ) } = { (l + m) where l is Element of NAT : l in dom I }
then A9:
dom (Shift I,m) = { H2(l) where l is Element of NAT : ( S1[l] & S3[l] ) }
by VALUED_1:def 12;
{ H2(l) where l is Element of NAT : ( l in { n where n is Element of NAT : S1[n] } & S3[l] ) } = { H2(l) where l is Element of NAT : ( S1[l] & S3[l] ) }
from FRAENKEL:sch 14();
then A10:
dom (Shift I,m), dom I are_equipotent
by A4, A7, A8, A9, WELLORD2:22;
thus card (ProgramPart (Relocated I,m)) =
card (Reloc (ProgramPart I),m)
by AMISTD_2:69
.=
card (Reloc I,m)
by RELAT_1:209
.=
card (dom (Reloc I,m))
by CARD_1:104
.=
card (dom (Shift I,m))
by AMISTD_2:def 15
.=
card (dom I)
by A10, CARD_1:21
.=
card I
by CARD_1:104
; verum