Metamath Proof Explorer


Theorem xaddf

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

Ref Expression
Assertion xaddf +𝑒 : ( ℝ* × ℝ* ) ⟶ ℝ*

Proof

Step Hyp Ref Expression
1 0xr 0 ∈ ℝ*
2 pnfxr +∞ ∈ ℝ*
3 1 2 ifcli if ( 𝑦 = -∞ , 0 , +∞ ) ∈ ℝ*
4 3 a1i ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ 𝑥 = +∞ ) → if ( 𝑦 = -∞ , 0 , +∞ ) ∈ ℝ* )
5 mnfxr -∞ ∈ ℝ*
6 1 5 ifcli if ( 𝑦 = +∞ , 0 , -∞ ) ∈ ℝ*
7 6 a1i ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ 𝑥 = +∞ ) ∧ 𝑥 = -∞ ) → if ( 𝑦 = +∞ , 0 , -∞ ) ∈ ℝ* )
8 2 a1i ( ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) ∧ 𝑦 = +∞ ) → +∞ ∈ ℝ* )
9 5 a1i ( ( ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) ∧ ¬ 𝑦 = +∞ ) ∧ 𝑦 = -∞ ) → -∞ ∈ ℝ* )
10 ioran ( ¬ ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) ↔ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) )
11 elxr ( 𝑥 ∈ ℝ* ↔ ( 𝑥 ∈ ℝ ∨ 𝑥 = +∞ ∨ 𝑥 = -∞ ) )
12 3orass ( ( 𝑥 ∈ ℝ ∨ 𝑥 = +∞ ∨ 𝑥 = -∞ ) ↔ ( 𝑥 ∈ ℝ ∨ ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) ) )
13 11 12 sylbb ( 𝑥 ∈ ℝ* → ( 𝑥 ∈ ℝ ∨ ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) ) )
14 13 ord ( 𝑥 ∈ ℝ* → ( ¬ 𝑥 ∈ ℝ → ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) ) )
15 14 con1d ( 𝑥 ∈ ℝ* → ( ¬ ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) → 𝑥 ∈ ℝ ) )
16 15 imp ( ( 𝑥 ∈ ℝ* ∧ ¬ ( 𝑥 = +∞ ∨ 𝑥 = -∞ ) ) → 𝑥 ∈ ℝ )
17 10 16 sylan2br ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) → 𝑥 ∈ ℝ )
18 ioran ( ¬ ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) ↔ ( ¬ 𝑦 = +∞ ∧ ¬ 𝑦 = -∞ ) )
19 elxr ( 𝑦 ∈ ℝ* ↔ ( 𝑦 ∈ ℝ ∨ 𝑦 = +∞ ∨ 𝑦 = -∞ ) )
20 3orass ( ( 𝑦 ∈ ℝ ∨ 𝑦 = +∞ ∨ 𝑦 = -∞ ) ↔ ( 𝑦 ∈ ℝ ∨ ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) ) )
21 19 20 sylbb ( 𝑦 ∈ ℝ* → ( 𝑦 ∈ ℝ ∨ ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) ) )
22 21 ord ( 𝑦 ∈ ℝ* → ( ¬ 𝑦 ∈ ℝ → ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) ) )
23 22 con1d ( 𝑦 ∈ ℝ* → ( ¬ ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) → 𝑦 ∈ ℝ ) )
24 23 imp ( ( 𝑦 ∈ ℝ* ∧ ¬ ( 𝑦 = +∞ ∨ 𝑦 = -∞ ) ) → 𝑦 ∈ ℝ )
25 18 24 sylan2br ( ( 𝑦 ∈ ℝ* ∧ ( ¬ 𝑦 = +∞ ∧ ¬ 𝑦 = -∞ ) ) → 𝑦 ∈ ℝ )
26 readdcl ( ( 𝑥 ∈ ℝ ∧ 𝑦 ∈ ℝ ) → ( 𝑥 + 𝑦 ) ∈ ℝ )
27 17 25 26 syl2an ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ ( 𝑦 ∈ ℝ* ∧ ( ¬ 𝑦 = +∞ ∧ ¬ 𝑦 = -∞ ) ) ) → ( 𝑥 + 𝑦 ) ∈ ℝ )
28 27 rexrd ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ ( 𝑦 ∈ ℝ* ∧ ( ¬ 𝑦 = +∞ ∧ ¬ 𝑦 = -∞ ) ) ) → ( 𝑥 + 𝑦 ) ∈ ℝ* )
29 28 anassrs ( ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) ∧ ( ¬ 𝑦 = +∞ ∧ ¬ 𝑦 = -∞ ) ) → ( 𝑥 + 𝑦 ) ∈ ℝ* )
30 29 anassrs ( ( ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) ∧ ¬ 𝑦 = +∞ ) ∧ ¬ 𝑦 = -∞ ) → ( 𝑥 + 𝑦 ) ∈ ℝ* )
31 9 30 ifclda ( ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) ∧ ¬ 𝑦 = +∞ ) → if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ∈ ℝ* )
32 8 31 ifclda ( ( ( 𝑥 ∈ ℝ* ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) ∧ 𝑦 ∈ ℝ* ) → if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ∈ ℝ* )
33 32 an32s ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ( ¬ 𝑥 = +∞ ∧ ¬ 𝑥 = -∞ ) ) → if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ∈ ℝ* )
34 33 anassrs ( ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ 𝑥 = +∞ ) ∧ ¬ 𝑥 = -∞ ) → if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ∈ ℝ* )
35 7 34 ifclda ( ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) ∧ ¬ 𝑥 = +∞ ) → if ( 𝑥 = -∞ , if ( 𝑦 = +∞ , 0 , -∞ ) , if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ) ∈ ℝ* )
36 4 35 ifclda ( ( 𝑥 ∈ ℝ*𝑦 ∈ ℝ* ) → if ( 𝑥 = +∞ , if ( 𝑦 = -∞ , 0 , +∞ ) , if ( 𝑥 = -∞ , if ( 𝑦 = +∞ , 0 , -∞ ) , if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ) ) ∈ ℝ* )
37 36 rgen2 𝑥 ∈ ℝ*𝑦 ∈ ℝ* if ( 𝑥 = +∞ , if ( 𝑦 = -∞ , 0 , +∞ ) , if ( 𝑥 = -∞ , if ( 𝑦 = +∞ , 0 , -∞ ) , if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ) ) ∈ ℝ*
38 df-xadd +𝑒 = ( 𝑥 ∈ ℝ* , 𝑦 ∈ ℝ* ↦ if ( 𝑥 = +∞ , if ( 𝑦 = -∞ , 0 , +∞ ) , if ( 𝑥 = -∞ , if ( 𝑦 = +∞ , 0 , -∞ ) , if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ) ) )
39 38 fmpo ( ∀ 𝑥 ∈ ℝ*𝑦 ∈ ℝ* if ( 𝑥 = +∞ , if ( 𝑦 = -∞ , 0 , +∞ ) , if ( 𝑥 = -∞ , if ( 𝑦 = +∞ , 0 , -∞ ) , if ( 𝑦 = +∞ , +∞ , if ( 𝑦 = -∞ , -∞ , ( 𝑥 + 𝑦 ) ) ) ) ) ∈ ℝ* ↔ +𝑒 : ( ℝ* × ℝ* ) ⟶ ℝ* )
40 37 39 mpbi +𝑒 : ( ℝ* × ℝ* ) ⟶ ℝ*