apodictic machine-checked praxeology

1.11. Exchange๐Ÿ”—

The law of marginal utility is one target. Exchange is the second, and it was chosen for what it can diagnose. That both parties to a voluntary exchange benefit is among the conclusions the tradition leans on most. Read as a claim about what each party expects when he trades, it is hard to fault. Read as a claim about how the trade turns out, it plainly misses some real trades: the buyer who was mistaken about what he bought, the buyer who regrets. The questions are which reading Rothbard's words commit him to, and which assumption fails where the second reading misses.

Rothbard states the doctrine in one paragraph (MES, p. 85), and the paragraph makes four claims. Why people trade: "both people make it because they expect that it will benefit them; otherwise they would not have agreed to the exchange." When they can: the two goods must "have reverse valuations on the respective value scales of the two parties" โ€” each ranks the other's good above his own โ€” "before making the exchange". What they must know: "each of the parties knows of the existence of the other and the goods that he possesses." And the result: "After the exchange is made, both A and B have shifted to a higher position on their respective value scales." The paragraph also confines itself to "actions that are purely voluntary".

The bridge. "Otherwise they would not have agreed" is an inference from what a man does to what he prefers. That is demonstrated preference; its docstring is given in full under The claims. The law of marginal utility never needed it; exchange cannot do without it. It is stated of one trade, not of action in general. It ranks whole holdings, everything the man owns with one good against everything he owns with the other, since that is what a trade chooses between. And it counts each holding by what the man believes, at the moment of trading, its goods can do.

That last point is how goods enter at all. Rothbard sets the value scales out as a table of two columns, one per party, and they rank goods: A's column puts "(Good Y)" first and "Good X" second. The library ranks ends, not goods, so a good counts here for the ends the man believes it can serve. "A values the typewriter above the vase" is read as "A prefers what he believes the typewriter can do to what he believes the vase can do". No doctrine of how goods take their value from ends is assumed. But counting a good this way is a choice, and it shows: a good counts for every end it could serve, not only the one it would be put to, and two goods that serve the same end count for it once. For single goods with separate uses, which is Rothbard's case, the two ways of counting agree; where they part, the substitutes condition below is the one that fails. The definitions:

๐Ÿ”—def
Apodictic.ActionFrame.ServedBy (praxis : ActionFrame) (agent : praxis.Agent) (time : praxis.Time) (goods : Set praxis.Means) : Set praxis.End
Apodictic.ActionFrame.ServedBy (praxis : ActionFrame) (agent : praxis.Agent) (time : praxis.Time) (goods : Set praxis.Means) : Set praxis.End

The ends the agent, at that time, believes some good in goods can serve. The bundle a holding counts for.

๐Ÿ”—structure
Apodictic.Trade (praxis : ActionFrame) : Type
Apodictic.Trade (praxis : ActionFrame) : Type

One party's side of a trade: at time, agent gives up the good gives and receives gets, keeping kept.

refusal is what the agent would have been left with had he refused, as a bundle of ends. In a voluntary trade that is simply his holding before the trade (Trade.Voluntary); under a threat it is worse. It is a field because the act alone does not fix it: the same handing-over is a trade or a robbery according to what refusing would have cost.

Shape: our-reconstruction. kept is read as the rest of the holding: a Trade whose given or received good is also among the kept describes no trade. Nothing rules that out, because no theorem in the library needs to. Rothbard assumes the two goods differ ("we implicitly assumed that it must be two different goods that are being exchanged", MES p. 95), as a condition for an exchange to take place; no theorem in the library uses that either, so a Trade does not require it.

agent : praxis.Agent

The trading party.

time : praxis.Time

When the trade is made.

gives : praxis.Means

The good given up.

gets : praxis.Means

The good received.

kept : Set praxis.Means

The rest of the agent's holding, untouched by the trade.

refusal : Set praxis.End

What refusing would have left him with, as ends.

๐Ÿ”—structure

A two-party exchange: two trades, each party giving what the other gets. "A gives up a good to B in exchange for a good that B gives up to A" (MES p. 85). That A and B are two people, and that the two trades are made at one moment, no theorem in the library uses; an Exchange does not require either.

first : Trade praxis

A's side.

second : Trade praxis

B's side.

swap_gives : self.second.gets = self.first.gives

What A gives, B gets.

swap_gets : self.second.gives = self.first.gets

What B gives, A gets.

Reverse valuations follow โ€” at a price. From the bridge, each party ranks the good he got above the good he gave:

