Metamath Proof Explorer


Theorem perpln2

Description: Derive a line from perpendicularity. (Contributed by Thierry Arnoux, 27-Nov-2019)

Ref Expression
Hypotheses perpln.l 𝐿 = ( LineG ‘ 𝐺 )
perpln.1 ( 𝜑𝐺 ∈ TarskiG )
perpln.2 ( 𝜑𝐴 ( ⟂G ‘ 𝐺 ) 𝐵 )
Assertion perpln2 ( 𝜑𝐵 ∈ ran 𝐿 )

Proof

Step Hyp Ref Expression
1 perpln.l 𝐿 = ( LineG ‘ 𝐺 )
2 perpln.1 ( 𝜑𝐺 ∈ TarskiG )
3 perpln.2 ( 𝜑𝐴 ( ⟂G ‘ 𝐺 ) 𝐵 )
4 df-perpg ⟂G = ( 𝑔 ∈ V ↦ { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran ( LineG ‘ 𝑔 ) ∧ 𝑏 ∈ ran ( LineG ‘ 𝑔 ) ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ) } )
5 simpr ( ( 𝜑𝑔 = 𝐺 ) → 𝑔 = 𝐺 )
6 5 fveq2d ( ( 𝜑𝑔 = 𝐺 ) → ( LineG ‘ 𝑔 ) = ( LineG ‘ 𝐺 ) )
7 6 1 eqtr4di ( ( 𝜑𝑔 = 𝐺 ) → ( LineG ‘ 𝑔 ) = 𝐿 )
8 7 rneqd ( ( 𝜑𝑔 = 𝐺 ) → ran ( LineG ‘ 𝑔 ) = ran 𝐿 )
9 8 eleq2d ( ( 𝜑𝑔 = 𝐺 ) → ( 𝑎 ∈ ran ( LineG ‘ 𝑔 ) ↔ 𝑎 ∈ ran 𝐿 ) )
10 8 eleq2d ( ( 𝜑𝑔 = 𝐺 ) → ( 𝑏 ∈ ran ( LineG ‘ 𝑔 ) ↔ 𝑏 ∈ ran 𝐿 ) )
11 9 10 anbi12d ( ( 𝜑𝑔 = 𝐺 ) → ( ( 𝑎 ∈ ran ( LineG ‘ 𝑔 ) ∧ 𝑏 ∈ ran ( LineG ‘ 𝑔 ) ) ↔ ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ) )
12 5 fveq2d ( ( 𝜑𝑔 = 𝐺 ) → ( ∟G ‘ 𝑔 ) = ( ∟G ‘ 𝐺 ) )
13 12 eleq2d ( ( 𝜑𝑔 = 𝐺 ) → ( ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ↔ ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) )
14 13 ralbidv ( ( 𝜑𝑔 = 𝐺 ) → ( ∀ 𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ↔ ∀ 𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) )
15 14 rexralbidv ( ( 𝜑𝑔 = 𝐺 ) → ( ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ↔ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) )
16 11 15 anbi12d ( ( 𝜑𝑔 = 𝐺 ) → ( ( ( 𝑎 ∈ ran ( LineG ‘ 𝑔 ) ∧ 𝑏 ∈ ran ( LineG ‘ 𝑔 ) ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ) ↔ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) ) )
17 16 opabbidv ( ( 𝜑𝑔 = 𝐺 ) → { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran ( LineG ‘ 𝑔 ) ∧ 𝑏 ∈ ran ( LineG ‘ 𝑔 ) ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝑔 ) ) } = { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } )
18 2 elexd ( 𝜑𝐺 ∈ V )
19 1 fvexi 𝐿 ∈ V
20 rnexg ( 𝐿 ∈ V → ran 𝐿 ∈ V )
21 19 20 mp1i ( 𝜑 → ran 𝐿 ∈ V )
22 21 21 xpexd ( 𝜑 → ( ran 𝐿 × ran 𝐿 ) ∈ V )
23 opabssxp { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } ⊆ ( ran 𝐿 × ran 𝐿 )
24 23 a1i ( 𝜑 → { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } ⊆ ( ran 𝐿 × ran 𝐿 ) )
25 22 24 ssexd ( 𝜑 → { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } ∈ V )
26 4 17 18 25 fvmptd2 ( 𝜑 → ( ⟂G ‘ 𝐺 ) = { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } )
27 26 rneqd ( 𝜑 → ran ( ⟂G ‘ 𝐺 ) = ran { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } )
28 23 rnssi ran { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } ⊆ ran ( ran 𝐿 × ran 𝐿 )
29 27 28 eqsstrdi ( 𝜑 → ran ( ⟂G ‘ 𝐺 ) ⊆ ran ( ran 𝐿 × ran 𝐿 ) )
30 rnxpss ran ( ran 𝐿 × ran 𝐿 ) ⊆ ran 𝐿
31 29 30 sstrdi ( 𝜑 → ran ( ⟂G ‘ 𝐺 ) ⊆ ran 𝐿 )
32 relopabv Rel { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) }
33 26 releqd ( 𝜑 → ( Rel ( ⟂G ‘ 𝐺 ) ↔ Rel { ⟨ 𝑎 , 𝑏 ⟩ ∣ ( ( 𝑎 ∈ ran 𝐿𝑏 ∈ ran 𝐿 ) ∧ ∃ 𝑥 ∈ ( 𝑎𝑏 ) ∀ 𝑢𝑎𝑣𝑏 ⟨“ 𝑢 𝑥 𝑣 ”⟩ ∈ ( ∟G ‘ 𝐺 ) ) } ) )
34 32 33 mpbiri ( 𝜑 → Rel ( ⟂G ‘ 𝐺 ) )
35 brrelex12 ( ( Rel ( ⟂G ‘ 𝐺 ) ∧ 𝐴 ( ⟂G ‘ 𝐺 ) 𝐵 ) → ( 𝐴 ∈ V ∧ 𝐵 ∈ V ) )
36 34 3 35 syl2anc ( 𝜑 → ( 𝐴 ∈ V ∧ 𝐵 ∈ V ) )
37 36 simpld ( 𝜑𝐴 ∈ V )
38 36 simprd ( 𝜑𝐵 ∈ V )
39 brelrng ( ( 𝐴 ∈ V ∧ 𝐵 ∈ V ∧ 𝐴 ( ⟂G ‘ 𝐺 ) 𝐵 ) → 𝐵 ∈ ran ( ⟂G ‘ 𝐺 ) )
40 37 38 3 39 syl3anc ( 𝜑𝐵 ∈ ran ( ⟂G ‘ 𝐺 ) )
41 31 40 sseldd ( 𝜑𝐵 ∈ ran 𝐿 )