Metamath Proof Explorer


Theorem abstri

Description: Triangle inequality for absolute value. Proposition 10-3.7(h) of Gleason p. 133. (Contributed by NM, 7-Mar-2005) (Proof shortened by Mario Carneiro, 29-May-2016)

Ref Expression
Assertion abstri ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( 𝐴 + 𝐵 ) ) ≤ ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 2re 2 ∈ ℝ
2 1 a1i ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 2 ∈ ℝ )
3 simpl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 𝐴 ∈ ℂ )
4 simpr ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 𝐵 ∈ ℂ )
5 4 cjcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ∗ ‘ 𝐵 ) ∈ ℂ )
6 3 5 mulcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ∈ ℂ )
7 6 recld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ∈ ℝ )
8 2 7 remulcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 2 · ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ) ∈ ℝ )
9 abscl ( 𝐴 ∈ ℂ → ( abs ‘ 𝐴 ) ∈ ℝ )
10 3 9 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ 𝐴 ) ∈ ℝ )
11 abscl ( 𝐵 ∈ ℂ → ( abs ‘ 𝐵 ) ∈ ℝ )
12 4 11 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ 𝐵 ) ∈ ℝ )
13 10 12 remulcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ∈ ℝ )
14 2 13 remulcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ∈ ℝ )
15 10 resqcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℝ )
16 12 resqcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐵 ) ↑ 2 ) ∈ ℝ )
17 15 16 readdcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) ∈ ℝ )
18 releabs ( ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ∈ ℂ → ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ≤ ( abs ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) )
19 6 18 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ≤ ( abs ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) )
20 absmul ( ( 𝐴 ∈ ℂ ∧ ( ∗ ‘ 𝐵 ) ∈ ℂ ) → ( abs ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) = ( ( abs ‘ 𝐴 ) · ( abs ‘ ( ∗ ‘ 𝐵 ) ) ) )
21 3 5 20 syl2anc ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) = ( ( abs ‘ 𝐴 ) · ( abs ‘ ( ∗ ‘ 𝐵 ) ) ) )
22 abscj ( 𝐵 ∈ ℂ → ( abs ‘ ( ∗ ‘ 𝐵 ) ) = ( abs ‘ 𝐵 ) )
23 4 22 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( ∗ ‘ 𝐵 ) ) = ( abs ‘ 𝐵 ) )
24 23 oveq2d ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐴 ) · ( abs ‘ ( ∗ ‘ 𝐵 ) ) ) = ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) )
25 21 24 eqtrd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) = ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) )
26 19 25 breqtrd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ≤ ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) )
27 2rp 2 ∈ ℝ+
28 27 a1i ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 2 ∈ ℝ+ )
29 7 13 28 lemul2d ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ≤ ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ↔ ( 2 · ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ) ≤ ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) )
30 26 29 mpbid ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 2 · ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ) ≤ ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) )
31 8 14 17 30 leadd2dd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) + ( 2 · ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ) ) ≤ ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) )
32 sqabsadd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ ( 𝐴 + 𝐵 ) ) ↑ 2 ) = ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) + ( 2 · ( ℜ ‘ ( 𝐴 · ( ∗ ‘ 𝐵 ) ) ) ) ) )
33 10 recnd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ 𝐴 ) ∈ ℂ )
34 12 recnd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ 𝐵 ) ∈ ℂ )
35 binom2 ( ( ( abs ‘ 𝐴 ) ∈ ℂ ∧ ( abs ‘ 𝐵 ) ∈ ℂ ) → ( ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↑ 2 ) = ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) )
36 33 34 35 syl2anc ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↑ 2 ) = ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) )
37 15 recnd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐴 ) ↑ 2 ) ∈ ℂ )
38 14 recnd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ∈ ℂ )
39 16 recnd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐵 ) ↑ 2 ) ∈ ℂ )
40 37 38 39 add32d ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) = ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) )
41 36 40 eqtrd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↑ 2 ) = ( ( ( ( abs ‘ 𝐴 ) ↑ 2 ) + ( ( abs ‘ 𝐵 ) ↑ 2 ) ) + ( 2 · ( ( abs ‘ 𝐴 ) · ( abs ‘ 𝐵 ) ) ) ) )
42 31 32 41 3brtr4d ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ ( 𝐴 + 𝐵 ) ) ↑ 2 ) ≤ ( ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↑ 2 ) )
43 addcl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( 𝐴 + 𝐵 ) ∈ ℂ )
44 abscl ( ( 𝐴 + 𝐵 ) ∈ ℂ → ( abs ‘ ( 𝐴 + 𝐵 ) ) ∈ ℝ )
45 43 44 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( 𝐴 + 𝐵 ) ) ∈ ℝ )
46 10 12 readdcld ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ∈ ℝ )
47 absge0 ( ( 𝐴 + 𝐵 ) ∈ ℂ → 0 ≤ ( abs ‘ ( 𝐴 + 𝐵 ) ) )
48 43 47 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 0 ≤ ( abs ‘ ( 𝐴 + 𝐵 ) ) )
49 absge0 ( 𝐴 ∈ ℂ → 0 ≤ ( abs ‘ 𝐴 ) )
50 3 49 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 0 ≤ ( abs ‘ 𝐴 ) )
51 absge0 ( 𝐵 ∈ ℂ → 0 ≤ ( abs ‘ 𝐵 ) )
52 4 51 syl ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 0 ≤ ( abs ‘ 𝐵 ) )
53 10 12 50 52 addge0d ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → 0 ≤ ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) )
54 45 46 48 53 le2sqd ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( ( abs ‘ ( 𝐴 + 𝐵 ) ) ≤ ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↔ ( ( abs ‘ ( 𝐴 + 𝐵 ) ) ↑ 2 ) ≤ ( ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) ↑ 2 ) ) )
55 42 54 mpbird ( ( 𝐴 ∈ ℂ ∧ 𝐵 ∈ ℂ ) → ( abs ‘ ( 𝐴 + 𝐵 ) ) ≤ ( ( abs ‘ 𝐴 ) + ( abs ‘ 𝐵 ) ) )