Theorem: SpectrumRestricts.nnreal_add
File: Mathlib/Analysis/CstarAlgebra/ContinuousFunctionalCalculus/Instances.lean

Proof steps:
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ SpectrumRestricts (a + b) ⇑ContinuousMap.realToNNReal
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a + ((algebraMap ℝ A) ↑‖b‖₊ - b)‖₊ ≤ ‖a‖₊ + ‖b‖₊
tactic: rw [SpectrumRestricts.nnreal_iff_nnnorm (ha₁.add hb₁) (nnnorm_add_le a b), NNReal.coe_add,
    map_add, add_sub_add_comm]
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a + ((algebraMap ℝ A) ↑‖b‖₊ - b)‖₊ ≤ ‖a‖₊ + ‖b‖₊
state_after: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a‖₊ + ‖(algebraMap ℝ A) ↑‖b‖₊ - b‖₊ ≤ ‖a‖₊ + ‖b‖₊
tactic: refine nnnorm_add_le _ _ |>.trans ?_
state_before: A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a‖₊ + ‖(algebraMap ℝ A) ↑‖b‖₊ - b‖₊ ≤ ‖a‖₊ + ‖b‖₊
state_after: case h₁
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a‖₊ ≤ ‖a‖₊

case h₂
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖b‖₊ - b‖₊ ≤ ‖b‖₊
tactic: gcongr
state_before: case h₁
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖a‖₊ - a‖₊ ≤ ‖a‖₊

case h₂
A : Type u_1
inst✝⁵ : NormedRing A
inst✝⁴ : StarRing A
inst✝³ : CstarRing A
inst✝² : CompleteSpace A
inst✝¹ : NormedAlgebra ℂ A
inst✝ : StarModule ℂ A
a b : A
ha₁ : IsSelfAdjoint a
hb₁ : IsSelfAdjoint b
ha₂ : SpectrumRestricts a ⇑ContinuousMap.realToNNReal
hb₂ : SpectrumRestricts b ⇑ContinuousMap.realToNNReal
⊢ ‖(algebraMap ℝ A) ↑‖b‖₊ - b‖₊ ≤ ‖b‖₊
state_after: no goals
tactic: all_goals rw [← SpectrumRestricts.nnreal_iff_nnnorm] <;> first | rfl | assumption