IndisputableMonolith.Gravity.SevenGaps.Gap2SizeBlindnessReach
Establishes the reach of size-blindness for Gap 2: blindness to a feature set X forces size-blindness of every labeled weight exactly when X resolves no more than the three index counts. Introduces loopCount, an incidence invariant not fixed by those sizes, plus its disjoint-union and relabeling laws. Downstream posting-cost and inevitability modules cite it to rule out weaker sufficient premises of the blindness shape.
claimFor a complex $K$, let $\mathrm{loopCount}(K)$ be the number of edges whose two endpoints coincide. This is a function of the incidence data and is not a function of the three index sizes alone. Size-blindness of a labeled weight is forced by blindness to a feature set $X$ for every weight if and only if $X$ resolves no more structure than those three counts.
background
Gap 2 in the gravity stack concerns the gauge-counting principle $\nu = 1/|\mathrm{Aut}|$ for the physical mass class. Gap2GaugeVolume shows a gluing law forces the inverse factorial and hence gauge counting, but assumed the gluing law. The gluing-derivation line tries to derive that law rather than postulate it, following the 2026-07-28 adversarial panel route that needs a disjoint union on the carrier.
Premise (i) of that derivation is size-blindness of the labeled weight: the weight cannot see the three index sizes. A natural hope is a weaker premise of the form "the weight cannot distinguish complexes that agree on feature set $X$". This module studies when such $X$-blindness actually yields size-blindness.
The key witness is loopCount: edges with coinciding endpoints. It is built from incidence data, is invariant under relabeling, and adds under disjoint union, yet is not determined by the three index sizes. Proper edge counts and injection lemmas for left/right summand vertices support the disjoint-union calculus.
proof idea
Definition-and-lemma module, not a single theorem. It defines loopCount (and properEdgeCount) on the incidence presentation, proves loopCount equals a sum over edges of an endpoint-coincidence predicate, and establishes congruence under edgewise relabeling.
Invariance under the module's notion of complex isomorphism follows from the relabeling lemma. Disjoint-union identities use injectivity of the left/right vertex embeddings and the corresponding edge-vertex lemmas, yielding additivity of loopCount and the empty-complex base case. Those facts supply the counterexample structure: complexes agreeing on coarser $X$ can still differ in loopCount, so $X$-blindness need not imply size-blindness unless $X$ is no finer than the three counts.
why it matters in Recognition Science
Closes a premise-strength gap on the Gap 2 gluing route. Downstream Gap2PostingCostDerivation states the point directly: Gap2GluingDerivation assumes size-blindness, and this module shows no weaker premise of the form "weight cannot distinguish complexes agreeing on $X$" supplies it, because blindness to $X$ forces size-blindness for every weight exactly when $X$ resolves no more than the three counts. That rules out a weaker sufficient premise of this shape without claiming the two conditions are interchangeable.
GaugeCountingInevitableReasons imports the module into the necessary-reasons census for why richer RecognitionLedger / posting-layer structure would force the gauge-counting principle. Together with GaugeHistoryMeasure and Gap2GluingDerivation, it keeps the gluing-law derivation from silently relocating its assumptions.
scope and limits
- Does not derive the gluing law or the gauge-counting principle itself.
- Does not claim size-blindness and three-count blindness are interchangeable for every weight.
- Does not supply a posting-cost derivation of premise (i); that is downstream.
- Does not assert loopCount is the only size-sensitive incidence invariant.
- Does not address physical mass spectra or Newtonian limits outside Gap 2 bookkeeping.
used by (2)
depends on (2)
declarations in this module (94)
-
def
loopCount -
theorem
loopCount_eq_sum -
theorem
loop_iff_of_relabel -
theorem
loopCount_congr -
theorem
loopCount_invariant -
theorem
inlV_inj -
theorem
inrV_inj -
theorem
dunion_edgeVerts_inl -
theorem
dunion_edgeVerts_inr -
theorem
loopCount_dunion -
theorem
loopCount_emptyComplex -
def
properEdgeCount -
theorem
properEdgeCount_eq_sum -
theorem
properEdgeCount_congr -
theorem
properEdgeCount_invariant -
theorem
inlV_eq_iff -
theorem
inrV_eq_iff -
theorem
properEdgeCount_dunion -
theorem
properEdgeCount_eq_zero_of_nV_le_one -
theorem
properEdgeCount_emptyComplex -
structure
AdditiveStat -
def
loopStat -
def
properStat -
def
statWeight -
theorem
gibbsWeight_positive -
theorem
statWeight_invariant -
theorem
statWeight_pos -
theorem
statWeight_emptyComplex -
theorem
classMass_statWeight -
theorem
statWeight_glues -
theorem
statWeight_glues_at_dust_edge -
theorem
also -
theorem
statWeight_not_gluesGenerally -
def
twoLoops -
def
twoBridges -
theorem
loopCount_twoLoops -
theorem
loopCount_twoBridges -
theorem
properEdgeCount_twoLoops -
theorem
properEdgeCount_twoBridges -
theorem
twoLoops_sizes -
theorem
twoBridges_sizes -
theorem
witnesses_same_sizes_different_loops -
def
SizeBlind -
theorem
sizeWeight_sizeBlind -
theorem
sq_ne_one_of_pos_ne_one -
theorem
loopEscape_not_sizeBlind -
theorem
properEscape_not_sizeBlind -
def
NormalizedAtTheAtoms -
theorem
gibbsWeight_eq_one_at_atoms -
theorem
properEscape_normalizedAtTheAtoms -
theorem
loopEscape_fails_the_atoms -
theorem
statWeight_sizeBlind_at_one -
theorem
loopEscape_sizeBlind_at_one -
theorem
properEscape_sizeBlind_at_one -
def
SatisfiesTheOtherHypotheses -
theorem
properEscape_satisfiesTheOtherHypotheses -
theorem
classMass_statWeight_at_one -
theorem
properEscape_classMass_ne_mu -
theorem
size_blindness_not_forced_by_the_other_hypotheses -
def
RespectsKinds -
theorem
postingAlphabet_equiv_iff_total -
theorem
sizes_le_of_respectsKinds -
theorem
exists_respectsKinds_iff_sizes -
def
AlphabetBlindSorted -
theorem
alphabetBlindSorted_iff_sizeBlind -
theorem
loopEscape_not_alphabetBlindSorted -
def
blob -
def
canonicalSizeFun -
theorem
sizeBlind_eq_sizeWeight -
theorem
sizeBlind_iff_exists_sizeFun -
theorem
premise_one_iff_alphabetBlind -
def
Invariant -
def
ResolvesNoMoreThanSizes -
def
BlindTo -
theorem
coarse_invariant_blindness_implies_sizeBlind -
theorem
fine_invariant_blindness_does_not_imply_sizeBlind -
theorem
invariant_coarse_or_fine -
theorem
blindness_forces_premise_one_iff_coarse -
theorem
indistinguishability_premises_never_weaken_premise_one -
def
sizeStatInvariant