Beyond Wood and Water

Tweetrology: a proof, a tweet, and the moment one tested the other. Nietzsche would have posted this as a thread. We are not Nietzsche. We have a proof assistant.

“Supposing truth is a woman — what then?”

— Friedrich Nietzsche, Beyond Good and Evil, Preface (1886)

Asking truth to declare a preferred pronoun while diminishing half the species is neither good nor beyond evil, and explains much about the man’s personal life. Tweetrology holds itself to higher standards.

MEASURAND μ @exhaze @hrishioa P PROCEDURE @hdarshane m RESULT iff all three

In metrology — the International Vocabulary of which defines the words I’m about to use — every measurement requires exactly three irreducible components: measurand (μ), procedure (P), result (m). Remove any one and measurement collapses. No two are derivable from each other, however alike they appear. I proved this. The verification stack, for a claim about two likes on a tweet, is as follows:

7 theorems in Lean 4 · 1 axiom (Lean.ofReduceBool) · 0 sorry
3 egglog non-equations · 10 iterations of equality saturation · no rewrite path found
4 tau-Prolog behavioral probes · bisimulation failure exhibited
4 independent tools (Lean, egglog, tau-Prolog, bun) · none imports the other’s result
556 files in the project · independent listener verification · 5/5 PASS · zero manifest differences
1 tweet · 2 likes

Three tools that agree on a single cardinality.

structure MeasurementSystem where
  hasMeasurand : Bool
  hasProcedure : Bool
  hasResult    : Bool

def isMeasurement (s : MeasurementSystem) : Bool :=
  s.hasMeasurand && s.hasProcedure && s.hasResult

theorem exactly_three :
    (isMeasurement triad = true) ∧
    (isMeasurement noMeasurand = false) ∧
    (isMeasurement noProcedure = false) ∧
    (isMeasurement noResult = false) := by
  exact ⟨triad_is_measurement, no_measurand_not_measurement,
         no_procedure_not_measurement, no_result_not_measurement⟩

#print axioms exactly_three  -- Lean.ofReduceBool

Then I noticed something.

On X, I pointed out that @hrishioa and @hdarshane have nearly indistinguishable accounts. Hrishi — previously CTO of Greywing, YC W21, now building systems of lasting value at Southbridge, chop wood carry water — responded: which is which? Hiranmay — nineteen, deep learning and large language models, previously a research intern at a lab approximating Solomonoff induction. The observable could not distinguish itself from the other observable. I declared myself the comparand.

Then I looked at the likes on my tweet about minimal cardinality. Two. One from @hrishioa. One from @hdarshane. The quorum was already there — the comparand’s claim and both observables’ acknowledgment — and I realized the proof I’d already completed was staring at its own empirical test.

The three removals:

Remove @exhaze. @hrishioa and @hdarshane remain — two components with nothing between them to compare. Which is which?

Remove @hrishioa. @exhaze and @hdarshane exist, but the channel between them is gone. Resemblance without a witness.

Remove @hdarshane. @exhaze and @hrishioa, running in the dark. The comparison produces no output.

On the assignment. Labeling @hdarshane as m — the output of a procedure performed by @hrishioa — is, on reflection, condescending. The proof is invariant under relabeling (∧ commutes), but equivariance requires exhibiting the swap, not assuming it. A future measurement will conduct the transposition P ↔ m. Until then, the assignment is provisional and the author apologizes to @hdarshane specifically.

Comparand: Latin comparandus, that which is to be compared. Not in the International Vocabulary of Metrology. It is now in the International Vocabulary of Tweetrology, which has exactly one entry.

Triad.lean · sha256 eb02815b…c316260