Metamath Proof Explorer


Theorem sticksstones2

Description: The range function on strictly monotone functions with finite domain and codomain is an injective mapping onto K -elemental sets. (Contributed by metakunt, 27-Sep-2024)

Ref Expression
Hypotheses sticksstones2.1 ( 𝜑𝑁 ∈ ℕ0 )
sticksstones2.2 ( 𝜑𝐾 ∈ ℕ0 )
sticksstones2.3 𝐵 = { 𝑎 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑎 ) = 𝐾 }
sticksstones2.4 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) }
sticksstones2.5 𝐹 = ( 𝑧𝐴 ↦ ran 𝑧 )
Assertion sticksstones2 ( 𝜑𝐹 : 𝐴1-1𝐵 )

Proof

Step Hyp Ref Expression
1 sticksstones2.1 ( 𝜑𝑁 ∈ ℕ0 )
2 sticksstones2.2 ( 𝜑𝐾 ∈ ℕ0 )
3 sticksstones2.3 𝐵 = { 𝑎 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑎 ) = 𝐾 }
4 sticksstones2.4 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) }
5 sticksstones2.5 𝐹 = ( 𝑧𝐴 ↦ ran 𝑧 )
6 fveqeq2 ( 𝑎 = ran 𝑧 → ( ( ♯ ‘ 𝑎 ) = 𝐾 ↔ ( ♯ ‘ ran 𝑧 ) = 𝐾 ) )
7 fzfid ( ( 𝜑𝑧𝐴 ) → ( 1 ... 𝑁 ) ∈ Fin )
8 eleq1w ( 𝑓 = 𝑧 → ( 𝑓𝐴𝑧𝐴 ) )
9 feq1 ( 𝑓 = 𝑧 → ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ↔ 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ) )
10 fveq1 ( 𝑓 = 𝑧 → ( 𝑓𝑥 ) = ( 𝑧𝑥 ) )
11 fveq1 ( 𝑓 = 𝑧 → ( 𝑓𝑦 ) = ( 𝑧𝑦 ) )
12 10 11 breq12d ( 𝑓 = 𝑧 → ( ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ↔ ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) )
13 12 imbi2d ( 𝑓 = 𝑧 → ( ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) )
14 13 ralbidv ( 𝑓 = 𝑧 → ( ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) )
15 14 ralbidv ( 𝑓 = 𝑧 → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) )
16 9 15 anbi12d ( 𝑓 = 𝑧 → ( ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ↔ ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) ) )
17 8 16 bibi12d ( 𝑓 = 𝑧 → ( ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ) ↔ ( 𝑧𝐴 ↔ ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) ) ) )
18 eqabb ( 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) } ↔ ∀ 𝑓 ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ) )
19 4 18 mpbi 𝑓 ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) )
20 19 spi ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) )
21 17 20 chvarvv ( 𝑧𝐴 ↔ ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) )
22 21 bilani ( ( 𝜑𝑧𝐴 ) → ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ) )
23 22 simpld ( ( 𝜑𝑧𝐴 ) → 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
24 23 frnd ( ( 𝜑𝑧𝐴 ) → ran 𝑧 ⊆ ( 1 ... 𝑁 ) )
25 7 24 sselpwd ( ( 𝜑𝑧𝐴 ) → ran 𝑧 ∈ 𝒫 ( 1 ... 𝑁 ) )
26 23 ffnd ( ( 𝜑𝑧𝐴 ) → 𝑧 Fn ( 1 ... 𝐾 ) )
27 hashfn ( 𝑧 Fn ( 1 ... 𝐾 ) → ( ♯ ‘ 𝑧 ) = ( ♯ ‘ ( 1 ... 𝐾 ) ) )
28 26 27 syl ( ( 𝜑𝑧𝐴 ) → ( ♯ ‘ 𝑧 ) = ( ♯ ‘ ( 1 ... 𝐾 ) ) )
29 2 adantr ( ( 𝜑𝑧𝐴 ) → 𝐾 ∈ ℕ0 )
30 hashfz1 ( 𝐾 ∈ ℕ0 → ( ♯ ‘ ( 1 ... 𝐾 ) ) = 𝐾 )
31 29 30 syl ( ( 𝜑𝑧𝐴 ) → ( ♯ ‘ ( 1 ... 𝐾 ) ) = 𝐾 )
32 28 31 eqtrd ( ( 𝜑𝑧𝐴 ) → ( ♯ ‘ 𝑧 ) = 𝐾 )
33 32 eqcomd ( ( 𝜑𝑧𝐴 ) → 𝐾 = ( ♯ ‘ 𝑧 ) )
34 fzfid ( ( 𝜑𝑧𝐴 ) → ( 1 ... 𝐾 ) ∈ Fin )
35 elfznn ( 𝑎 ∈ ( 1 ... 𝐾 ) → 𝑎 ∈ ℕ )
36 35 3ad2ant3 ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → 𝑎 ∈ ℕ )
37 36 nnred ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → 𝑎 ∈ ℝ )
38 37 adantr ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → 𝑎 ∈ ℝ )
39 elfznn ( 𝑏 ∈ ( 1 ... 𝐾 ) → 𝑏 ∈ ℕ )
40 39 nnred ( 𝑏 ∈ ( 1 ... 𝐾 ) → 𝑏 ∈ ℝ )
41 40 adantl ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → 𝑏 ∈ ℝ )
42 lttri2 ( ( 𝑎 ∈ ℝ ∧ 𝑏 ∈ ℝ ) → ( 𝑎𝑏 ↔ ( 𝑎 < 𝑏𝑏 < 𝑎 ) ) )
43 38 41 42 syl2anc ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑎𝑏 ↔ ( 𝑎 < 𝑏𝑏 < 𝑎 ) ) )
44 23 3adant3 ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
45 simp3 ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → 𝑎 ∈ ( 1 ... 𝐾 ) )
46 44 45 ffvelcdmd ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → ( 𝑧𝑎 ) ∈ ( 1 ... 𝑁 ) )
47 46 adantr ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑧𝑎 ) ∈ ( 1 ... 𝑁 ) )
48 47 adantr ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑎 < 𝑏 ) → ( 𝑧𝑎 ) ∈ ( 1 ... 𝑁 ) )
49 elfznn ( ( 𝑧𝑎 ) ∈ ( 1 ... 𝑁 ) → ( 𝑧𝑎 ) ∈ ℕ )
50 48 49 syl ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑎 < 𝑏 ) → ( 𝑧𝑎 ) ∈ ℕ )
51 50 nnred ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑎 < 𝑏 ) → ( 𝑧𝑎 ) ∈ ℝ )
52 22 simprd ( ( 𝜑𝑧𝐴 ) → ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) )
53 52 3adant3 ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) )
54 53 adantr ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) )
55 45 adantr ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → 𝑎 ∈ ( 1 ... 𝐾 ) )
56 simpr ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → 𝑏 ∈ ( 1 ... 𝐾 ) )
57 breq1 ( 𝑥 = 𝑎 → ( 𝑥 < 𝑦𝑎 < 𝑦 ) )
58 fveq2 ( 𝑥 = 𝑎 → ( 𝑧𝑥 ) = ( 𝑧𝑎 ) )
59 58 breq1d ( 𝑥 = 𝑎 → ( ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ↔ ( 𝑧𝑎 ) < ( 𝑧𝑦 ) ) )
60 57 59 imbi12d ( 𝑥 = 𝑎 → ( ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ↔ ( 𝑎 < 𝑦 → ( 𝑧𝑎 ) < ( 𝑧𝑦 ) ) ) )
61 breq2 ( 𝑦 = 𝑏 → ( 𝑎 < 𝑦𝑎 < 𝑏 ) )
62 fveq2 ( 𝑦 = 𝑏 → ( 𝑧𝑦 ) = ( 𝑧𝑏 ) )
63 62 breq2d ( 𝑦 = 𝑏 → ( ( 𝑧𝑎 ) < ( 𝑧𝑦 ) ↔ ( 𝑧𝑎 ) < ( 𝑧𝑏 ) ) )
64 61 63 imbi12d ( 𝑦 = 𝑏 → ( ( 𝑎 < 𝑦 → ( 𝑧𝑎 ) < ( 𝑧𝑦 ) ) ↔ ( 𝑎 < 𝑏 → ( 𝑧𝑎 ) < ( 𝑧𝑏 ) ) ) )
65 60 64 rspc2v ( ( 𝑎 ∈ ( 1 ... 𝐾 ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) → ( 𝑎 < 𝑏 → ( 𝑧𝑎 ) < ( 𝑧𝑏 ) ) ) )
66 55 56 65 syl2anc ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) → ( 𝑎 < 𝑏 → ( 𝑧𝑎 ) < ( 𝑧𝑏 ) ) ) )
67 54 66 mpd ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑎 < 𝑏 → ( 𝑧𝑎 ) < ( 𝑧𝑏 ) ) )
68 67 imp ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑎 < 𝑏 ) → ( 𝑧𝑎 ) < ( 𝑧𝑏 ) )
69 51 68 ltned ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑎 < 𝑏 ) → ( 𝑧𝑎 ) ≠ ( 𝑧𝑏 ) )
70 44 ffvelcdmda ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑧𝑏 ) ∈ ( 1 ... 𝑁 ) )
71 elfznn ( ( 𝑧𝑏 ) ∈ ( 1 ... 𝑁 ) → ( 𝑧𝑏 ) ∈ ℕ )
72 70 71 syl ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑧𝑏 ) ∈ ℕ )
73 72 nnred ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑧𝑏 ) ∈ ℝ )
74 73 adantr ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 < 𝑎 ) → ( 𝑧𝑏 ) ∈ ℝ )
75 breq1 ( 𝑥 = 𝑏 → ( 𝑥 < 𝑦𝑏 < 𝑦 ) )
76 fveq2 ( 𝑥 = 𝑏 → ( 𝑧𝑥 ) = ( 𝑧𝑏 ) )
77 76 breq1d ( 𝑥 = 𝑏 → ( ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ↔ ( 𝑧𝑏 ) < ( 𝑧𝑦 ) ) )
78 75 77 imbi12d ( 𝑥 = 𝑏 → ( ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) ↔ ( 𝑏 < 𝑦 → ( 𝑧𝑏 ) < ( 𝑧𝑦 ) ) ) )
79 breq2 ( 𝑦 = 𝑎 → ( 𝑏 < 𝑦𝑏 < 𝑎 ) )
80 fveq2 ( 𝑦 = 𝑎 → ( 𝑧𝑦 ) = ( 𝑧𝑎 ) )
81 80 breq2d ( 𝑦 = 𝑎 → ( ( 𝑧𝑏 ) < ( 𝑧𝑦 ) ↔ ( 𝑧𝑏 ) < ( 𝑧𝑎 ) ) )
82 79 81 imbi12d ( 𝑦 = 𝑎 → ( ( 𝑏 < 𝑦 → ( 𝑧𝑏 ) < ( 𝑧𝑦 ) ) ↔ ( 𝑏 < 𝑎 → ( 𝑧𝑏 ) < ( 𝑧𝑎 ) ) ) )
83 78 82 rspc2v ( ( 𝑏 ∈ ( 1 ... 𝐾 ) ∧ 𝑎 ∈ ( 1 ... 𝐾 ) ) → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) → ( 𝑏 < 𝑎 → ( 𝑧𝑏 ) < ( 𝑧𝑎 ) ) ) )
84 56 55 83 syl2anc ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑧𝑥 ) < ( 𝑧𝑦 ) ) → ( 𝑏 < 𝑎 → ( 𝑧𝑏 ) < ( 𝑧𝑎 ) ) ) )
85 54 84 mpd ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑏 < 𝑎 → ( 𝑧𝑏 ) < ( 𝑧𝑎 ) ) )
86 85 imp ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 < 𝑎 ) → ( 𝑧𝑏 ) < ( 𝑧𝑎 ) )
87 74 86 ltned ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 < 𝑎 ) → ( 𝑧𝑏 ) ≠ ( 𝑧𝑎 ) )
88 87 necomd ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 < 𝑎 ) → ( 𝑧𝑎 ) ≠ ( 𝑧𝑏 ) )
89 69 88 jaodan ( ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) ∧ ( 𝑎 < 𝑏𝑏 < 𝑎 ) ) → ( 𝑧𝑎 ) ≠ ( 𝑧𝑏 ) )
90 89 ex ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( ( 𝑎 < 𝑏𝑏 < 𝑎 ) → ( 𝑧𝑎 ) ≠ ( 𝑧𝑏 ) ) )
91 43 90 sylbid ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( 𝑎𝑏 → ( 𝑧𝑎 ) ≠ ( 𝑧𝑏 ) ) )
92 91 necon4d ( ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) ∧ 𝑏 ∈ ( 1 ... 𝐾 ) ) → ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) )
93 92 ralrimiva ( ( 𝜑𝑧𝐴𝑎 ∈ ( 1 ... 𝐾 ) ) → ∀ 𝑏 ∈ ( 1 ... 𝐾 ) ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) )
94 93 3expa ( ( ( 𝜑𝑧𝐴 ) ∧ 𝑎 ∈ ( 1 ... 𝐾 ) ) → ∀ 𝑏 ∈ ( 1 ... 𝐾 ) ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) )
95 94 ralrimiva ( ( 𝜑𝑧𝐴 ) → ∀ 𝑎 ∈ ( 1 ... 𝐾 ) ∀ 𝑏 ∈ ( 1 ... 𝐾 ) ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) )
96 23 95 jca ( ( 𝜑𝑧𝐴 ) → ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑎 ∈ ( 1 ... 𝐾 ) ∀ 𝑏 ∈ ( 1 ... 𝐾 ) ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) ) )
97 dff13 ( 𝑧 : ( 1 ... 𝐾 ) –1-1→ ( 1 ... 𝑁 ) ↔ ( 𝑧 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑎 ∈ ( 1 ... 𝐾 ) ∀ 𝑏 ∈ ( 1 ... 𝐾 ) ( ( 𝑧𝑎 ) = ( 𝑧𝑏 ) → 𝑎 = 𝑏 ) ) )
98 96 97 sylibr ( ( 𝜑𝑧𝐴 ) → 𝑧 : ( 1 ... 𝐾 ) –1-1→ ( 1 ... 𝑁 ) )
99 hashf1rn ( ( ( 1 ... 𝐾 ) ∈ Fin ∧ 𝑧 : ( 1 ... 𝐾 ) –1-1→ ( 1 ... 𝑁 ) ) → ( ♯ ‘ 𝑧 ) = ( ♯ ‘ ran 𝑧 ) )
100 34 98 99 syl2anc ( ( 𝜑𝑧𝐴 ) → ( ♯ ‘ 𝑧 ) = ( ♯ ‘ ran 𝑧 ) )
101 33 100 eqtrd ( ( 𝜑𝑧𝐴 ) → 𝐾 = ( ♯ ‘ ran 𝑧 ) )
102 101 eqcomd ( ( 𝜑𝑧𝐴 ) → ( ♯ ‘ ran 𝑧 ) = 𝐾 )
103 6 25 102 elrabd ( ( 𝜑𝑧𝐴 ) → ran 𝑧 ∈ { 𝑎 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑎 ) = 𝐾 } )
104 3 eleq2i ( ran 𝑧𝐵 ↔ ran 𝑧 ∈ { 𝑎 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑎 ) = 𝐾 } )
105 104 a1i ( ( 𝜑𝑧𝐴 ) → ( ran 𝑧𝐵 ↔ ran 𝑧 ∈ { 𝑎 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑎 ) = 𝐾 } ) )
106 103 105 mpbird ( ( 𝜑𝑧𝐴 ) → ran 𝑧𝐵 )
107 106 5 fmptd ( 𝜑𝐹 : 𝐴𝐵 )
108 1 3ad2ant1 ( ( 𝜑𝑖𝐴𝑗𝐴 ) → 𝑁 ∈ ℕ0 )
109 108 adantr ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝑁 ∈ ℕ0 )
110 2 3ad2ant1 ( ( 𝜑𝑖𝐴𝑗𝐴 ) → 𝐾 ∈ ℕ0 )
111 110 adantr ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝐾 ∈ ℕ0 )
112 simpl2 ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝑖𝐴 )
113 simpl3 ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝑗𝐴 )
114 simpr ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝑖𝑗 )
115 fveq2 ( 𝑟 = 𝑠 → ( 𝑖𝑟 ) = ( 𝑖𝑠 ) )
116 fveq2 ( 𝑟 = 𝑠 → ( 𝑗𝑟 ) = ( 𝑗𝑠 ) )
117 115 116 neeq12d ( 𝑟 = 𝑠 → ( ( 𝑖𝑟 ) ≠ ( 𝑗𝑟 ) ↔ ( 𝑖𝑠 ) ≠ ( 𝑗𝑠 ) ) )
118 117 cbvrabv { 𝑟 ∈ ( 1 ... 𝐾 ) ∣ ( 𝑖𝑟 ) ≠ ( 𝑗𝑟 ) } = { 𝑠 ∈ ( 1 ... 𝐾 ) ∣ ( 𝑖𝑠 ) ≠ ( 𝑗𝑠 ) }
119 118 infeq1i inf ( { 𝑟 ∈ ( 1 ... 𝐾 ) ∣ ( 𝑖𝑟 ) ≠ ( 𝑗𝑟 ) } , ℝ , < ) = inf ( { 𝑠 ∈ ( 1 ... 𝐾 ) ∣ ( 𝑖𝑠 ) ≠ ( 𝑗𝑠 ) } , ℝ , < )
120 109 111 4 112 113 114 119 sticksstones1 ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ran 𝑖 ≠ ran 𝑗 )
121 5 a1i ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝐹 = ( 𝑧𝐴 ↦ ran 𝑧 ) )
122 simpr ( ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) ∧ 𝑧 = 𝑖 ) → 𝑧 = 𝑖 )
123 122 rneqd ( ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) ∧ 𝑧 = 𝑖 ) → ran 𝑧 = ran 𝑖 )
124 fzfid ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ( 1 ... 𝑁 ) ∈ Fin )
125 eleq1w ( 𝑓 = 𝑖 → ( 𝑓𝐴𝑖𝐴 ) )
126 feq1 ( 𝑓 = 𝑖 → ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ↔ 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ) )
127 fveq1 ( 𝑓 = 𝑖 → ( 𝑓𝑥 ) = ( 𝑖𝑥 ) )
128 fveq1 ( 𝑓 = 𝑖 → ( 𝑓𝑦 ) = ( 𝑖𝑦 ) )
129 127 128 breq12d ( 𝑓 = 𝑖 → ( ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ↔ ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) )
130 129 imbi2d ( 𝑓 = 𝑖 → ( ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) )
131 130 2ralbidv ( 𝑓 = 𝑖 → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) )
132 126 131 anbi12d ( 𝑓 = 𝑖 → ( ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ↔ ( 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) ) )
133 125 132 bibi12d ( 𝑓 = 𝑖 → ( ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ) ↔ ( 𝑖𝐴 ↔ ( 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) ) ) )
134 133 20 chvarvv ( 𝑖𝐴 ↔ ( 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) )
135 134 bilani ( ( 𝜑𝑖𝐴 ) → ( 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑖𝑥 ) < ( 𝑖𝑦 ) ) ) )
136 135 simpld ( ( 𝜑𝑖𝐴 ) → 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
137 136 3adant3 ( ( 𝜑𝑖𝐴𝑗𝐴 ) → 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
138 137 adantr ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → 𝑖 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
139 138 frnd ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ran 𝑖 ⊆ ( 1 ... 𝑁 ) )
140 124 139 sselpwd ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ran 𝑖 ∈ 𝒫 ( 1 ... 𝑁 ) )
141 121 123 112 140 fvmptd ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ( 𝐹𝑖 ) = ran 𝑖 )
142 simpr ( ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) ∧ 𝑧 = 𝑗 ) → 𝑧 = 𝑗 )
143 142 rneqd ( ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) ∧ 𝑧 = 𝑗 ) → ran 𝑧 = ran 𝑗 )
144 fzfid ( 𝜑 → ( 1 ... 𝑁 ) ∈ Fin )
145 144 3ad2ant1 ( ( 𝜑𝑖𝐴𝑗𝐴 ) → ( 1 ... 𝑁 ) ∈ Fin )
146 eleq1w ( 𝑓 = 𝑗 → ( 𝑓𝐴𝑗𝐴 ) )
147 feq1 ( 𝑓 = 𝑗 → ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ↔ 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ) )
148 fveq1 ( 𝑓 = 𝑗 → ( 𝑓𝑥 ) = ( 𝑗𝑥 ) )
149 fveq1 ( 𝑓 = 𝑗 → ( 𝑓𝑦 ) = ( 𝑗𝑦 ) )
150 148 149 breq12d ( 𝑓 = 𝑗 → ( ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ↔ ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) )
151 150 imbi2d ( 𝑓 = 𝑗 → ( ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) )
152 151 2ralbidv ( 𝑓 = 𝑗 → ( ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ↔ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) )
153 147 152 anbi12d ( 𝑓 = 𝑗 → ( ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ↔ ( 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) ) )
154 146 153 bibi12d ( 𝑓 = 𝑗 → ( ( 𝑓𝐴 ↔ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) ) ↔ ( 𝑗𝐴 ↔ ( 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) ) ) )
155 154 20 chvarvv ( 𝑗𝐴 ↔ ( 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) )
156 155 bilani ( ( 𝜑𝑗𝐴 ) → ( 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑗𝑥 ) < ( 𝑗𝑦 ) ) ) )
157 156 simpld ( ( 𝜑𝑗𝐴 ) → 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
158 157 3adant2 ( ( 𝜑𝑖𝐴𝑗𝐴 ) → 𝑗 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) )
159 158 frnd ( ( 𝜑𝑖𝐴𝑗𝐴 ) → ran 𝑗 ⊆ ( 1 ... 𝑁 ) )
160 145 159 sselpwd ( ( 𝜑𝑖𝐴𝑗𝐴 ) → ran 𝑗 ∈ 𝒫 ( 1 ... 𝑁 ) )
161 160 adantr ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ran 𝑗 ∈ 𝒫 ( 1 ... 𝑁 ) )
162 121 143 113 161 fvmptd ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ( 𝐹𝑗 ) = ran 𝑗 )
163 120 141 162 3netr4d ( ( ( 𝜑𝑖𝐴𝑗𝐴 ) ∧ 𝑖𝑗 ) → ( 𝐹𝑖 ) ≠ ( 𝐹𝑗 ) )
164 163 ex ( ( 𝜑𝑖𝐴𝑗𝐴 ) → ( 𝑖𝑗 → ( 𝐹𝑖 ) ≠ ( 𝐹𝑗 ) ) )
165 164 necon4d ( ( 𝜑𝑖𝐴𝑗𝐴 ) → ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) )
166 165 3expa ( ( ( 𝜑𝑖𝐴 ) ∧ 𝑗𝐴 ) → ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) )
167 166 ralrimiva ( ( 𝜑𝑖𝐴 ) → ∀ 𝑗𝐴 ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) )
168 167 ralrimiva ( 𝜑 → ∀ 𝑖𝐴𝑗𝐴 ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) )
169 107 168 jca ( 𝜑 → ( 𝐹 : 𝐴𝐵 ∧ ∀ 𝑖𝐴𝑗𝐴 ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) ) )
170 dff13 ( 𝐹 : 𝐴1-1𝐵 ↔ ( 𝐹 : 𝐴𝐵 ∧ ∀ 𝑖𝐴𝑗𝐴 ( ( 𝐹𝑖 ) = ( 𝐹𝑗 ) → 𝑖 = 𝑗 ) ) )
171 169 170 sylibr ( 𝜑𝐹 : 𝐴1-1𝐵 )