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

Greedy mode space exposure

Lax342547.GreedySpans · concepts/Lax342547/GreedySpans.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

    Finite greedy ordering of actual subspaces has nonnegative decreasing span increments; tails retain the greedy property and their increment sum equals the dimension increase.

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

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

    1 exists_greedy_order proven

    5 greedy_decreasing proven

    7 increments_drop proven

    9 increments_length proven

    Lean source view on GitHub

    1import Lax342547.SpanDeficits
    2import Mathlib.Data.Finset.Max
    3import Mathlib.Data.Real.Basic
    4
    5/-!
    6---
    7title: Greedy mode space exposure
    8type: lemma
    9---
    10Finite greedy ordering of actual subspaces has nonnegative decreasing span increments; tails retain the greedy property and their increment sum equals the dimension increase.
    11-/
    12
    13namespace Lax342547.GreedySpans
    14
    15open scoped BigOperators
    16
    17noncomputable def gain {K V : Type} [Field K] [AddCommGroup V] [Module K V]
    18 [FiniteDimensional K V] (W S : Submodule K V) : ℝ :=
    19 (Module.finrank K (W ⊔ S : Submodule K V) : ℝ)-Module.finrank K W
    20
    21def Greedy {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    22 [FiniteDimensional K V] (S : ι → Submodule K V) : Submodule K V → List ι → Prop
    23 | _, [] => True
    24 | W, i::l => (∀ j ∈ l, gain W (S j) ≤ gain W (S i)) ∧ Greedy S (W ⊔ S i) l
    25
    26axiom gain_nonneg {K V : Type} [Field K] [AddCommGroup V] [Module K V]
    27 [FiniteDimensional K V] (W S : Submodule K V) : 0 ≤ gain W S
    28
    29axiom gain_le_rank {K V : Type} [Field K] [AddCommGroup V] [Module K V]
    30 [FiniteDimensional K V] (W S : Submodule K V) : gain W S ≤ Module.finrank K S
    31
    32axiom gain_antitone {K V : Type} [Field K] [AddCommGroup V] [Module K V]
    33 [FiniteDimensional K V] {W U : Submodule K V} (hWU : W ≤ U) (S : Submodule K V) :
    34 gain U S ≤ gain W S
    35
    36axiom exists_greedy_order {K V ι : Type} [Field K] [DecidableEq ι] [AddCommGroup V] [Module K V]
    37 [FiniteDimensional K V] (S : ι → Submodule K V) (I : Finset ι) (W : Submodule K V) :
    38 ∃ l : List ι, l.Nodup ∧ l.toFinset = I ∧ Greedy S W l
    39
    40noncomputable def spanAfter {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    41 (S : ι → Submodule K V) : Submodule K V → List ι → Submodule K V
    42 | W, [] => W
    43 | W, i::l => spanAfter S (W ⊔ S i) l
    44
    45noncomputable def increments {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    46 [FiniteDimensional K V] (S : ι → Submodule K V) : Submodule K V → List ι → List ℝ
    47 | _, [] => []
    48 | W, i::l => gain W (S i)::increments S (W ⊔ S i) l
    49
    50axiom increments_length {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    51 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) :
    52 (increments S W l).length = l.length
    53
    54axiom span_after_eq {K V ι : Type} [Field K] [DecidableEq ι] [AddCommGroup V] [Module K V]
    55 (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) :
    56 spanAfter S W l = W ⊔ l.toFinset.sup S
    57
    58axiom increments_sum {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    59 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) :
    60 (increments S W l).sum = (Module.finrank K (spanAfter S W l) : ℝ)-Module.finrank K W
    61
    62axiom increments_le {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    63 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) (a : ℝ)
    64 (h : ∀ i ∈ l, gain W (S i) ≤ a) : ∀ x ∈ increments S W l, x ≤ a
    65
    66axiom increments_nonneg {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    67 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) :
    68 ∀ x ∈ increments S W l, 0 ≤ x
    69
    70axiom greedy_decreasing {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    71 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι)
    72 (h : Greedy S W l) : (increments S W l).Pairwise (fun a b => b ≤ a)
    73
    74axiom greedy_drop {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    75 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι)
    76 (h : Greedy S W l) (n : ℕ) : Greedy S (spanAfter S W (l.take n)) (l.drop n)
    77
    78axiom increments_drop {K V ι : Type} [Field K] [AddCommGroup V] [Module K V]
    79 [FiniteDimensional K V] (S : ι → Submodule K V) (W : Submodule K V) (l : List ι) (n : ℕ) :
    80 (increments S W l).drop n = increments S (spanAfter S W (l.take n)) (l.drop n)
    81
    82end Lax342547.GreedySpans
    83
    Show ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow ProofShow Proof

    Discussion

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

    Loading discussion…