๐Ÿ”—theorem
Apodictic.MutualBenefit.reverse_valuations {praxis : ActionFrame} (exchange : Exchange praxis) (demonstratedA : DemonstratedPreference exchange.first) (demonstratedB : DemonstratedPreference exchange.second) (voluntaryA : exchange.first.Voluntary) (voluntaryB : exchange.second.Voluntary) (separableA : exchange.first.SeparableFromRest) (separableB : exchange.second.SeparableFromRest) (uniqueA : exchange.first.KeptServesOtherEnds) (uniqueB : exchange.second.KeptServesOtherEnds) : praxis.Prefers exchange.first.agent exchange.first.time (praxis.ServedBy exchange.first.agent exchange.first.time {exchange.first.gets}) (praxis.ServedBy exchange.first.agent exchange.first.time {exchange.first.gives}) โˆง praxis.Prefers exchange.second.agent exchange.second.time (praxis.ServedBy exchange.second.agent exchange.second.time {exchange.first.gives}) (praxis.ServedBy exchange.second.agent exchange.second.time {exchange.first.gets})
Apodictic.MutualBenefit.reverse_valuations {praxis : ActionFrame} (exchange : Exchange praxis) (demonstratedA : DemonstratedPreference exchange.first) (demonstratedB : DemonstratedPreference exchange.second) (voluntaryA : exchange.first.Voluntary) (voluntaryB : exchange.second.Voluntary) (separableA : exchange.first.SeparableFromRest) (separableB : exchange.second.SeparableFromRest) (uniqueA : exchange.first.KeptServesOtherEnds) (uniqueB : exchange.second.KeptServesOtherEnds) : praxis.Prefers exchange.first.agent exchange.first.time (praxis.ServedBy exchange.first.agent exchange.first.time {exchange.first.gets}) (praxis.ServedBy exchange.first.agent exchange.first.time {exchange.first.gives}) โˆง praxis.Prefers exchange.second.agent exchange.second.time (praxis.ServedBy exchange.second.agent exchange.second.time {exchange.first.gives}) (praxis.ServedBy exchange.second.agent exchange.second.time {exchange.first.gets})

Reverse valuations (MES p. 85): in an exchange, A ranks B's good above his own and B ranks A's good above his own, each on his own scale and by his own beliefs at the time of the exchange.

manifest of Apodictic.MutualBenefit.reverse_valuations praxeological claims: demonstratedA : DemonstratedPreference exchange.first demonstratedB : DemonstratedPreference exchange.second situational conditions: voluntaryA : exchange.first.Voluntary voluntaryB : exchange.second.Voluntary separableA : exchange.first.SeparableFromRest separableB : exchange.second.SeparableFromRest uniqueA : exchange.first.KeptServesOtherEnds uniqueB : exchange.second.KeptServesOtherEnds vocabulary (what the claims are about): praxis : ActionFrame exchange : Exchange praxis conditions carried by the vocabulary (not binders: discharged by whoever supplies the argument): exchange.swap_gives : exchange.second.gets = exchange.first.gives exchange.swap_gets : exchange.second.gives = exchange.first.gets logical background: [propext, Quot.sound] #manifest MutualBenefit.reverse_valuations
manifest of Apodictic.MutualBenefit.reverse_valuations

  praxeological claims:
    demonstratedA : DemonstratedPreference exchange.first
    demonstratedB : DemonstratedPreference exchange.second

  situational conditions:
    voluntaryA : exchange.first.Voluntary
    voluntaryB : exchange.second.Voluntary
    separableA : exchange.first.SeparableFromRest
    separableB : exchange.second.SeparableFromRest
    uniqueA : exchange.first.KeptServesOtherEnds
    uniqueB : exchange.second.KeptServesOtherEnds

  vocabulary (what the claims are about):
    praxis : ActionFrame
    exchange : Exchange praxis

  conditions carried by the vocabulary (not binders: discharged by
  whoever supplies the argument):
    exchange.swap_gives : exchange.second.gets = exchange.first.gives
    exchange.swap_gets : exchange.second.gives = exchange.first.gets

  logical background: [propext, Quot.sound]

The last group on the manifest, the conditions carried by the vocabulary, is taken up below. Three conditions per party are hypotheses, and Rothbard's table shows none of them.

The first is that the trade was voluntary. The bridge holds of a robbery too: the victim prefers handing over his wallet to what refusing would cost him. What it then shows is a ranking of his wallet against the threat, not of his wallet against anything he got. So a trade records, alongside the goods, what refusing would have left the man with, and a trade is voluntary when that is simply what he had. Rothbard rests the inference on exactly this: "The only reason we know that A and B benefit from an exchange is that they voluntarily make the exchange" (p. 1239).

