Theorem: lp.norm_neg
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rcases p.trichotomy with (rfl | rfl | hp)
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
⊢ ‖-f‖ = ‖f‖
state_after: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E 0)
⊢ ‖-f‖ = ‖f‖

case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
⊢ ‖-f‖ = ‖f‖

case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ ‖-f‖ = ‖f‖

tactic: simp only [norm_eq_card_dsupport, coeFn_neg, Pi.neg_apply, ne_eq, neg_eq_zero]
state_before: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E 0)
⊢ ‖-f‖ = ‖f‖
state_after: no goals

tactic: cases isEmpty_or_nonempty α
state_before: case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
⊢ ‖-f‖ = ‖f‖
state_after: case inr.inl.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : IsEmpty α
⊢ ‖-f‖ = ‖f‖

case inr.inl.inr
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : Nonempty α
⊢ ‖-f‖ = ‖f‖

tactic: apply (lp.isLUB_norm (-f)).unique
state_before: case inr.inl.inr
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : Nonempty α
⊢ ‖-f‖ = ‖f‖
state_after: case inr.inl.inr
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : Nonempty α
⊢ IsLUB (Set.range fun i => ‖↑(-f) i‖) ‖f‖

tactic: simpa only [coeFn_neg, Pi.neg_apply, norm_neg] using lp.isLUB_norm f
state_before: case inr.inl.inr
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : Nonempty α
⊢ IsLUB (Set.range fun i => ‖↑(-f) i‖) ‖f‖
state_after: no goals

tactic: simp only [lp.eq_zero' f, neg_zero, norm_zero]
state_before: case inr.inl.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E ⊤)
h✝ : IsEmpty α
⊢ ‖-f‖ = ‖f‖
state_after: no goals

tactic: suffices ‖-f‖ ^ p.toReal = ‖f‖ ^ p.toReal by
  exact Real.rpow_left_injOn hp.ne' (norm_nonneg' _) (norm_nonneg' _) this
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ ‖-f‖ = ‖f‖
state_after: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ ‖-f‖ ^ p.toReal = ‖f‖ ^ p.toReal

tactic: apply (lp.hasSum_norm hp (-f)).unique
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ ‖-f‖ ^ p.toReal = ‖f‖ ^ p.toReal
state_after: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ HasSum (fun i => ‖↑(-f) i‖ ^ p.toReal) (‖f‖ ^ p.toReal)

tactic: simpa only [coeFn_neg, Pi.neg_apply, _root_.norm_neg] using lp.hasSum_norm hp f
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
⊢ HasSum (fun i => ‖↑(-f) i‖ ^ p.toReal) (‖f‖ ^ p.toReal)
state_after: no goals

tactic: exact Real.rpow_left_injOn hp.ne' (norm_nonneg' _) (norm_nonneg' _) this
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
f : ↥(lp E p)
hp : 0 < p.toReal
this : ‖-f‖ ^ p.toReal = ‖f‖ ^ p.toReal
⊢ ‖-f‖ = ‖f‖
state_after: no goals