Metamath Proof Explorer


Theorem cnvf1olem

Description: Lemma for cnvf1o . (Contributed by Mario Carneiro, 27-Apr-2014)

Ref Expression
Assertion cnvf1olem ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → ( 𝐶 𝐴𝐵 = { 𝐶 } ) )

Proof

Step Hyp Ref Expression
1 simprr ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐶 = { 𝐵 } )
2 1st2nd ( ( Rel 𝐴𝐵𝐴 ) → 𝐵 = ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ )
3 2 adantrr ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐵 = ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ )
4 3 sneqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐵 } = { ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ } )
5 4 cnveqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐵 } = { ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ } )
6 5 unieqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐵 } = { ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ } )
7 1 6 eqtrd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐶 = { ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ } )
8 opswap { ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ } = ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩
9 7 8 eqtrdi ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐶 = ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ )
10 simprl ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐵𝐴 )
11 3 10 eqeltrrd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ ∈ 𝐴 )
12 fvex ( 2nd𝐵 ) ∈ V
13 fvex ( 1st𝐵 ) ∈ V
14 12 13 opelcnv ( ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ ∈ 𝐴 ↔ ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ ∈ 𝐴 )
15 11 14 sylibr ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ ∈ 𝐴 )
16 9 15 eqeltrd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐶 𝐴 )
17 opswap { ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ } = ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩
18 17 eqcomi ⟨ ( 1st𝐵 ) , ( 2nd𝐵 ) ⟩ = { ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ }
19 9 sneqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐶 } = { ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ } )
20 19 cnveqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐶 } = { ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ } )
21 20 unieqd ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → { 𝐶 } = { ⟨ ( 2nd𝐵 ) , ( 1st𝐵 ) ⟩ } )
22 18 3 21 3eqtr4a ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → 𝐵 = { 𝐶 } )
23 16 22 jca ( ( Rel 𝐴 ∧ ( 𝐵𝐴𝐶 = { 𝐵 } ) ) → ( 𝐶 𝐴𝐵 = { 𝐶 } ) )