๐Ÿ”—def
Apodictic.Trade.Voluntary {praxis : ActionFrame} (trade : Trade praxis) : Prop
Apodictic.Trade.Voluntary {praxis : ActionFrame} (trade : Trade praxis) : Prop

Voluntary โ€” a condition on the situation. Refusing would have left the agent with exactly what he held: nobody made refusal cost more. Rothbard confines the analysis of exchange to "actions that are purely voluntary" (MES p. 85), and rests the inference to benefit on it: "The only reason we know that A and B benefit from an exchange is that they voluntarily make the exchange" (p. 1239).

The other two are what it costs to talk about two goods at all. The trade ranks whole holdings; the table ranks two goods. Getting from the one to the other needs the rest of what the man owns to stay out of it, and it can fail to in two opposite ways. It fails for complements, goods that are worth more together โ€” a left shoe is worth little without the right one. And it fails for substitutes, goods that do the same job โ€” a man with two umbrellas who trades one away gives up nothing the other cannot do, so the trade shows no ranking of the umbrella at all. Rothbard's case is "unique goods with a supply of one unit" (p. 86), and the substitutes condition is what that phrase assumes. Complements it does not touch: a unique left shoe is still half a pair.

๐Ÿ”—def
Apodictic.Trade.SeparableFromRest {praxis : ActionFrame} (trade : Trade praxis) : Prop
Apodictic.Trade.SeparableFromRest {praxis : ActionFrame} (trade : Trade praxis) : Prop

Separable from what is kept โ€” a condition on the situation, NOT a universal claim. Preferring one holding to another that differs from it in one part carries down to preferring the one part to the other โ€” where the rest is what this agent keeps in this trade, and neither part serves an end the kept goods already serve.

The bundle-level cousin of IndependentUses, fixed to one trade's holding: nothing is said about any other holding the agent might rank. It fails for complements. A man who keeps a right shoe may rank (right shoe + left shoe) above (right shoe + hat) and still rank a hat above a left shoe on its own: the left shoe's worth is in the pair. Rothbard's p. 85 scales list the two goods alone and never mention the rest of what the traders own; this is what that omission costs.

๐Ÿ”—def
Apodictic.Trade.KeptServesOtherEnds {praxis : ActionFrame} (trade : Trade praxis) : Prop
Apodictic.Trade.KeptServesOtherEnds {praxis : ActionFrame} (trade : Trade praxis) : Prop

The kept goods serve other ends โ€” a condition on the situation, at the trade's time. Nothing the agent keeps is believed to serve an end either traded good serves. It fails for substitutes: an agent with two umbrellas who trades one away gives up no end, on the union count, and so demonstrates no ranking of the umbrella at all. It is the scope of "unique goods" (MES p. 86) made explicit.

What does no work. Knowledge of the other party is a condition for a trade to happen. Every theorem here starts from a trade that did happen, so knowledge has nothing to do, and it is not a hypothesis. The linter would refuse it if it were.

"Shifted to a higher position" โ€” on which scale? The same question the ladder read as a history forced. It splits the same way, and settles differently. The history reading refused a constant scale outright. Here constancy enters as a condition, for one pair of holdings only, because it buys something: without it nothing can be said about how a trade turns out.

Judged on the scale and the beliefs of the moment of trading, it is a theorem, and a short one: the bridge plus voluntariness. On that reading, "benefit" is demonstrated preference in a voluntary trade, and nothing more.

๐Ÿ”—theorem
Apodictic.MutualBenefit.better_off_judged_at_trade {praxis : ActionFrame} (trade : Trade praxis) (demonstrated : DemonstratedPreference trade) (voluntary : trade.Voluntary) : praxis.Prefers trade.agent trade.time (trade.after trade.time) (trade.before trade.time)
Apodictic.MutualBenefit.better_off_judged_at_trade {praxis : ActionFrame} (trade : Trade praxis) (demonstrated : DemonstratedPreference trade) (voluntary : trade.Voluntary) : praxis.Prefers trade.agent trade.time (trade.after trade.time) (trade.before trade.time)

Better off, judged at the trade โ€” the holding after ranks above the holding before, on the scale and beliefs of the moment of trading. Rothbard's "shifted to a higher position", read on the scale the traders had "before making the exchange".

Judged afterwards, on the scale he holds later and by what he then believes, it needs two things more, one for each way it fails:

