Metamath Proof Explorer


Theorem sgnmulsgp

Description: If two real numbers are of same signs, so are their signs. (Contributed by Thierry Arnoux, 12-Oct-2018)

Ref Expression
Assertion sgnmulsgp ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 0 < ( 𝐴 · 𝐵 ) ↔ 0 < ( ( sgn ‘ 𝐴 ) · ( sgn ‘ 𝐵 ) ) ) )

Proof

Step Hyp Ref Expression
1 0lt1 ⊢ 0 < 1
2 breq2 ⊢ ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 → ( 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ↔ 0 < 1 ) )
3 1 2 mpbiri ⊢ ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 → 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) )
4 3 adantl ⊢ ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ) → 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) )
5 simplr ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ) → 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) )
6 simpr ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 )
7 5 6 breqtrd ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ) → 0 < - 1 )
8 1nn0 ⊢ 1 ∈ ℕ0
9 nn0nlt0 ⊢ ( 1 ∈ ℕ0 → ¬ 1 < 0 )
10 8 9 ax-mp ⊢ ¬ 1 < 0
11 1re ⊢ 1 ∈ ℝ
12 lt0neg1 ⊢ ( 1 ∈ ℝ → ( 1 < 0 ↔ 0 < - 1 ) )
13 11 12 ax-mp ⊢ ( 1 < 0 ↔ 0 < - 1 )
14 10 13 mtbi ⊢ ¬ 0 < - 1
15 14 a1i ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ) → ¬ 0 < - 1 )
16 7 15 pm2.21dd ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 )
17 simpr ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 )
18 simplr ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ) → 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) )
19 18 gt0ne0d ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) ≠ 0 )
20 17 19 pm2.21ddne ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 )
21 simpr ⊢ ( ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) ∧ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 )
22 remulcl ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐴 · 𝐵 ) ∈ ℝ )
23 22 rexrd ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 𝐴 · 𝐵 ) ∈ ℝ* )
24 23 adantr ⊢ ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) → ( 𝐴 · 𝐵 ) ∈ ℝ* )
25 sgncl ⊢ ( ( 𝐴 · 𝐵 ) ∈ ℝ* → ( sgn ‘ ( 𝐴 · 𝐵 ) ) ∈ { - 1 , 0 , 1 } )
26 eltpi ⊢ ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) ∈ { - 1 , 0 , 1 } → ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ∨ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ∨ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ) )
27 24 25 26 3syl ⊢ ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) → ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = - 1 ∨ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 0 ∨ ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ) )
28 16 20 21 27 mpjao3dan ⊢ ( ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) ∧ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 )
29 4 28 impbida ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ↔ 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ) )
30 sgnpbi ⊢ ( ( 𝐴 · 𝐵 ) ∈ ℝ* → ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ↔ 0 < ( 𝐴 · 𝐵 ) ) )
31 23 30 syl ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( ( sgn ‘ ( 𝐴 · 𝐵 ) ) = 1 ↔ 0 < ( 𝐴 · 𝐵 ) ) )
32 sgnmul ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( sgn ‘ ( 𝐴 · 𝐵 ) ) = ( ( sgn ‘ 𝐴 ) · ( sgn ‘ 𝐵 ) ) )
33 32 breq2d ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 0 < ( sgn ‘ ( 𝐴 · 𝐵 ) ) ↔ 0 < ( ( sgn ‘ 𝐴 ) · ( sgn ‘ 𝐵 ) ) ) )
34 29 31 33 3bitr3d ⊢ ( ( 𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ) → ( 0 < ( 𝐴 · 𝐵 ) ↔ 0 < ( ( sgn ‘ 𝐴 ) · ( sgn ‘ 𝐵 ) ) ) )