Metamath Proof Explorer


Theorem xmulf

Description: The extended real multiplication operation is closed in extended reals. (Contributed by Mario Carneiro, 21-Aug-2015)

Ref Expression
Assertion xmulf ·e : ( ℝ* × ℝ* ) ⟶ ℝ*

Proof

Step Hyp Ref Expression
1 0xr 0 ∈ ℝ*
2 1 a1i ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) → 0 ∈ ℝ* )
3 pnfxr +∞ ∈ ℝ*
4 3 a1i ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) → +∞ ∈ ℝ* )
5 mnfxr -∞ ∈ ℝ*
6 5 a1i ( ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ∧ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ) → -∞ ∈ ℝ* )
7 xmullem ( ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ) → 𝑥 ∈ ℝ )
8 ancom ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ↔ ( 𝑦 ∈ ℝ*𝑥 ∈ ℝ* ) )
9 orcom ( ( 𝑥 = 0 ∨ 𝑦 = 0 ) ↔ ( 𝑦 = 0 ∨ 𝑥 = 0 ) )
10 9 notbii ( ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ↔ ¬ ( 𝑦 = 0 ∨ 𝑥 = 0 ) )
11 8 10 anbi12i ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ↔ ( ( 𝑦 ∈ ℝ*𝑥 ∈ ℝ* ) ∧ ¬ ( 𝑦 = 0 ∨ 𝑥 = 0 ) ) )
12 orcom ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ↔ ( ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ) )
13 12 notbii ( ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ↔ ¬ ( ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ) )
14 11 13 anbi12i ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ↔ ( ( ( 𝑦 ∈ ℝ*𝑥 ∈ ℝ* ) ∧ ¬ ( 𝑦 = 0 ∨ 𝑥 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ) ) )
15 orcom ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ↔ ( ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ) )
16 15 notbii ( ¬ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ↔ ¬ ( ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ) )
17 xmullem ( ( ( ( ( 𝑦 ∈ ℝ*𝑥 ∈ ℝ* ) ∧ ¬ ( 𝑦 = 0 ∨ 𝑥 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ) ) ∧ ¬ ( ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ∨ ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ) ) → 𝑦 ∈ ℝ )
18 14 16 17 syl2anb ( ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ) → 𝑦 ∈ ℝ )
19 7 18 remulcld ( ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ) → ( 𝑥 · 𝑦 ) ∈ ℝ )
20 19 rexrd ( ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) ) → ( 𝑥 · 𝑦 ) ∈ ℝ* )
21 6 20 ifclda ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) ∧ ¬ ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) ) → if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ∈ ℝ* )
22 4 21 ifclda ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ ( 𝑥 = 0 ∨ 𝑦 = 0 ) ) → if ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) , +∞ , if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ) ∈ ℝ* )
23 2 22 ifclda ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) → if ( ( 𝑥 = 0 ∨ 𝑦 = 0 ) , 0 , if ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) , +∞ , if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ) ) ∈ ℝ* )
24 23 rgen2 𝑥 ∈ ℝ*𝑦 ∈ ℝ* if ( ( 𝑥 = 0 ∨ 𝑦 = 0 ) , 0 , if ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) , +∞ , if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ) ) ∈ ℝ*
25 df-xmul ·e = ( 𝑥 ∈ ℝ* , 𝑦 ∈ ℝ* ↦ if ( ( 𝑥 = 0 ∨ 𝑦 = 0 ) , 0 , if ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) , +∞ , if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ) ) )
26 25 fmpo ( ∀ 𝑥 ∈ ℝ*𝑦 ∈ ℝ* if ( ( 𝑥 = 0 ∨ 𝑦 = 0 ) , 0 , if ( ( ( ( 0 < 𝑦𝑥 = +∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = -∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = +∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = -∞ ) ) ) , +∞ , if ( ( ( ( 0 < 𝑦𝑥 = -∞ ) ∨ ( 𝑦 < 0 ∧ 𝑥 = +∞ ) ) ∨ ( ( 0 < 𝑥𝑦 = -∞ ) ∨ ( 𝑥 < 0 ∧ 𝑦 = +∞ ) ) ) , -∞ , ( 𝑥 · 𝑦 ) ) ) ) ∈ ℝ* ↔ ·e : ( ℝ* × ℝ* ) ⟶ ℝ* )
27 24 26 mpbi ·e : ( ℝ* × ℝ* ) ⟶ ℝ*