Core/Scales/Bounds.lean — bounded-scale theorems + maxOnScale #
@cite{rett-2026}
Two clusters of theorems:
Typeclass-driven licensing (§4 of legacy Scale.lean):
open_no_upward_ceiling,upperBound_admits_optimum, etc. — show how Mathlib boundedness typeclasses (NoMaxOrder,OrderTop,OrderBot,NoMinOrder) interact with monotonicity to admit/block optima.Order-sensitive maximality (§6b of legacy Scale.lean):
maxOnScale R X,IsMaxDetermined,isAmbidirectional— Rett 2026's relation-parameterized MAX operator + ambidirectionality scaffolding.
This file is part of the Phase A decomposition of the legacy
Core/Scales/Scale.lean dumping ground (master plan v4).
On a scale with no maximum (NoMaxOrder), any upward monotone family
that is nontrivial (i.e., some value yields a different set of worlds
than another) cannot have a ceiling: for any candidate optimum, a
strictly larger value exists.
This is the typeclass-level counterpart of the data-level prediction
Boundedness.open_.isLicensed = false: open scales block degree
modification and TIA licensing because no element is maximal.
Proof sketch: For any x, NoMaxOrder gives y > x. If P is
upward monotone, P x w → P y w, so x is never the unique optimum.
On a scale with a top element (OrderTop), the predicate · = ⊤ is
upward monotone (vacuously — only ⊤ satisfies it) and nonconstant
(on nontrivial types). This witnesses that upper-bounded scales admit
an optimum.
Proof sketch: ⊤ satisfies · = ⊤, and for any x < ⊤, x does not.
So the family is not constant → AdmitsOptimum holds.
On a scale with a bottom element (OrderBot), the predicate · = ⊥ is
downward monotone and nonconstant (on nontrivial types). This witnesses
that lower-bounded scales admit an optimum.
Boundedness is necessary for licensing: on a scale with no upper bound and no lower bound, there exists a monotone family with no optimum. Contrapositive: if every monotone family admits an optimum, the scale has a bound.
Scale-sensitive maximality operator #
@cite{rett-2026}: MAX_R(X) picks the element(s)
of X that R-dominate all other members. For the < scale this is the GLB
(earliest / smallest), for > the LUB (latest / largest). The same operator
underlies both temporal connectives (before/after) and degree comparatives.
- Rett, J. (2026). Semantic ambivalence and expletive negation. Ms.
Order-sensitive maximality (@cite{rett-2026}, def. 1): MAX_R(X) = { x ∈ X | ∀ x' ∈ X, x' ≠ x → R x x' }. Domain-general over any relation R and set X.
Equations
- Core.Scale.maxOnScale R X = {x : α | x ∈ X ∧ ∀ x' ∈ X, x' ≠ x → R x x'}
Instances For
MAX on a singleton is that singleton: MAX_R({x}) = {x}. The universal quantifier is vacuously satisfied.
MAX₍<₎ on a closed interval {x | s ≤ x ∧ x ≤ f} is the singleton {s}.
The minimum element s R-dominates all others on the < scale.
Dual: MAX₍>₎ on the same interval is {f}.
MAX₍>₎ on a closed interval {x | s ≤ x ∧ x ≤ f} is the singleton {f}.
The maximum element R-dominates all others on the > scale.
A scalar construction f is ambidirectional iff applying f to a set B and to its complement Bᶜ yields the same result, because MAX picks the same informative boundary from both. This is the mechanism behind expletive negation licensing: when f(B) ↔ f(Bᶜ), negating B is truth-conditionally vacuous.
Equations
- Core.Scale.isAmbidirectional f B = (f B ↔ f Bᶜ)
Instances For
A predicate f is MAX_R-determined iff its value depends only on
maxOnScale R of its argument: any two sets with the same MAX_R
yield the same f-verdict. The before/until/comparative theorems all
establish exactly this: before relates A to MAX₍<₎ of B, the
comparative than-clause to MAX₍≥₎ of the degree set, etc.
Equations
- Core.Scale.IsMaxDetermined R f = ∀ (B₁ B₂ : Set α), Core.Scale.maxOnScale R B₁ = Core.Scale.maxOnScale R B₂ → (f B₁ ↔ f B₂)
Instances For
Converse: an ambidirectional construction must share its MAX_R
bound between B and Bᶜ — but only when MAX_R alone witnesses the
distinction. Stated as a contrapositive to make the empirical content
explicit: if MAX_R differs between B and Bᶜ but the construction
cannot tell them apart by any other means (i.e. MAX_R-determined),
then the construction is non-ambidirectional. The full converse
requires assuming f separates sets with distinct MAX_R values, so
we instead expose this as a derived fact only under that assumption.
Bridge: maxOnScale (· ≥ ·) applied to the "at least" degree set
{d | d ≤ μ(w)} yields {μ(w)} — the singleton containing the true
value. This connects the relational MAX to IsMaxInf.
The convention: maxOnScale R X picks elements x ∈ X with R x x' for
all other x'. With R = (· ≥ ·), this picks elements ≥ all others,
i.e., the maximum.
MAX₍≥₎ on {d | d ≤ b} is {b}. Corollary of maxOnScale_atLeast_singleton
with μ = id. Used by the comparative boundary theorems.