Theorem: MeasureTheory.snorm_const_lt_top_iff
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: have hp : 0 < p.toReal := ENNReal.toReal_pos hp_ne_zero hp_ne_top
state_before: α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: by_cases hμ : μ = 0
state_before: α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: by_cases hc : c = 0
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: rw [snorm_const' c hp_ne_zero hp_ne_top]
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: by_cases hμ_top : μ Set.univ = ∞
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: rw [ENNReal.mul_lt_top_iff]
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: simp only [true_and_iff, one_div, ENNReal.rpow_eq_zero_iff, hμ, false_or_iff, or_false_iff,
  ENNReal.coe_lt_top, nnnorm_eq_zero, ENNReal.coe_eq_zero,
  MeasureTheory.Measure.measure_univ_eq_zero, hp, inv_lt_zero, hc, and_false_iff, false_and_iff,
  _root_.inv_pos, or_self_iff, hμ_top, Ne.lt_top hμ_top, iff_true_iff]
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ < ⊤ ∧ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ∨ ↑‖c‖₊ = 0 ∨ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) = 0 ↔
    c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: exact ENNReal.rpow_lt_top_of_nonneg (inv_nonneg.mpr hp.le) hμ_top
state_before: case neg
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹ < ⊤

tactic: simp only [hμ, Measure.coe_zero, Pi.zero_apply, or_true_iff, WithTop.zero_lt_top,
  snorm_measure_zero]
state_before: case pos
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : μ = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: simp only [hc, true_or_iff, eq_self_iff_true, WithTop.zero_lt_top, snorm_zero']
state_before: case pos
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : c = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤

tactic: simp [hc, hμ_top, hp]
state_before: case pos
α : Type u_1
E : Type ?u.1263233
F : Type u_2
G : Type ?u.1263239
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