Metamath Proof Explorer


Theorem riotass2

Description: Restriction of a unique element to a smaller class. (Contributed by NM, 21-Aug-2011) (Revised by NM, 22-Mar-2013)

Ref Expression
Assertion riotass2 ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( 𝑥𝐴 𝜑 ) = ( 𝑥𝐵 𝜓 ) )

Proof

Step Hyp Ref Expression
1 reuss2 ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ∃! 𝑥𝐴 𝜑 )
2 simplr ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ∀ 𝑥𝐴 ( 𝜑𝜓 ) )
3 riotasbc ( ∃! 𝑥𝐴 𝜑[ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜑 )
4 riotacl ( ∃! 𝑥𝐴 𝜑 → ( 𝑥𝐴 𝜑 ) ∈ 𝐴 )
5 rspsbc ( ( 𝑥𝐴 𝜑 ) ∈ 𝐴 → ( ∀ 𝑥𝐴 ( 𝜑𝜓 ) → [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] ( 𝜑𝜓 ) ) )
6 sbcimg ( ( 𝑥𝐴 𝜑 ) ∈ 𝐴 → ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] ( 𝜑𝜓 ) ↔ ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜑[ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ) ) )
7 5 6 sylibd ( ( 𝑥𝐴 𝜑 ) ∈ 𝐴 → ( ∀ 𝑥𝐴 ( 𝜑𝜓 ) → ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜑[ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ) ) )
8 4 7 syl ( ∃! 𝑥𝐴 𝜑 → ( ∀ 𝑥𝐴 ( 𝜑𝜓 ) → ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜑[ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ) ) )
9 3 8 mpid ( ∃! 𝑥𝐴 𝜑 → ( ∀ 𝑥𝐴 ( 𝜑𝜓 ) → [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ) )
10 1 2 9 sylc ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 )
11 1 4 syl ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( 𝑥𝐴 𝜑 ) ∈ 𝐴 )
12 ssel ( 𝐴𝐵 → ( ( 𝑥𝐴 𝜑 ) ∈ 𝐴 → ( 𝑥𝐴 𝜑 ) ∈ 𝐵 ) )
13 12 ad2antrr ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( ( 𝑥𝐴 𝜑 ) ∈ 𝐴 → ( 𝑥𝐴 𝜑 ) ∈ 𝐵 ) )
14 11 13 mpd ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( 𝑥𝐴 𝜑 ) ∈ 𝐵 )
15 simprr ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ∃! 𝑥𝐵 𝜓 )
16 nfriota1 𝑥 ( 𝑥𝐴 𝜑 )
17 16 nfsbc1 𝑥 [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓
18 sbceq1a ( 𝑥 = ( 𝑥𝐴 𝜑 ) → ( 𝜓[ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ) )
19 16 17 18 riota2f ( ( ( 𝑥𝐴 𝜑 ) ∈ 𝐵 ∧ ∃! 𝑥𝐵 𝜓 ) → ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ↔ ( 𝑥𝐵 𝜓 ) = ( 𝑥𝐴 𝜑 ) ) )
20 14 15 19 syl2anc ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( [ ( 𝑥𝐴 𝜑 ) / 𝑥 ] 𝜓 ↔ ( 𝑥𝐵 𝜓 ) = ( 𝑥𝐴 𝜑 ) ) )
21 10 20 mpbid ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( 𝑥𝐵 𝜓 ) = ( 𝑥𝐴 𝜑 ) )
22 21 eqcomd ( ( ( 𝐴𝐵 ∧ ∀ 𝑥𝐴 ( 𝜑𝜓 ) ) ∧ ( ∃ 𝑥𝐴 𝜑 ∧ ∃! 𝑥𝐵 𝜓 ) ) → ( 𝑥𝐴 𝜑 ) = ( 𝑥𝐵 𝜓 ) )