Metamath Proof Explorer


Theorem f1resfz0f1d

Description: If a function with a sequence of nonnegative integers (starting at 0) as its domain is one-to-one when 0 is removed, and if the range of that restriction does not contain the function's value at the removed integer, then the function is itself one-to-one. (Contributed by BTernaryTau, 4-Oct-2023) (Revised by Mingli Yuan, 15-Aug-2026)

Ref Expression
Hypotheses f1resfz0f1d.1 ( 𝜑𝐾 ∈ ℕ0 )
f1resfz0f1d.2 ( 𝜑𝐹 : ( 0 ... 𝐾 ) ⟶ 𝑉 )
f1resfz0f1d.3 ( 𝜑 → Fun ( 𝐹 ↾ ( 1 ... 𝐾 ) ) )
f1resfz0f1d.4 ( 𝜑 → ( ( 𝐹 “ { 0 } ) ∩ ( 𝐹 “ ( 1 ... 𝐾 ) ) ) = ∅ )
Assertion f1resfz0f1d ( 𝜑𝐹 : ( 0 ... 𝐾 ) –1-1𝑉 )

Proof

Step Hyp Ref Expression
1 f1resfz0f1d.1 ( 𝜑𝐾 ∈ ℕ0 )
2 f1resfz0f1d.2 ( 𝜑𝐹 : ( 0 ... 𝐾 ) ⟶ 𝑉 )
3 f1resfz0f1d.3 ( 𝜑 → Fun ( 𝐹 ↾ ( 1 ... 𝐾 ) ) )
4 f1resfz0f1d.4 ( 𝜑 → ( ( 𝐹 “ { 0 } ) ∩ ( 𝐹 “ ( 1 ... 𝐾 ) ) ) = ∅ )
5 fz1ssfz0 ( 1 ... 𝐾 ) ⊆ ( 0 ... 𝐾 )
6 5 a1i ( 𝜑 → ( 1 ... 𝐾 ) ⊆ ( 0 ... 𝐾 ) )
7 2 6 fssresd ( 𝜑 → ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) ⟶ 𝑉 )
8 df-f1 ( ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) –1-1𝑉 ↔ ( ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) ⟶ 𝑉 ∧ Fun ( 𝐹 ↾ ( 1 ... 𝐾 ) ) ) )
9 8 a1i ( 𝜑 → ( ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) –1-1𝑉 ↔ ( ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) ⟶ 𝑉 ∧ Fun ( 𝐹 ↾ ( 1 ... 𝐾 ) ) ) ) )
10 7 3 9 mpbir2and ( 𝜑 → ( 𝐹 ↾ ( 1 ... 𝐾 ) ) : ( 1 ... 𝐾 ) –1-1𝑉 )
11 0elfz ( 𝐾 ∈ ℕ0 → 0 ∈ ( 0 ... 𝐾 ) )
12 snssi ( 0 ∈ ( 0 ... 𝐾 ) → { 0 } ⊆ ( 0 ... 𝐾 ) )
13 1 11 12 3syl ( 𝜑 → { 0 } ⊆ ( 0 ... 𝐾 ) )
14 2 13 fssresd ( 𝜑 → ( 𝐹 ↾ { 0 } ) : { 0 } ⟶ 𝑉 )
15 eqidd ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) → 0 = 0 )
16 0nn0 0 ∈ ℕ0
17 fveqeq2 ( 𝑥 = 0 → ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) ↔ ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) ) )
18 eqeq1 ( 𝑥 = 0 → ( 𝑥 = 𝑦 ↔ 0 = 𝑦 ) )
19 17 18 imbi12d ( 𝑥 = 0 → ( ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 𝑥 = 𝑦 ) ↔ ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 0 = 𝑦 ) ) )
20 fveq2 ( 𝑦 = 0 → ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) )
21 20 eqeq2d ( 𝑦 = 0 → ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) ↔ ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) ) )
22 eqeq2 ( 𝑦 = 0 → ( 0 = 𝑦 ↔ 0 = 0 ) )
23 21 22 imbi12d ( 𝑦 = 0 → ( ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 0 = 𝑦 ) ↔ ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) → 0 = 0 ) ) )
24 19 23 2ralsng ( ( 0 ∈ ℕ0 ∧ 0 ∈ ℕ0 ) → ( ∀ 𝑥 ∈ { 0 } ∀ 𝑦 ∈ { 0 } ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 𝑥 = 𝑦 ) ↔ ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) → 0 = 0 ) ) )
25 16 16 24 mp2an ( ∀ 𝑥 ∈ { 0 } ∀ 𝑦 ∈ { 0 } ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 𝑥 = 𝑦 ) ↔ ( ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 0 ) → 0 = 0 ) )
26 15 25 mpbir 𝑥 ∈ { 0 } ∀ 𝑦 ∈ { 0 } ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 𝑥 = 𝑦 )
27 dff13 ( ( 𝐹 ↾ { 0 } ) : { 0 } –1-1𝑉 ↔ ( ( 𝐹 ↾ { 0 } ) : { 0 } ⟶ 𝑉 ∧ ∀ 𝑥 ∈ { 0 } ∀ 𝑦 ∈ { 0 } ( ( ( 𝐹 ↾ { 0 } ) ‘ 𝑥 ) = ( ( 𝐹 ↾ { 0 } ) ‘ 𝑦 ) → 𝑥 = 𝑦 ) ) )
28 14 26 27 sylanblrc ( 𝜑 → ( 𝐹 ↾ { 0 } ) : { 0 } –1-1𝑉 )
29 uncom ( ( 1 ... 𝐾 ) ∪ { 0 } ) = ( { 0 } ∪ ( 1 ... 𝐾 ) )
30 fz0sn0fz1 ( 𝐾 ∈ ℕ0 → ( 0 ... 𝐾 ) = ( { 0 } ∪ ( 1 ... 𝐾 ) ) )
31 1 30 syl ( 𝜑 → ( 0 ... 𝐾 ) = ( { 0 } ∪ ( 1 ... 𝐾 ) ) )
32 29 31 eqtr4id ( 𝜑 → ( ( 1 ... 𝐾 ) ∪ { 0 } ) = ( 0 ... 𝐾 ) )
33 0nelfz1 0 ∉ ( 1 ... 𝐾 )
34 33 neli ¬ 0 ∈ ( 1 ... 𝐾 )
35 disjsn ( ( ( 1 ... 𝐾 ) ∩ { 0 } ) = ∅ ↔ ¬ 0 ∈ ( 1 ... 𝐾 ) )
36 34 35 mpbir ( ( 1 ... 𝐾 ) ∩ { 0 } ) = ∅
37 uneqdifeq ( ( ( 1 ... 𝐾 ) ⊆ ( 0 ... 𝐾 ) ∧ ( ( 1 ... 𝐾 ) ∩ { 0 } ) = ∅ ) → ( ( ( 1 ... 𝐾 ) ∪ { 0 } ) = ( 0 ... 𝐾 ) ↔ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) = { 0 } ) )
38 5 36 37 mp2an ( ( ( 1 ... 𝐾 ) ∪ { 0 } ) = ( 0 ... 𝐾 ) ↔ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) = { 0 } )
39 32 38 sylib ( 𝜑 → ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) = { 0 } )
40 39 eqcomd ( 𝜑 → { 0 } = ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) )
41 40 reseq2d ( 𝜑 → ( 𝐹 ↾ { 0 } ) = ( 𝐹 ↾ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) )
42 eqidd ( 𝜑𝑉 = 𝑉 )
43 41 40 42 f1eq123d ( 𝜑 → ( ( 𝐹 ↾ { 0 } ) : { 0 } –1-1𝑉 ↔ ( 𝐹 ↾ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) : ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) –1-1𝑉 ) )
44 28 43 mpbid ( 𝜑 → ( 𝐹 ↾ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) : ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) –1-1𝑉 )
45 40 imaeq2d ( 𝜑 → ( 𝐹 “ { 0 } ) = ( 𝐹 “ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) )
46 45 ineq2d ( 𝜑 → ( ( 𝐹 “ ( 1 ... 𝐾 ) ) ∩ ( 𝐹 “ { 0 } ) ) = ( ( 𝐹 “ ( 1 ... 𝐾 ) ) ∩ ( 𝐹 “ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) ) )
47 incom ( ( 𝐹 “ { 0 } ) ∩ ( 𝐹 “ ( 1 ... 𝐾 ) ) ) = ( ( 𝐹 “ ( 1 ... 𝐾 ) ) ∩ ( 𝐹 “ { 0 } ) )
48 47 4 eqtr3id ( 𝜑 → ( ( 𝐹 “ ( 1 ... 𝐾 ) ) ∩ ( 𝐹 “ { 0 } ) ) = ∅ )
49 46 48 eqtr3d ( 𝜑 → ( ( 𝐹 “ ( 1 ... 𝐾 ) ) ∩ ( 𝐹 “ ( ( 0 ... 𝐾 ) ∖ ( 1 ... 𝐾 ) ) ) ) = ∅ )
50 6 2 10 44 49 f1resrcmplf1d ( 𝜑𝐹 : ( 0 ... 𝐾 ) –1-1𝑉 )