Metamath Proof Explorer


Theorem sigarcol

Description: Given three points A , B and C such that -. A = B , the point C lies on the line going through A and B iff the corresponding signed area is zero. That justifies the usage of signed area as a collinearity indicator. (Contributed by Saveliy Skresanov, 22-Sep-2017)

Ref Expression
Hypotheses sigarcol.sigar 𝐺 = ( 𝑥 ∈ ℂ , 𝑦 ∈ ℂ ↦ ( ℑ ‘ ( ( ∗ ‘ 𝑥 ) · 𝑦 ) ) )
sigarcol.a ( 𝜑 → ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ) )
sigarcol.b ( 𝜑 → ¬ 𝐴 = 𝐵 )
Assertion sigarcol ( 𝜑 → ( ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ↔ ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 sigarcol.sigar 𝐺 = ( 𝑥 ∈ ℂ , 𝑦 ∈ ℂ ↦ ( ℑ ‘ ( ( ∗ ‘ 𝑥 ) · 𝑦 ) ) )
2 sigarcol.a ( 𝜑 → ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ) )
3 sigarcol.b ( 𝜑 → ¬ 𝐴 = 𝐵 )
4 2 simp2d ( 𝜑𝐵 ∈ ℂ )
5 2 simp3d ( 𝜑𝐶 ∈ ℂ )
6 2 simp1d ( 𝜑𝐴 ∈ ℂ )
7 4 5 6 3jca ( 𝜑 → ( 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ∧ 𝐴 ∈ ℂ ) )
8 7 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ∧ 𝐴 ∈ ℂ ) )
9 3 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ¬ 𝐴 = 𝐵 )
10 1 sigarperm ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ) → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = ( ( 𝐵𝐴 ) 𝐺 ( 𝐶𝐴 ) ) )
11 2 10 syl ( 𝜑 → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = ( ( 𝐵𝐴 ) 𝐺 ( 𝐶𝐴 ) ) )
12 1 sigarperm ( ( 𝐵 ∈ ℂ ∧ 𝐶 ∈ ℂ ∧ 𝐴 ∈ ℂ ) → ( ( 𝐵𝐴 ) 𝐺 ( 𝐶𝐴 ) ) = ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) )
13 7 12 syl ( 𝜑 → ( ( 𝐵𝐴 ) 𝐺 ( 𝐶𝐴 ) ) = ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) )
14 11 13 eqtrd ( 𝜑 → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) )
15 14 eqeq1d ( 𝜑 → ( ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ↔ ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = 0 ) )
16 15 biimpa ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = 0 )
17 1 8 9 16 sigardiv ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) ∈ ℝ )
18 5 4 subcld ( 𝜑 → ( 𝐶𝐵 ) ∈ ℂ )
19 18 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐶𝐵 ) ∈ ℂ )
20 6 4 subcld ( 𝜑 → ( 𝐴𝐵 ) ∈ ℂ )
21 20 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐴𝐵 ) ∈ ℂ )
22 6 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → 𝐴 ∈ ℂ )
23 4 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → 𝐵 ∈ ℂ )
24 9 neqned ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → 𝐴𝐵 )
25 22 23 24 subne0d ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐴𝐵 ) ≠ 0 )
26 19 21 25 divcan1d ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) = ( 𝐶𝐵 ) )
27 26 oveq2d ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐵 + ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) ) = ( 𝐵 + ( 𝐶𝐵 ) ) )
28 5 adantr ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → 𝐶 ∈ ℂ )
29 23 28 pncan3d ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ( 𝐵 + ( 𝐶𝐵 ) ) = 𝐶 )
30 27 29 eqtr2d ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → 𝐶 = ( 𝐵 + ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) ) )
31 oveq1 ( 𝑡 = ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) → ( 𝑡 · ( 𝐴𝐵 ) ) = ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) )
32 31 oveq2d ( 𝑡 = ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) → ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) = ( 𝐵 + ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) ) )
33 32 rspceeqv ( ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( ( ( 𝐶𝐵 ) / ( 𝐴𝐵 ) ) · ( 𝐴𝐵 ) ) ) ) → ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) )
34 17 30 33 syl2anc ( ( 𝜑 ∧ ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) → ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) )
35 34 ex ( 𝜑 → ( ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 → ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) )
36 14 3ad2ant1 ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) )
37 4 3ad2ant1 ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → 𝐵 ∈ ℂ )
38 simp2 ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → 𝑡 ∈ ℝ )
39 38 recnd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → 𝑡 ∈ ℂ )
40 6 3ad2ant1 ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → 𝐴 ∈ ℂ )
41 40 37 subcld ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( 𝐴𝐵 ) ∈ ℂ )
42 39 41 mulcld ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( 𝑡 · ( 𝐴𝐵 ) ) ∈ ℂ )
43 simp3 ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) )
44 37 42 43 mvrladdd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( 𝐶𝐵 ) = ( 𝑡 · ( 𝐴𝐵 ) ) )
45 44 oveq1d ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = ( ( 𝑡 · ( 𝐴𝐵 ) ) 𝐺 ( 𝐴𝐵 ) ) )
46 39 41 mulcomd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( 𝑡 · ( 𝐴𝐵 ) ) = ( ( 𝐴𝐵 ) · 𝑡 ) )
47 46 oveq1d ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝑡 · ( 𝐴𝐵 ) ) 𝐺 ( 𝐴𝐵 ) ) = ( ( ( 𝐴𝐵 ) · 𝑡 ) 𝐺 ( 𝐴𝐵 ) ) )
48 45 47 eqtrd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐶𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = ( ( ( 𝐴𝐵 ) · 𝑡 ) 𝐺 ( 𝐴𝐵 ) ) )
49 41 39 mulcld ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐵 ) · 𝑡 ) ∈ ℂ )
50 1 sigarac ( ( ( ( 𝐴𝐵 ) · 𝑡 ) ∈ ℂ ∧ ( 𝐴𝐵 ) ∈ ℂ ) → ( ( ( 𝐴𝐵 ) · 𝑡 ) 𝐺 ( 𝐴𝐵 ) ) = - ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) )
51 49 41 50 syl2anc ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( ( 𝐴𝐵 ) · 𝑡 ) 𝐺 ( 𝐴𝐵 ) ) = - ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) )
52 1 sigarls ( ( ( 𝐴𝐵 ) ∈ ℂ ∧ ( 𝐴𝐵 ) ∈ ℂ ∧ 𝑡 ∈ ℝ ) → ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) = ( ( ( 𝐴𝐵 ) 𝐺 ( 𝐴𝐵 ) ) · 𝑡 ) )
53 41 41 38 52 syl3anc ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) = ( ( ( 𝐴𝐵 ) 𝐺 ( 𝐴𝐵 ) ) · 𝑡 ) )
54 1 sigarid ( ( 𝐴𝐵 ) ∈ ℂ → ( ( 𝐴𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = 0 )
55 41 54 syl ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐵 ) 𝐺 ( 𝐴𝐵 ) ) = 0 )
56 55 oveq1d ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( ( 𝐴𝐵 ) 𝐺 ( 𝐴𝐵 ) ) · 𝑡 ) = ( 0 · 𝑡 ) )
57 39 mul02d ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( 0 · 𝑡 ) = 0 )
58 53 56 57 3eqtrd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) = 0 )
59 58 negeqd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → - ( ( 𝐴𝐵 ) 𝐺 ( ( 𝐴𝐵 ) · 𝑡 ) ) = - 0 )
60 neg0 - 0 = 0
61 60 a1i ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → - 0 = 0 )
62 51 59 61 3eqtrd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( ( 𝐴𝐵 ) · 𝑡 ) 𝐺 ( 𝐴𝐵 ) ) = 0 )
63 36 48 62 3eqtrd ( ( 𝜑𝑡 ∈ ℝ ∧ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 )
64 63 rexlimdv3a ( 𝜑 → ( ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) → ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ) )
65 35 64 impbid ( 𝜑 → ( ( ( 𝐴𝐶 ) 𝐺 ( 𝐵𝐶 ) ) = 0 ↔ ∃ 𝑡 ∈ ℝ 𝐶 = ( 𝐵 + ( 𝑡 · ( 𝐴𝐵 ) ) ) ) )