Metamath Proof Explorer


Theorem funline

Description: Show that the Line relationship is a function. (Contributed by Scott Fenton, 25-Oct-2013) (Revised by Mario Carneiro, 19-Apr-2014)

Ref Expression
Assertion funline Fun Line

Proof

Step Hyp Ref Expression
1 reeanv ( ∃ 𝑛 ∈ ℕ ∃ 𝑚 ∈ ℕ ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) ↔ ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) )
2 eqtr3 ( ( 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) → 𝑙 = 𝑘 )
3 2 ad2ant2l ( ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 )
4 3 a1i ( ( 𝑛 ∈ ℕ ∧ 𝑚 ∈ ℕ ) → ( ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 ) )
5 4 rexlimivv ( ∃ 𝑛 ∈ ℕ ∃ 𝑚 ∈ ℕ ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 )
6 1 5 sylbir ( ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 )
7 6 gen2 𝑙𝑘 ( ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 )
8 eqeq1 ( 𝑙 = 𝑘 → ( 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ↔ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) )
9 8 anbi2d ( 𝑙 = 𝑘 → ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) )
10 9 rexbidv ( 𝑙 = 𝑘 → ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) )
11 fveq2 ( 𝑛 = 𝑚 → ( 𝔼 ‘ 𝑛 ) = ( 𝔼 ‘ 𝑚 ) )
12 11 eleq2d ( 𝑛 = 𝑚 → ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ↔ 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ) )
13 11 eleq2d ( 𝑛 = 𝑚 → ( 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ↔ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ) )
14 12 13 3anbi12d ( 𝑛 = 𝑚 → ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ↔ ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ) )
15 14 anbi1d ( 𝑛 = 𝑚 → ( ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) )
16 15 cbvrexvw ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) )
17 10 16 bitrdi ( 𝑙 = 𝑘 → ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) )
18 17 mo4 ( ∃* 𝑙𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ↔ ∀ 𝑙𝑘 ( ( ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ∧ ∃ 𝑚 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑚 ) ∧ 𝑎𝑏 ) ∧ 𝑘 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) ) → 𝑙 = 𝑘 ) )
19 7 18 mpbir ∃* 𝑙𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear )
20 19 funoprab Fun { ⟨ ⟨ 𝑎 , 𝑏 ⟩ , 𝑙 ⟩ ∣ ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) }
21 df-line2 Line = { ⟨ ⟨ 𝑎 , 𝑏 ⟩ , 𝑙 ⟩ ∣ ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) }
22 21 funeqi ( Fun Line ↔ Fun { ⟨ ⟨ 𝑎 , 𝑏 ⟩ , 𝑙 ⟩ ∣ ∃ 𝑛 ∈ ℕ ( ( 𝑎 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑏 ∈ ( 𝔼 ‘ 𝑛 ) ∧ 𝑎𝑏 ) ∧ 𝑙 = [ ⟨ 𝑎 , 𝑏 ⟩ ] Colinear ) } )
23 20 22 mpbir Fun Line