While this submission is a draft, it cannot be used by other submissions.

Componentwise mode spaces and diagonal tensors

Lax342547.ComponentSpaces · concepts/Lax342547/ComponentSpaces.lean · lax-342547

proven

Loading review…

Sign in with ORCID

Community review

Flags

Each flag is tied to a public ORCID identity and explains why this concept may be incorrect.

No flags have been submitted.

    Community review

    Flag this concept

    State precisely what appears incorrect. This explanation will be public under your ORCID name.

    No source line selected.

    Natural Language Statement

    Lemma

    Coordinatewise mode subspaces form a join-stable cover class, and the range of a diagonal tensor map is the product of its component ranges.

    Concept map
    22 concepts
    100%
    Proven claimThis conceptRelated conceptA → B: B builds on ADescendants are omitted for concepts with more than 10 descendants.
    Evidence

    This concept declares 4 statements. Each proof establishes one of them relative to its assumptions.

    Lean source view on GitHub

    1import Lax342547.CoverClasses
    2import Lax342547.DirectRanks
    3
    4/-!
    5---
    6title: Componentwise mode spaces and diagonal tensors
    7type: lemma
    8---
    9Coordinatewise mode subspaces form a join-stable cover class, and the range of a diagonal tensor map is the product of its component ranges.
    10-/
    11
    12namespace Lax342547.ComponentSpaces
    13
    14open Lax342547.CoverClasses
    15open scoped BigOperators
    16
    17noncomputable def coordinateSpace {K e : Type} [Field K] {V : e → Type}
    18 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)] (S : ∀ i, Submodule K (V i)) :
    19 Submodule K (∀ i, V i) where
    20 carrier := {v | ∀ i, v i ∈ S i}
    21 zero_mem' := fun i => (S i).zero_mem
    22 add_mem' := fun h g i => (S i).add_mem (h i) (g i)
    23 smul_mem' := fun c _ h i => (S i).smul_mem c (h i)
    24
    25def Componentwise {K e : Type} [Field K] {V : e → Type}
    26 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)]
    27 (T : Submodule K (∀ i, V i)) : Prop := ∃ S, T = coordinateSpace S
    28
    29axiom coordinate_space_bot {K e : Type} [Field K] {V : e → Type}
    30 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)] :
    31 coordinateSpace (fun i => (⊥ : Submodule K (V i))) = ⊥
    32
    33axiom coordinate_space_sup {K e : Type} [Field K] {V : e → Type}
    34 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)]
    35 (S T : ∀ i, Submodule K (V i)) :
    36 coordinateSpace S ⊔ coordinateSpace T = coordinateSpace (fun i => S i ⊔ T i)
    37
    38axiom componentwise_join_closed {K e : Type} [Field K] {V : e → Type}
    39 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)] : JoinClosed (Componentwise (K := K) (V := V))
    40
    41axiom diagonal_range {K e : Type} [Field K] {V W : e → Type}
    42 [∀ i, AddCommGroup (V i)] [∀ i, Module K (V i)]
    43 [∀ i, AddCommGroup (W i)] [∀ i, Module K (W i)] (M : ∀ i, V i →ₗ[K] W i) :
    44 LinearMap.range (LinearMap.piMap M) = coordinateSpace (fun i => LinearMap.range (M i))
    45
    46end Lax342547.ComponentSpaces
    47
    Show ProofShow ProofShow ProofShow Proof

    Discussion

    Ask a question or add context. Endorsements and structured flags are kept in the review panel above.

    Loading discussion…