Majority normalization of sparse cut profiles
Lax342547.CutSparsity · concepts/Lax342547/CutSparsity.lean · lax-342547
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Lemma
Counting unequal unordered tag pairs forces a strict majority whenever four times the cut support is smaller than the square of the tag count. Subtracting its common value gives a unique majority-zero representative.
Concept map
Evidence
This concept declares 5 statements. Each proof establishes one of them relative to its assumptions.
1 exists_majority proven
2 exists_unique_normalized proven
3 majority_unique proven
4 minority_bound proven
5 unequal_card_le proven
Lean source view on GitHub
| 1 | import Lax342547.CutProfiles |
| 2 | import Mathlib.Data.Fintype.Card |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: Majority normalization of sparse cut profiles |
| 7 | type: lemma |
| 8 | --- |
| 9 | Counting unequal unordered tag pairs forces a strict majority whenever |
| 10 | four times the cut support is smaller than the square of the tag count. |
| 11 | Subtracting its common value gives a unique majority-zero representative. |
| 12 | -/ |
| 13 | |
| 14 | namespace Lax342547.CutSparsity |
| 15 | |
| 16 | open Lax342547.MomentSpace Lax342547.CutProfiles |
| 17 | |
| 18 | variable {Tag V : Type} [AddCommGroup V] [Module Binary V] |
| 19 | |
| 20 | def UnequalPairs (w : Tag → V) := {p : Tag × Tag // w p.1 ≠ w p.2} |
| 21 | |
| 22 | def NonzeroCuts (w : Tag → V) := {e : Component Tag // cutMap w e ≠ 0} |
| 23 | |
| 24 | noncomputable def cutSize (w : Tag → V) : ℕ := Nat.card (NonzeroCuts w) |
| 25 | |
| 26 | noncomputable def valueCount (w : Tag → V) (c : V) : ℕ := Nat.card {t : Tag // w t = c} |
| 27 | |
| 28 | noncomputable def supportSize (w : Tag → V) : ℕ := Nat.card {t : Tag // w t ≠ 0} |
| 29 | |
| 30 | axiom unequal_card_le [Fintype Tag] (w : Tag → V) : |
| 31 | Nat.card (UnequalPairs w) ≤ 2 * cutSize w |
| 32 | |
| 33 | axiom exists_majority [Fintype Tag] (w : Tag → V) |
| 34 | (h : 4 * cutSize w < Fintype.card Tag * Fintype.card Tag) : |
| 35 | ∃ c : V, Fintype.card Tag < 2 * valueCount w c |
| 36 | |
| 37 | axiom minority_bound [Fintype Tag] (w : Tag → V) (c : V) |
| 38 | (h : Fintype.card Tag < 2 * valueCount w c) : |
| 39 | Fintype.card Tag * Nat.card {t : Tag // w t ≠ c} ≤ 2 * cutSize w |
| 40 | |
| 41 | axiom majority_unique [Fintype Tag] [Nonempty Tag] (w v : Tag → V) |
| 42 | (hcut : cutMap w = cutMap v) |
| 43 | (hw : Fintype.card Tag < 2 * valueCount w 0) |
| 44 | (hv : Fintype.card Tag < 2 * valueCount v 0) : w = v |
| 45 | |
| 46 | axiom exists_unique_normalized [Fintype Tag] [Nonempty Tag] |
| 47 | (W : Tag → Submodule Binary V) |
| 48 | (hW : ∀ S : Finset Tag, Fintype.card Tag < 2 * S.card → |
| 49 | (⨅ t : {t // t ∈ S}, W t.val) ≤ ⨅ t, W t) |
| 50 | (w : Tag → V) (hw : ∀ t, w t ∈ W t) |
| 51 | (h : 4 * cutSize w < Fintype.card Tag * Fintype.card Tag) : |
| 52 | ∃! v : Tag → V, (∀ t, v t ∈ W t) ∧ cutMap v = cutMap w ∧ |
| 53 | Fintype.card Tag < 2 * valueCount v 0 ∧ |
| 54 | Fintype.card Tag * supportSize v ≤ 2 * cutSize w |
| 55 | |
| 56 | end Lax342547.CutSparsity |
| 57 |
Builds on
From Mathlib
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments