Primitive sets and the slack-vector form of Scarf's lemma #
This file reformulates rooms and doors of an IndexedLOrder in terms of primitive
sets over the enlarged good set T ⊕ I, the "slack-vector" language of Scarf's
algorithm. It relates the room/door combinatorics developed in Scarf to this
primitive-set picture used by the path-following termination argument.
The abstract enlargement T ∪ I used for Scarf's slack-vector language.
Equations
- IndexedLOrder.ExtendedGoods T I = (T ⊕ I)
Instances For
Turn a room (σ, C) into the corresponding primitive set σ ∪ (I \ C).
Equations
Instances For
Turn a door (τ, D) into the corresponding almost primitive set τ ∪ (I \ D).
Equations
Instances For
The goods part of a subset of T ∪ I.
Equations
- IndexedLOrder.fromGoods X = {t : T | Sum.inl t ∈ X}
Instances For
The indices whose slack vectors are missing from a subset of T ∪ I.
Equations
- IndexedLOrder.fromMissing X = {i : I | Sum.inr i ∉ X}
Instances For
The room/door cell associated to a subset of T ∪ I.
Instances For
Primitive sets stated through the equivalent room language.
Equations
- IndexedLOrder.isRoomPrimitive X = ∃ (σ : Finset T) (C : Finset I), IndexedLOrder.isRoom σ C ∧ X = IndexedLOrder.toPrimitiveSet σ C
Instances For
Scarf primitive sets in the paper's native dominance form, using the characterization
X primitive iff X ∩ T is dominant with respect to the missing slack indices.
Equations
Instances For
Backwards-compatible name for the paper's native primitive definition.
Equations
Instances For
Almost primitive sets, stated through the equivalent door language.
Equations
- IndexedLOrder.isAlmostPrimitive Y = ∃ (τ : Finset T) (D : Finset I) (σ : Finset T) (C : Finset I), IndexedLOrder.isDoorof τ D σ C ∧ Y = IndexedLOrder.toAlmostPrimitive τ D
Instances For
Almost primitive sets in the paper's native form: an (n-1)-face contained in a
primitive set.
Equations
- IndexedLOrder.isAlmostPrimitiveNative Y = (Y.card + 1 = Fintype.card I ∧ ∃ (X : Finset (IndexedLOrder.ExtendedGoods T I)), IndexedLOrder.isPrimitiveNative X ∧ Y ⊆ X)
Instances For
A room gives the equivalent room-language primitive set.
Extract the room corresponding to a primitive set.
A room gives a primitive set in the paper's native sense.
For sets written in room coordinates, being primitive is exactly being a room. This is the cardinality condition implicit in the paper's comparison between dominant sets and primitive sets.
A room recovered from a primitive set is again primitive.
A door of a room gives an almost primitive set.
Recover the door represented by an almost primitive set.
Recover a room incident to an almost primitive set.
Incidence of doors and rooms becomes subset inclusion of the corresponding sets.
A useful packaged form of the door/primitive-set incidence correspondence.
Scarf's main lemma for internal almost primitive sets, in the room/door language: an internal almost primitive face is contained in two distinct primitive sets.
Native Scarf main lemma in the "remove one point" form: after removing a point from a primitive set, either the resulting face lies in the slack boundary, or there is a unique other primitive set containing that face.
Scarf's main lemma in the paper's replacement form: after removing x from
a primitive set X, either only slack vectors remain, or there is a unique
new element y ∉ X such that X - x + y is primitive.
The boundary almost primitive set made only of slacks, missing i.
Instances For
Each slack boundary is an almost primitive set.
Every almost primitive face made only of slack vectors is one of the boundary
faces I - i.
Boundary almost primitive faces are incident to exactly one primitive set.
The full Scarf incidence dichotomy for almost primitive faces: a boundary face is incident to one primitive set, while an internal face is incident to exactly two primitive sets.
Incidence between an almost primitive face and a primitive set is exactly
the old room-door incidence after translating both sides back to (goods, indices).
A Scarf replacement step: two primitive sets are adjacent if they share an almost primitive face. This is the primitive-set version of walking through a door from one room to another.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extend a coloring of goods by coloring each slack vector by its own index.
Equations
- IndexedLOrder.extendedColoring c (Sum.inl t) = c t
- IndexedLOrder.extendedColoring c (Sum.inr i) = i
Instances For
For a room, Scarf's statement that a primitive set has all colors is exactly the Section 1 statement that the corresponding room is colorful.
Scarf's primitive-set coloring condition c(X) = I.
Equations
Instances For
For an arbitrary primitive set, Scarf's condition c(X) = I is exactly the
colorful-room condition for the associated room (X ∩ T, I \ X).
A split Scarf replacement step, matching §3: an all-but-i primitive set moves
through an all-but-i almost primitive face to another primitive set, which is
either still all-but-i or already fully colored.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The graph-walk segment represented by one split Scarf replacement step:
X → Y → X'.
Equations
Instances For
The first graph-walk segment of Scarf's algorithm, from I - i into the building.
A complete primitive-language Scarf algorithm trace of type i. It starts at
the boundary face I - i, follows G_i, and terminates at a fully colored
primitive set. The local lemmas above build such walks from initial and split
replacement segments.
- terminal : Finset (ExtendedGoods T I)
The terminal room of a Scarf-algorithm trace.
- terminal_fullyColored : isFullyColoredPrimitive c self.terminal
- walk : (GiGraph c i).Walk (associatedCell (slackBoundary i)) (associatedCell self.terminal)
The graph walk recorded by a Scarf-algorithm trace.
Instances For
A reachable fully colored primitive set gives a complete Scarf trace.
It is enough to find a fully colored primitive set in the connected component of the outside door. This is the component-level form of the path-following argument in §3.
Existence of a complete Scarf trace is equivalent to finding a fully colored primitive set in the connected component of the outside door. This isolates the remaining graph-theoretic endpoint argument from the primitive-set translation.
The induced subgraph on the vertices reachable from a fixed base vertex.
Equations
Instances For
Scarf's combinatorial theorem in the primitive-set language from §3: after extending a coloring by the identity on slack vectors, some primitive set has all colors, obtained by following the Scarf trace from the boundary door.
Scarf's combinatorial theorem in the primitive-set language from §3. The proof is routed through the path-following trace, matching the narrative of the paper.
The unique primitive set incident to the boundary face I - i, in the same
language used to start Scarf's replacement path.
Splitting a replacement step gives exactly the alternating primitive / almost-primitive pattern described in §3.
Utility functions realize the abstract preference orders when they preserve and reflect each indexed strict order.
Instances For
Positive utility functions, matching the economic convention in §3.
Instances For
The lower contour set of x in the order indexed by i.
Equations
- IndexedLOrder.orderLowerSet i x = {y : T | y ≤ x}
Instances For
The finite rank utility associated to an indexed order. Adding 1 makes it
positive, matching the economic convention in the paper.
Equations
- IndexedLOrder.orderUtility i x = ↑(IndexedLOrder.orderLowerSet i x).card + 1
Instances For
A utility vector embeds a good into ℝ^I.
Equations
- IndexedLOrder.utilityVector u x i = u i x
Instances For
The paper's "identify T with its image u(T)" step, formalized as an
equivalence once the utility realization separates points.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coordinate model of Scarf's slack vector for face i: the ith
coordinate is zero and all other coordinates are the chosen large value M i.
Instances For
Interpret the enlarged set T ∪ I as points in ℝ^I.
Equations
Instances For
A uniform choice of slack heights for a finite utility realization.
Equations
- IndexedLOrder.uniformSlackHeight = Function.const I (↑(Fintype.card T) + 2)
Instances For
Slack-height condition for Scarf's slack vectors: the nonzero coordinate
coord of the slack vector s(slack) is above the corresponding coordinate
of every good. Since s(slack) coord = M slack when coord ≠ slack, this is
the condition needed for the coordinate model to match the abstract
room/primitive-set model.
Equations
- IndexedLOrder.SlackHeightsDominateGoodsCoordinates u M = ∀ (slack coord : I) (x : T), coord ≠ slack → u coord x < M slack
Instances For
Backwards-compatible short name for the slack-height condition.
Equations
Instances For
The finite set of Scarf slack vectors.
Equations
Instances For
The actual coordinate enlarged set u(T) ∪ {s(i) | i ∈ I} from §3.
Equations
Instances For
The abstract T ∪ I representation is equivalent to the actual coordinate
enlarged set u(T) ∪ {s(i)} under the paper's positivity/slack hypotheses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coordinate-induced strict relation on T ∪ I: one point is smaller
exactly when its ith coordinate is smaller. To match the paper, linearity is
kept as an explicit hypothesis below rather than enforced by a tie-breaker.
Equations
- IndexedLOrder.extendedCoordinateLt u M i x y = (IndexedLOrder.extendedCoordinatePoint u M x i < IndexedLOrder.extendedCoordinatePoint u M y i)
Instances For
The paper assumes, after perturbing if necessary, that coordinate values define linear orders on the enlarged set.
Equations
- IndexedLOrder.CoordinateValuesDefineLinearOrders u M = ∀ (i : I), IsStrictTotalOrder (IndexedLOrder.ExtendedGoods T I) (IndexedLOrder.extendedCoordinateLt u M i)
Instances For
The paper's "the M_i are pairwise different" assumption.
Instances For
All utility coordinates, as a finite set of real numbers.
Equations
- IndexedLOrder.utilityCoordinateValues u = Finset.image (fun (p : I × T) => u p.1 p.2) (Finset.univ.product Finset.univ)
Instances For
A strict upper bound for all utility coordinates. This packages the finite maximum used to make the slack heights dominate the goods coordinates.
Equations
Instances For
An explicit version of the paper's "perturb the slack heights" step: start above every utility coordinate and then add the finite index of each trader.
Equations
Instances For
Under the hypotheses stated in §3 (positive utilities realizing the
preferences, slack bounds, and pairwise different slack heights), coordinate
values themselves define linear orders on T ∪ I.
The fully formalized perturbation step from §3: for every positive utility
realization on a finite, nonempty index set, there are slack heights that
dominate all goods coordinates, are pairwise distinct, and therefore make
coordinate comparison into linear orders on T ∪ I.
The §3 utility-and-perturbation passage as a single existence statement: starting only from the abstract indexed linear orders, choose positive utility functions realizing the orders and pairwise distinct slack heights large enough to make coordinate comparison linear on the enlarged set.
The indexed family of coordinate-induced orders on the enlarged set.
Equations
- IndexedLOrder.coordinateIndexedLOrder u M hCoord = { IST := fun (i : I) => linearOrderOfSTO (IndexedLOrder.extendedCoordinateLt u M i) }
Instances For
The literal coordinate-dominance primitive definition on the enlarged ordered set.
Equations
- IndexedLOrder.isCoordinatePrimitive u M hCoord X = (X.card = Fintype.card I ∧ IndexedLOrder.isDominant X Finset.univ)
Instances For
Scarf's main lemma for the literal coordinate-dominance definition of
primitive sets on T ∪ I.