Metamath Proof Explorer


Theorem f1oresrab

Description: Build a bijection between restricted abstract builders, given a bijection between the base classes, deduction version. (Contributed by Thierry Arnoux, 17-Aug-2018)

Ref Expression
Hypotheses f1oresrab.1 𝐹 = ( 𝑥𝐴𝐶 )
f1oresrab.2 ( 𝜑𝐹 : 𝐴1-1-onto𝐵 )
f1oresrab.3 ( ( 𝜑𝑥𝐴𝑦 = 𝐶 ) → ( 𝜒𝜓 ) )
Assertion f1oresrab ( 𝜑 → ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )

Proof

Step Hyp Ref Expression
1 f1oresrab.1 𝐹 = ( 𝑥𝐴𝐶 )
2 f1oresrab.2 ( 𝜑𝐹 : 𝐴1-1-onto𝐵 )
3 f1oresrab.3 ( ( 𝜑𝑥𝐴𝑦 = 𝐶 ) → ( 𝜒𝜓 ) )
4 f1ofun ( 𝐹 : 𝐴1-1-onto𝐵 → Fun 𝐹 )
5 funcnvcnv ( Fun 𝐹 → Fun 𝐹 )
6 2 4 5 3syl ( 𝜑 → Fun 𝐹 )
7 f1ocnv ( 𝐹 : 𝐴1-1-onto𝐵 𝐹 : 𝐵1-1-onto𝐴 )
8 f1of1 ( 𝐹 : 𝐵1-1-onto𝐴 𝐹 : 𝐵1-1𝐴 )
9 2 7 8 3syl ( 𝜑 𝐹 : 𝐵1-1𝐴 )
10 ssrab2 { 𝑦𝐵𝜒 } ⊆ 𝐵
11 f1ores ( ( 𝐹 : 𝐵1-1𝐴 ∧ { 𝑦𝐵𝜒 } ⊆ 𝐵 ) → ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ ( 𝐹 “ { 𝑦𝐵𝜒 } ) )
12 9 10 11 sylancl ( 𝜑 → ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ ( 𝐹 “ { 𝑦𝐵𝜒 } ) )
13 1 mptpreima ( 𝐹 “ { 𝑦𝐵𝜒 } ) = { 𝑥𝐴𝐶 ∈ { 𝑦𝐵𝜒 } }
14 3 3expia ( ( 𝜑𝑥𝐴 ) → ( 𝑦 = 𝐶 → ( 𝜒𝜓 ) ) )
15 14 alrimiv ( ( 𝜑𝑥𝐴 ) → ∀ 𝑦 ( 𝑦 = 𝐶 → ( 𝜒𝜓 ) ) )
16 f1of ( 𝐹 : 𝐴1-1-onto𝐵𝐹 : 𝐴𝐵 )
17 2 16 syl ( 𝜑𝐹 : 𝐴𝐵 )
18 1 fmpt ( ∀ 𝑥𝐴 𝐶𝐵𝐹 : 𝐴𝐵 )
19 17 18 sylibr ( 𝜑 → ∀ 𝑥𝐴 𝐶𝐵 )
20 19 r19.21bi ( ( 𝜑𝑥𝐴 ) → 𝐶𝐵 )
21 elrab3t ( ( ∀ 𝑦 ( 𝑦 = 𝐶 → ( 𝜒𝜓 ) ) ∧ 𝐶𝐵 ) → ( 𝐶 ∈ { 𝑦𝐵𝜒 } ↔ 𝜓 ) )
22 15 20 21 syl2anc ( ( 𝜑𝑥𝐴 ) → ( 𝐶 ∈ { 𝑦𝐵𝜒 } ↔ 𝜓 ) )
23 22 rabbidva ( 𝜑 → { 𝑥𝐴𝐶 ∈ { 𝑦𝐵𝜒 } } = { 𝑥𝐴𝜓 } )
24 13 23 eqtrid ( 𝜑 → ( 𝐹 “ { 𝑦𝐵𝜒 } ) = { 𝑥𝐴𝜓 } )
25 24 f1oeq3d ( 𝜑 → ( ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ ( 𝐹 “ { 𝑦𝐵𝜒 } ) ↔ ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ { 𝑥𝐴𝜓 } ) )
26 12 25 mpbid ( 𝜑 → ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ { 𝑥𝐴𝜓 } )
27 f1orescnv ( ( Fun 𝐹 ∧ ( 𝐹 ↾ { 𝑦𝐵𝜒 } ) : { 𝑦𝐵𝜒 } –1-1-onto→ { 𝑥𝐴𝜓 } ) → ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )
28 6 26 27 syl2anc ( 𝜑 → ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )
29 rescnvcnv ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) = ( 𝐹 ↾ { 𝑥𝐴𝜓 } )
30 f1oeq1 ( ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) = ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) → ( ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } ↔ ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } ) )
31 29 30 ax-mp ( ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } ↔ ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )
32 28 31 sylib ( 𝜑 → ( 𝐹 ↾ { 𝑥𝐴𝜓 } ) : { 𝑥𝐴𝜓 } –1-1-onto→ { 𝑦𝐵𝜒 } )