Metamath Proof Explorer


Theorem fargshiftfo

Description: If a function is onto, then also the shifted function is onto. (Contributed by Alexander van der Vekens, 24-Nov-2017)

Ref Expression
Hypothesis fargshift.g G = x 0 ..^ F F x + 1
Assertion fargshiftfo N 0 F : 1 N onto dom E G : 0 ..^ F onto dom E

Proof

Step Hyp Ref Expression
1 fargshift.g G = x 0 ..^ F F x + 1
2 fof F : 1 N onto dom E F : 1 N dom E
3 1 fargshiftf N 0 F : 1 N dom E G : 0 ..^ F dom E
4 2 3 sylan2 N 0 F : 1 N onto dom E G : 0 ..^ F dom E
5 1 rnmpt ran G = y | x 0 ..^ F y = F x + 1
6 fofn F : 1 N onto dom E F Fn 1 N
7 fnrnfv F Fn 1 N ran F = y | z 1 N y = F z
8 6 7 syl F : 1 N onto dom E ran F = y | z 1 N y = F z
9 8 adantl N 0 F : 1 N onto dom E ran F = y | z 1 N y = F z
10 df-fo F : 1 N onto dom E F Fn 1 N ran F = dom E
11 10 bilani N 0 F : 1 N onto dom E F Fn 1 N ran F = dom E
12 eqeq1 ran F = dom E ran F = y | z 1 N y = F z dom E = y | z 1 N y = F z
13 eqcom dom E = y | z 1 N y = F z y | z 1 N y = F z = dom E
14 12 13 bitrdi ran F = dom E ran F = y | z 1 N y = F z y | z 1 N y = F z = dom E
15 ffn F : 1 N dom E F Fn 1 N
16 fseq1hash N 0 F Fn 1 N F = N
17 15 16 sylan2 N 0 F : 1 N dom E F = N
18 2 17 sylan2 N 0 F : 1 N onto dom E F = N
19 fz0add1fz1 N 0 x 0 ..^ N x + 1 1 N
20 nn0z N 0 N
21 fzval3 N 1 N = 1 ..^ N + 1
22 20 21 syl N 0 1 N = 1 ..^ N + 1
23 nn0cn N 0 N
24 1cnd N 0 1
25 23 24 addcomd N 0 N + 1 = 1 + N
26 25 oveq2d N 0 1 ..^ N + 1 = 1 ..^ 1 + N
27 22 26 eqtrd N 0 1 N = 1 ..^ 1 + N
28 27 eleq2d N 0 z 1 N z 1 ..^ 1 + N
29 28 biimpa N 0 z 1 N z 1 ..^ 1 + N
30 20 adantr N 0 z 1 N N
31 fzosubel3 z 1 ..^ 1 + N N z 1 0 ..^ N
32 29 30 31 syl2anc N 0 z 1 N z 1 0 ..^ N
33 oveq1 x = z 1 x + 1 = z - 1 + 1
34 33 eqeq2d x = z 1 z = x + 1 z = z - 1 + 1
35 34 adantl N 0 z 1 N x = z 1 z = x + 1 z = z - 1 + 1
36 elfzelz z 1 N z
37 36 zcnd z 1 N z
38 37 adantl N 0 z 1 N z
39 1cnd N 0 z 1 N 1
40 38 39 npcand N 0 z 1 N z - 1 + 1 = z
41 40 eqcomd N 0 z 1 N z = z - 1 + 1
42 32 35 41 rspcedvd N 0 z 1 N x 0 ..^ N z = x + 1
43 fveq2 z = x + 1 F z = F x + 1
44 43 eqeq2d z = x + 1 y = F z y = F x + 1
45 44 adantl N 0 z = x + 1 y = F z y = F x + 1
46 19 42 45 rexxfrd N 0 z 1 N y = F z x 0 ..^ N y = F x + 1
47 46 adantr N 0 F = N z 1 N y = F z x 0 ..^ N y = F x + 1
48 oveq2 F = N 0 ..^ F = 0 ..^ N
49 48 rexeqdv F = N x 0 ..^ F y = F x + 1 x 0 ..^ N y = F x + 1
50 49 bibi2d F = N z 1 N y = F z x 0 ..^ F y = F x + 1 z 1 N y = F z x 0 ..^ N y = F x + 1
51 50 adantl N 0 F = N z 1 N y = F z x 0 ..^ F y = F x + 1 z 1 N y = F z x 0 ..^ N y = F x + 1
52 47 51 mpbird N 0 F = N z 1 N y = F z x 0 ..^ F y = F x + 1
53 18 52 syldan N 0 F : 1 N onto dom E z 1 N y = F z x 0 ..^ F y = F x + 1
54 53 abbidv N 0 F : 1 N onto dom E y | z 1 N y = F z = y | x 0 ..^ F y = F x + 1
55 54 eqeq1d N 0 F : 1 N onto dom E y | z 1 N y = F z = dom E y | x 0 ..^ F y = F x + 1 = dom E
56 55 biimpcd y | z 1 N y = F z = dom E N 0 F : 1 N onto dom E y | x 0 ..^ F y = F x + 1 = dom E
57 14 56 biimtrdi ran F = dom E ran F = y | z 1 N y = F z N 0 F : 1 N onto dom E y | x 0 ..^ F y = F x + 1 = dom E
58 57 com23 ran F = dom E N 0 F : 1 N onto dom E ran F = y | z 1 N y = F z y | x 0 ..^ F y = F x + 1 = dom E
59 58 adantl F Fn 1 N ran F = dom E N 0 F : 1 N onto dom E ran F = y | z 1 N y = F z y | x 0 ..^ F y = F x + 1 = dom E
60 11 59 mpcom N 0 F : 1 N onto dom E ran F = y | z 1 N y = F z y | x 0 ..^ F y = F x + 1 = dom E
61 9 60 mpd N 0 F : 1 N onto dom E y | x 0 ..^ F y = F x + 1 = dom E
62 5 61 eqtrid N 0 F : 1 N onto dom E ran G = dom E
63 dffo2 G : 0 ..^ F onto dom E G : 0 ..^ F dom E ran G = dom E
64 4 62 63 sylanbrc N 0 F : 1 N onto dom E G : 0 ..^ F onto dom E