Metamath Proof Explorer


Theorem hashimarn

Description: The size of the image of a one-to-one function E under the range of a function F which is a one-to-one function into the domain of E equals the size of the function F . (Contributed by Alexander van der Vekens, 4-Feb-2018) (Proof shortened by AV, 4-May-2021)

Ref Expression
Assertion hashimarn ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) → ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 → ( ♯ ‘ ( 𝐸 “ ran 𝐹 ) ) = ( ♯ ‘ 𝐹 ) ) )

Proof

Step Hyp Ref Expression
1 f1f ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) ⟶ dom 𝐸 )
2 1 frnd ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 → ran 𝐹 ⊆ dom 𝐸 )
3 2 adantl ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ran 𝐹 ⊆ dom 𝐸 )
4 ssdmres ( ran 𝐹 ⊆ dom 𝐸 ↔ dom ( 𝐸 ↾ ran 𝐹 ) = ran 𝐹 )
5 3 4 sylib ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → dom ( 𝐸 ↾ ran 𝐹 ) = ran 𝐹 )
6 5 fveq2d ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ dom ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ ran 𝐹 ) )
7 df-ima ( 𝐸 “ ran 𝐹 ) = ran ( 𝐸 ↾ ran 𝐹 )
8 7 fveq2i ( ♯ ‘ ( 𝐸 “ ran 𝐹 ) ) = ( ♯ ‘ ran ( 𝐸 ↾ ran 𝐹 ) )
9 f1fun ( 𝐸 : dom 𝐸1-1→ ran 𝐸 → Fun 𝐸 )
10 funres ( Fun 𝐸 → Fun ( 𝐸 ↾ ran 𝐹 ) )
11 10 funfnd ( Fun 𝐸 → ( 𝐸 ↾ ran 𝐹 ) Fn dom ( 𝐸 ↾ ran 𝐹 ) )
12 9 11 syl ( 𝐸 : dom 𝐸1-1→ ran 𝐸 → ( 𝐸 ↾ ran 𝐹 ) Fn dom ( 𝐸 ↾ ran 𝐹 ) )
13 12 ad2antrr ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( 𝐸 ↾ ran 𝐹 ) Fn dom ( 𝐸 ↾ ran 𝐹 ) )
14 hashfn ( ( 𝐸 ↾ ran 𝐹 ) Fn dom ( 𝐸 ↾ ran 𝐹 ) → ( ♯ ‘ ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ dom ( 𝐸 ↾ ran 𝐹 ) ) )
15 13 14 syl ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ dom ( 𝐸 ↾ ran 𝐹 ) ) )
16 ovex ( 0 ..^ ( ♯ ‘ 𝐹 ) ) ∈ V
17 fex ( ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) ⟶ dom 𝐸 ∧ ( 0 ..^ ( ♯ ‘ 𝐹 ) ) ∈ V ) → 𝐹 ∈ V )
18 1 16 17 sylancl ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸𝐹 ∈ V )
19 rnexg ( 𝐹 ∈ V → ran 𝐹 ∈ V )
20 18 19 syl ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 → ran 𝐹 ∈ V )
21 simpll ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → 𝐸 : dom 𝐸1-1→ ran 𝐸 )
22 f1ssres ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸 ∧ ran 𝐹 ⊆ dom 𝐸 ) → ( 𝐸 ↾ ran 𝐹 ) : ran 𝐹1-1→ ran 𝐸 )
23 21 3 22 syl2anc ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( 𝐸 ↾ ran 𝐹 ) : ran 𝐹1-1→ ran 𝐸 )
24 hashf1rn ( ( ran 𝐹 ∈ V ∧ ( 𝐸 ↾ ran 𝐹 ) : ran 𝐹1-1→ ran 𝐸 ) → ( ♯ ‘ ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ ran ( 𝐸 ↾ ran 𝐹 ) ) )
25 20 23 24 syl2an2 ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ ran ( 𝐸 ↾ ran 𝐹 ) ) )
26 15 25 eqtr3d ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ dom ( 𝐸 ↾ ran 𝐹 ) ) = ( ♯ ‘ ran ( 𝐸 ↾ ran 𝐹 ) ) )
27 8 26 eqtr4id ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ ( 𝐸 “ ran 𝐹 ) ) = ( ♯ ‘ dom ( 𝐸 ↾ ran 𝐹 ) ) )
28 hashf1rn ( ( ( 0 ..^ ( ♯ ‘ 𝐹 ) ) ∈ V ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ 𝐹 ) = ( ♯ ‘ ran 𝐹 ) )
29 16 28 mpan ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 → ( ♯ ‘ 𝐹 ) = ( ♯ ‘ ran 𝐹 ) )
30 29 adantl ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ 𝐹 ) = ( ♯ ‘ ran 𝐹 ) )
31 6 27 30 3eqtr4d ( ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) ∧ 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 ) → ( ♯ ‘ ( 𝐸 “ ran 𝐹 ) ) = ( ♯ ‘ 𝐹 ) )
32 31 ex ( ( 𝐸 : dom 𝐸1-1→ ran 𝐸𝐸𝑉 ) → ( 𝐹 : ( 0 ..^ ( ♯ ‘ 𝐹 ) ) –1-1→ dom 𝐸 → ( ♯ ‘ ( 𝐸 “ ran 𝐹 ) ) = ( ♯ ‘ 𝐹 ) ) )