๐Ÿ”—theorem
Apodictic.MutualBenefit.better_off_judged_later {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) (demonstrated : DemonstratedPreference trade) (voluntary : trade.Voluntary) (beliefsHold : trade.BeliefsHold later) (rankingHolds : trade.RankingHolds later) : praxis.Prefers trade.agent later (trade.after later) (trade.before later)
Apodictic.MutualBenefit.better_off_judged_later {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) (demonstrated : DemonstratedPreference trade) (voluntary : trade.Voluntary) (beliefsHold : trade.BeliefsHold later) (rankingHolds : trade.RankingHolds later) : praxis.Prefers trade.agent later (trade.after later) (trade.before later)

Better off, judged later โ€” the holding after ranks above the holding before on the agent's scale at later, each counted by what he believes at later. It needs the beliefs about the goods and the ranking of the two holdings both to have held.

manifest of Apodictic.MutualBenefit.better_off_judged_later praxeological claims: demonstrated : DemonstratedPreference trade situational conditions: voluntary : trade.Voluntary beliefsHold : trade.BeliefsHold later rankingHolds : trade.RankingHolds later vocabulary (what the claims are about): praxis : ActionFrame trade : Trade praxis later : praxis.Time logical background: [propext, Quot.sound] #manifest MutualBenefit.better_off_judged_later
manifest of Apodictic.MutualBenefit.better_off_judged_later

  praxeological claims:
    demonstrated : DemonstratedPreference trade

  situational conditions:
    voluntary : trade.Voluntary
    beliefsHold : trade.BeliefsHold later
    rankingHolds : trade.RankingHolds later

  vocabulary (what the claims are about):
    praxis : ActionFrame
    trade : Trade praxis
    later : praxis.Time

  logical background: [propext, Quot.sound]
๐Ÿ”—def
Apodictic.Trade.BeliefsHold {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) : Prop
Apodictic.Trade.BeliefsHold {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) : Prop

Beliefs about the goods hold at later โ€” a condition on the situation. Every good in the trade is believed at later to serve exactly what it was believed to serve when the trade was made. It fails when the agent learns the good he got does less than he thought โ€” through his own error, or through deception. Rothbard counts a deceived party's trade as not voluntary at all ("this is not an example of voluntary exchange, but of one-sided theft", MES p. 184); the condition here does not ask who changed the belief.

๐Ÿ”—def
Apodictic.Trade.RankingHolds {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) : Prop
Apodictic.Trade.RankingHolds {praxis : ActionFrame} (trade : Trade praxis) (later : praxis.Time) : Prop

The ranking of the two holdings holds at later โ€” a condition on the situation. If, when trading, the agent ranked the holding he chose above the one he gave up, he still does. It fails when he changes his mind โ€” regret. Only this one pair is constrained; nothing is said of the rest of his scale.

Both are needed, and a small made-up model โ€” a frame, in the library's word โ€” shows it for each. It is Rothbard's own case: "If A has a vase and B a typewriter, if each knows of the other's asset, and if A values the typewriter more highly, and B values the vase more highly, there will be an exchange" (p. 86). In one variant the typewriter turns out to do nothing โ€” A's beliefs about it change, his ranking does not. In the other A comes to want the vase back โ€” his beliefs stay, his ranking turns. Each trade is voluntary and demonstrates what the bridge says; in neither is A better off by his later lights.

๐Ÿ”—theorem
Apodictic.Model.later_without_beliefs_fails : ยฌMutualBenefit.BetterOffLaterWithoutBeliefs
Apodictic.Model.later_without_beliefs_fails : ยฌMutualBenefit.BetterOffLaterWithoutBeliefs

Without the beliefs condition, the later-judged claim fails. A trades freely, ranks as before, and โ€” having learned the typewriter serves nothing โ€” is not better off by his later lights.

๐Ÿ”—theorem
Apodictic.Model.later_without_ranking_fails : ยฌMutualBenefit.BetterOffLaterWithoutRanking
Apodictic.Model.later_without_ranking_fails : ยฌMutualBenefit.BetterOffLaterWithoutRanking

Without the ranking condition, the later-judged claim fails. A trades freely, believes as before, and โ€” now wanting decoration โ€” is not better off by his later lights.

In the variant where nothing changes, both parties' trades are handed to both theorems, so their conditions can all hold at once:

