awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (hypothesis)
Goal:
p : ℝ≥0∞
𝕜 : Type u_1
ι : Type u_2
α : ι → Type u_3
β : ι → Type u_4
hp_1 : Fact (1 ≤ p)
inst : Fintype ι
inst_1 : Semiring 𝕜
inst_2 : (i : ι) → SeminormedAddCommGroup (α i)
inst_3 : (i : ι) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι) → Module.{u_1, u_3} 𝕜 (α i)
inst_5 : (i : ι) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
e : (i : ι) → LinearIsometryEquiv.{u_1, u_1, u_3, u_4} (RingHom.id 𝕜) (α i) (β i)
x : (i : ι) → α i
hp : 1 ≤ p.toReal
⊢ Norm.norm (E := PiLp p β)
      (toLp p
          (((LinearEquiv.piCongrRight (φ := α) (ψ := β) fun (i : ι) ↦ (e i).toLinearEquiv :
                ((i : ι) → α i) ≃ₗ[𝕜] (i : ι) → β i) :
              (a : (i : ι) → α i) → (i : ι) → β i)
            x) :
        WithLp p ((i : ι) → β i)) =
    ‖toLp p x‖
have this : 0 < p.toReal
Tactic: have : 0 < p.toReal := zero_lt_one.trans_le <| by norm_cast
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
⊢ nnnorm (E := PiLp p fun (i : ι) ↦ PiLp p (α i))
      (((WithLp.linearEquiv p 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                  LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                  WithLp p ((j : κ x) → α x j)) fun (x : ι) ↦
                  LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
              LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((i : ι) → WithLp p ((j : κ i) → α i j))) :
            (a : PiLp p fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp p fun (i : ι) ↦ PiLp p (α i))
          (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
            x) :
        PiLp p fun (i : ι) ↦ PiLp p (α i)) =
    ‖Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x‖₊
have inl : ∀ [inst : Fact (LE.le (α := ℝ≥0∞) 1 ∞)],
  nnnorm (E := PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i))
      (((WithLp.linearEquiv ∞ 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                  LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                  WithLp ∞ ((j : κ x) → α x j)) fun (x : ι) ↦
                  LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
              LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((i : ι) → WithLp ∞ ((j : κ i) → α i j))) :
            (a : PiLp ∞ fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i))
          (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv ∞ ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
            x) :
        PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i)) =
    nnnorm (E := PiLp ∞ fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ)))
      (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv ∞ ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x)
Tactic: obtain rfl | hp := eq_or_ne p ⊤
Cleared hypotheses: p, inst_6
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp : Fact (1 ≤ p)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
inst_6 : Fintype ι
inst_7 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_8 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_9 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
inst_10 : Fact (LE.le (α := ℝ≥0∞) 1 ∞)
__LinearEquiv : (PiLp ∞ fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) ≃ₗ[𝕜]
  PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i) :=
  (WithLp.linearEquiv ∞ 𝕜 ((i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i) ≪≫ₗ
        LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
      LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦ WithLp ∞ ((j : κ x) → α x j))
        fun (x : ι) ↦ LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
    LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((i : ι) → WithLp ∞ ((j : κ i) → α i j)))
