Zulip Chat Archive

Stream: Is there code for X?

Topic: Range of LinearMap.prod


Michael Rothgang (Mar 21 2025 at 14:03):

Do we really not have this?

import Mathlib

open Function Set

variable {๐•œ : Type*} [NontriviallyNormedField ๐•œ] {E E' F F' G : Type*}
  [NormedAddCommGroup E] [NormedSpace ๐•œ E] [NormedAddCommGroup E'] [NormedSpace ๐•œ E']
  [NormedAddCommGroup F] [NormedSpace ๐•œ F] [NormedAddCommGroup F'] [NormedSpace ๐•œ F']

namespace LinearMap

lemma range_prodMap {f : E โ†’L[๐•œ] F} {g : E' โ†’L[๐•œ] F'} :
    range (f.prodMap g) = (range f).prod (range g) := by
  ext x
  rw [Submodule.mem_prod]
  simp_rw [LinearMap.mem_range]
  constructor <;> intro h
  ยท have : x โˆˆ Set.range (Prod.map f g) := h
    rcases h with โŸจโŸจy1, yโ‚‚โŸฉ, hyโŸฉ
    all_goals simp_all
  ยท choose yโ‚ hyโ‚ using h.1
    choose yโ‚‚ hyโ‚‚ using h.2
    use (yโ‚, yโ‚‚), by simp [hyโ‚, hyโ‚‚]

Michael Rothgang (Mar 21 2025 at 14:03):

@loogle LinearMap, "range", "prod"

Michael Rothgang (Mar 21 2025 at 14:04):

None of these mentions Prod.map.

Junyan Xu (Mar 23 2025 at 09:08):

lemma range_prodMap {f : E โ†’L[๐•œ] F} {g : E' โ†’L[๐•œ] F'} :
    range (f.prodMap g) = (range f).prod (range g) := by
  ext; simp [Prod.ext_iff]

works


Last updated: May 02 2025 at 03:31 UTC