๐Ÿ”—theorem
Apodictic.Model.barter_reverse_valuations_applies : Model.barterOk.Prefers false false (Model.barterOk.ServedBy false false {true}) (Model.barterOk.ServedBy false false {false}) โˆง Model.barterOk.Prefers true false (Model.barterOk.ServedBy true false {false}) (Model.barterOk.ServedBy true false {true})
Apodictic.Model.barter_reverse_valuations_applies : Model.barterOk.Prefers false false (Model.barterOk.ServedBy false false {true}) (Model.barterOk.ServedBy false false {false}) โˆง Model.barterOk.Prefers true false (Model.barterOk.ServedBy true false {false}) (Model.barterOk.ServedBy true false {true})

Non-vacuity: the exchange is handed to reverse_valuations.

๐Ÿ”—theorem
Apodictic.Model.barter_better_off_later_applies (agent : Bool) : Model.barterOk.Prefers agent true ((Model.barterTrade Model.honestBeliefs Model.steadyWants agent).after true) ((Model.barterTrade Model.honestBeliefs Model.steadyWants agent).before true)
Apodictic.Model.barter_better_off_later_applies (agent : Bool) : Model.barterOk.Prefers agent true ((Model.barterTrade Model.honestBeliefs Model.steadyWants agent).after true) ((Model.barterTrade Model.honestBeliefs Model.steadyWants agent).before true)

Non-vacuity: the later-judged theorem applies where beliefs and ranking both hold.

Fraud. Rothbard would not count the defrauded buyer against him. For him a deceived party has not traded voluntarily: "Since the exchange has been made falsely, the actual form of which might not have been contracted had the other party not been deceived, this is not an example of voluntary exchange, but of one-sided theft" (p. 184). His "voluntary" therefore does part of the work that BeliefsHold does here: the part where someone else changed what the buyer believed. Trade.Voluntary asks only what refusing would have cost, and cannot see deception. The cut here is finer. A buyer who was deceived and a buyer who was simply mistaken both fail BeliefsHold; only the first is outside Rothbard's "voluntary", so only the second is a case his paragraph covers.

The carried conditions. The first manifest lists two fields of the exchange: what A gives, B gets, and what B gives, A gets. Neither says anything about the world: if the good A hands over were not the good B receives, there would be no exchange to speak of. Whether a field is of that kind is a judgement, and the Lean cannot make it. It is made here as it is for the fields of a stock and a plan under The vocabulary, later in the document. The second manifest has no such group: nothing is built into a trade as defined, and the conditions its theorem needs are the named ones above it.

Five conditions a reader might expect are on neither list: that A and B are two people, that the two trades are made at one moment, that two different goods change hands, that the good given is not also kept, and that the good received was not already held. Each was a field of Trade or of Exchange; no proof used it, and it was removed. Two people and one moment have nothing to do, because the theorem about an exchange is the theorem about one trade said twice, and the two swap fields do the matching. The two about what is kept are what make kept the rest of a man's holding. Where they fail the definitions describe no trade, and nothing rules that out, since no proof needs to.

Two different goods is Rothbard's own: "In describing the conditions that must obtain for interpersonal exchange to take place (such as reverse valuations), we implicitly assumed that it must be two different goods that are being exchanged" (p. 95). For him it is a condition for an exchange to take place, like knowledge of the other party above, and every theorem here starts from a trade that did happen. Nor does dropping it let in the man who trades a good for itself. Of him the bridge would say that he prefers his holding to itself; Prefers is read as strict, so the bridge is false of him and the theorems are silent. He is kept out by the claim, not by a field.

Where the tradition stands. For Rothbard the bridge cannot fail. The scale is read off the act: "We deduce the existence of a specific value scale on the basis of the real act" (p. 260). On that reading an act against one's own ranking is not a possibility. Here the ranking exists apart from the act, so the bridge constrains it, and its status is our reconstruction and not his. Nor does the library assume, anywhere, that a man's scale stays put; the reasons are under The ladder as a history. What the later-judged benefit carries is narrower: a condition that his ranking of these two holdings did not turn. Where it fails, the theorem is silent.

What a failure would point at. The two conclusions name different places to look. Where a man did not rank the good he got above the good he gave: the trade was not voluntary; the goods were complements of something he kept, or substitutes for it; or he traded against his own ranking at the time, and the bridge itself failed. Where he is not better off afterwards: the trade was not voluntary; his beliefs about a good changed (error, or deception, which Rothbard already counts as not voluntary); his ranking of the two holdings turned (regret); or the bridge failed. On each list only the bridge is a claim. The rest are conditions, and where they fail the theorems are silent, not wrong. The defence "the conditions did not hold" now has a list to check against.