⊢ Eq (α := ℝ≥0)
    (Finset.sup Finset.univ fun (b : ι) ↦
      Finset.sup Finset.univ fun (b_1 : κ b) ↦
        nnnorm.{u_7} (E := α b b_1)
          (ofLp (p := ∞)
            (ofLp (p := ∞)
              (((WithLp.linearEquiv ∞ 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                        LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                      LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                        WithLp ∞ ((j : κ x) → α x j)) fun (x : ι) ↦
                        LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
                    LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((i : ι) → WithLp ∞ ((j : κ i) → α i j))) :
                  (a : PiLp ∞ fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i))
                (Equiv.invFun
                  (AddEquiv.toEquiv (WithLp.addEquiv ∞ ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x))
              b)
            b_1))
    (Finset.sup Finset.univ fun (b : Sigma κ) ↦
      ‖ofLp (p := ∞)
          (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv ∞ ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x)
          b‖₊)
have inl : Eq (α := ℝ≥0)
  (Finset.sup Finset.univ fun (b : ι) ↦
    Finset.sup Finset.univ fun (b_1 : κ b) ↦
      nnnorm (E := α b b_1)
        (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
          (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
  (Finset.sup Finset.univ fun (b : Sigma κ) ↦ ‖x b‖₊)
Tactic: dsimp [Sigma.curry]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp : Fact (1 ≤ p)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
inst_6 : Fintype ι
inst_7 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_8 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_9 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
inst_10 : Fact (LE.le (α := ℝ≥0∞) 1 ∞)
__LinearEquiv : (PiLp ∞ fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) ≃ₗ[𝕜]
  PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i) :=
  (WithLp.linearEquiv ∞ 𝕜 ((i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i) ≪≫ₗ
        LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
      LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦ WithLp ∞ ((j : κ x) → α x j))
        fun (x : ι) ↦ LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
    LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((i : ι) → WithLp ∞ ((j : κ i) → α i j)))
⊢ Eq (α := ℝ≥0)
    (Finset.sup Finset.univ fun (b : ι) ↦
      Finset.sup Finset.univ fun (b_1 : κ b) ↦
        nnnorm (E := α b b_1)
          (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
            (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
    (Finset.sup Finset.univ fun (b : Sigma κ) ↦ ‖x b‖₊)
have inl : Eq (α := ℝ≥0)
  (Finset.sup Finset.univ fun (b : ι) ↦
    Finset.sup Finset.univ fun (b_1 : κ b) ↦
      nnnorm (E := α b b_1)
        (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
          (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
  (Finset.sup (Finset.sigma (α := κ) Finset.univ fun (x : ι) ↦ Finset.univ) fun (b : Sigma κ) ↦ ‖x b‖₊)
Tactic: rw [← Finset.univ_sigma_univ, Finset.sup_sigma]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp : Fact (1 ≤ p)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
inst_6 : Fintype ι
inst_7 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_8 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_9 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
inst_10 : Fact (LE.le (α := ℝ≥0∞) 1 ∞)
__LinearEquiv : (PiLp ∞ fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) ≃ₗ[𝕜]
  PiLp ∞ fun (i : ι) ↦ PiLp ∞ (α i) :=
  (WithLp.linearEquiv ∞ 𝕜 ((i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i) ≪≫ₗ
        LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
      LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦ WithLp ∞ ((j : κ x) → α x j))
        fun (x : ι) ↦ LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
    LinearEquiv.symm (WithLp.linearEquiv ∞ 𝕜 ((i : ι) → WithLp ∞ ((j : κ i) → α i j)))
inl :
  Eq (α := ℝ≥0)
    (Finset.sup Finset.univ fun (b : ι) ↦
      Finset.sup Finset.univ fun (b_1 : κ b) ↦
        nnnorm (E := α b b_1)
          (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
            (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
    (Finset.sup (Finset.sigma (α := κ) Finset.univ fun (x : ι) ↦ Finset.univ) fun (b : Sigma κ) ↦ ‖x b‖₊)
⊢ Eq (α := ℝ≥0)
    (Finset.sup Finset.univ fun (b : ι) ↦
      Finset.sup Finset.univ fun (b_1 : κ b) ↦
        nnnorm (E := α b b_1)
          (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
            (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
    (Finset.sup Finset.univ fun (b : Sigma κ) ↦ ‖x b‖₊)
have inl₁ : Eq (α := ℝ≥0)
  (Finset.sup Finset.univ fun (b : ι) ↦
    Finset.sup Finset.univ fun (b_1 : κ b) ↦
      nnnorm (E := α b b_1)
        (x (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1) :
          (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) b b_1)))
  (Finset.sup Finset.univ fun (i : ι) ↦
    Finset.sup Finset.univ fun (b : κ i) ↦
      nnnorm (E :=
        α ((Sigma.mk (β := fun (i : ι) ↦ κ i) i b).fst (β := κ)) ((Sigma.mk (β := fun (i : ι) ↦ κ i) i b).snd (β := κ)))
        (x (Sigma.mk (β := fun (i : ι) ↦ κ i) i b)))
Tactic: rw [← Finset.univ_sigma_univ, Finset.sup_sigma]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (hypothesis)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp_1 : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
hp : p ≠ ∞
⊢ nnnorm (E := PiLp p fun (i : ι) ↦ PiLp p (α i))
      (((WithLp.linearEquiv p 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                  LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                  WithLp p ((j : κ x) → α x j)) fun (x : ι) ↦
                  LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
              LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((i : ι) → WithLp p ((j : κ i) → α i j))) :
            (a : PiLp p fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp p fun (i : ι) ↦ PiLp p (α i))
          (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
            x) :
        PiLp p fun (i : ι) ↦ PiLp p (α i)) =
    ‖Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x‖₊
have this : 0 < p.toReal
Tactic: have : 0 < p.toReal := (toReal_pos_iff_ne_top _).mpr hp
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp_1 : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
hp : p ≠ ∞
this : 0 < p.toReal
⊢ nnnorm (E := PiLp p fun (i : ι) ↦ PiLp p (α i))
      (((WithLp.linearEquiv p 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                  LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                  WithLp p ((j : κ x) → α x j)) fun (x : ι) ↦
                  LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
              LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((i : ι) → WithLp p ((j : κ i) → α i j))) :
            (a : PiLp p fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp p fun (i : ι) ↦ PiLp p (α i))
          (Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
            x) :
        PiLp p fun (i : ι) ↦ PiLp p (α i)) =
    ‖Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x‖₊
have inr : HPow.hPow (α := ℝ≥0)
    (∑ x_1 : ι,
      HPow.hPow (α := ℝ≥0)
          (∑ i : κ x_1,
            nnnorm.{u_7} (E := α x_1 i)
                (ofLp (p := p)
                  (ofLp (p := p)
                    (((WithLp.linearEquiv p 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                              LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                            LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                              WithLp p ((j : κ x) → α x j)) fun (x : ι) ↦
                              LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
                          LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((i : ι) → WithLp p ((j : κ i) → α i j))) :
                        (a : PiLp p fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp p fun (i : ι) ↦ PiLp p (α i))
                      (Equiv.invFun
                        (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))))) x))
                    x_1)
                  i) ^
              p.toReal)
          (1 / p.toReal) ^
        p.toReal)
    (1 / p.toReal) =
  HPow.hPow (α := ℝ≥0)
    (∑ i : Sigma κ,
      ‖(Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
                x).ofLp
            i‖₊ ^
        p.toReal)
    (1 / p.toReal)
Tactic: simp_rw [PiLp.nnnorm_eq_sum hp]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp_1 : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
hp : p ≠ ∞
this : 0 < p.toReal
⊢ HPow.hPow (α := ℝ≥0)
      (∑ x_1 : ι,
        HPow.hPow (α := ℝ≥0)
            (∑ i : κ x_1,
              nnnorm.{u_7} (E := α x_1 i)
                  (ofLp (p := p)
                    (ofLp (p := p)
                      (((WithLp.linearEquiv p 𝕜 ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ))) ≪≫ₗ
                                LinearEquiv.piCurry 𝕜 (κ := κ) α ≪≫ₗ
                              LinearEquiv.piCongrRight (φ := fun (i : ι) ↦ (j : κ i) → α i j) (ψ := fun (x : ι) ↦
                                WithLp p ((j : κ x) → α x j)) fun (x : ι) ↦
                                LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((j : κ x) → α x j))) ≪≫ₗ
                            LinearEquiv.symm (WithLp.linearEquiv p 𝕜 ((i : ι) → WithLp p ((j : κ i) → α i j))) :
                          (a : PiLp p fun (i : Sigma κ) ↦ α i.fst i.snd) → PiLp p fun (i : ι) ↦ PiLp p (α i))
                        (Equiv.invFun
                          (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
                          x))
                      x_1)
                    i) ^
                p.toReal)
            (1 / p.toReal) ^
          p.toReal)
      (1 / p.toReal) =
    HPow.hPow (α := ℝ≥0)
      (∑ i : Sigma κ,
        ‖(Equiv.invFun (AddEquiv.toEquiv (WithLp.addEquiv p ((i : Sigma κ) → α (i.fst (β := κ)) (i.snd (β := κ)))))
                  x).ofLp
              i‖₊ ^
          p.toReal)
      (1 / p.toReal)
have inr : HPow.hPow (α := ℝ≥0)
    (∑ x_1 : ι,
      HPow.hPow (α := ℝ≥0)
          (∑ i : κ x_1,
            nnnorm (E := α x_1 i)
                (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
                  (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
              p.toReal)
          (1 / p.toReal) ^
        p.toReal)
    (1 / p.toReal) =
  HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) (1 / p.toReal)
Tactic: dsimp [Sigma.curry]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp_1 : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
hp : p ≠ ∞
this : 0 < p.toReal
⊢ HPow.hPow (α := ℝ≥0)
      (∑ x_1 : ι,
        HPow.hPow (α := ℝ≥0)
            (∑ i : κ x_1,
              nnnorm (E := α x_1 i)
                  (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
                    (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ)))
                      (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
                p.toReal)
            (1 / p.toReal) ^
          p.toReal)
      (1 / p.toReal) =
    HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) (1 / p.toReal)
have inr : HPow.hPow (α := ℝ≥0)
    (∑ x_1 : ι,
      HPow.hPow (α := ℝ≥0)
          (∑ i : κ x_1,
            nnnorm (E := α x_1 i)
                (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
                  (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
              p.toReal)
          p.toReal⁻¹ ^
        p.toReal)
    p.toReal⁻¹ =
  HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) p.toReal⁻¹
Tactic: simp_rw [one_div, NNReal.rpow_inv_rpow this.ne', ← Finset.univ_sigma_univ, Finset.sum_sigma]
-- Lean 4 proof step from Mathlib.Analysis.Normed.Lp.PiLp (goal)
Goal:
p_1 : ℝ≥0∞
𝕜 : Type u_1
ι_1 : Type u_2
α_1 : ι_1 → Type u_3
β : ι_1 → Type u_4
hp_1 : Fact (1 ≤ p_1)
inst : Fintype ι_1
inst_1 : Semiring 𝕜
inst_2 : (i : ι_1) → SeminormedAddCommGroup (α_1 i)
inst_3 : (i : ι_1) → SeminormedAddCommGroup (β i)
inst_4 : (i : ι_1) → Module.{u_1, u_3} 𝕜 (α_1 i)
inst_5 : (i : ι_1) → Module.{u_1, u_4} 𝕜 (β i)
c : 𝕜
ι : Type u_5
κ : ι → Type u_6
p : ℝ≥0∞
inst_6 : Fact (1 ≤ p)
inst_7 : Fintype ι
inst_8 : (i : ι) → Fintype (κ i)
α : (i : ι) → κ i → Type u_7
inst_9 : (i : ι) → (k : κ i) → SeminormedAddCommGroup (α i k)
inst_10 : (i : ι) → (k : κ i) → Module.{u_1, u_7} 𝕜 (α i k)
x : (i : Sigma κ) → (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) i
hp : p ≠ ∞
this : 0 < p.toReal
inr :
  HPow.hPow (α := ℝ≥0)
      (∑ x_1 : ι,
        HPow.hPow (α := ℝ≥0)
            (∑ i : κ x_1,
              nnnorm (E := α x_1 i)
                  (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
                    (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ)))
                      (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
                p.toReal)
            p.toReal⁻¹ ^
          p.toReal)
      p.toReal⁻¹ =
    HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) p.toReal⁻¹
⊢ HPow.hPow (α := ℝ≥0)
      (∑ x_1 : ι,
        HPow.hPow (α := ℝ≥0)
            (∑ i : κ x_1,
              nnnorm (E := α x_1 i)
                  (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
                    (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ)))
                      (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
                p.toReal)
            (1 / p.toReal) ^
          p.toReal)
      (1 / p.toReal) =
    HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) (1 / p.toReal)
have inr₁ : HPow.hPow (α := ℝ≥0)
    (∑ x_1 : ι,
      ∑ i : κ x_1,
        nnnorm (E := α x_1 i)
            (x (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i) :
              (fun (i : Sigma κ) ↦ α (i.fst (β := κ)) (i.snd (β := κ))) (Sigma.mk (β := fun (i : ι) ↦ κ i) x_1 i)) ^
          p.toReal)
    p.toReal⁻¹ =
  HPow.hPow (α := ℝ≥0) (∑ i : Sigma κ, ‖x i‖₊ ^ p.toReal) p.toReal⁻¹
Tactic: simp_rw [one_div, NNReal.rpow_inv_rpow this.ne', ← Finset.univ_sigma_univ, Finset.sum_sigma]