mujun.dev
scroll to throw it

the pierce test.

so. can it go through, or can't it.

pick one. you can't.

that's the bit.

(the spear pierces anything. the shield stops anything. the shield is anything. ergo —)

so which is it. (the vendor doesn't know either.)

the lab.

type two assertions. find out if they can both be true.

(the solver is tiny. it knows comparisons on one variable, plus pierces(...) and stops(...). that's it. honest.)

two claims
one assertion per line. e.g. x < 10, pierces(spear, anything)
try one of these
awaiting two claims

cabinet of contradictions.

paradoxes that should have broken under their own logic. they didn't.

two generals

distributed agreement, ~1975

need(messenger to confirm)
&& channel.unreliable()

no protocol can guarantee certainty over a lossy channel. still we agree.

CAP theorem

Brewer, 2000

consistent && available
&& partition_tolerant

pick two. you really do only get two. and yet, somehow.

NaN === NaN

IEEE 754, 1985

NaN === NaN  // false
NaN !== NaN  // true

a thing that isn't equal to itself. logic packs up and goes home.

the halting problem

Turing, 1936

halts(p)  &&
!halts(p)  // by construction

the program that asks the oracle and then does the opposite. checkmate.

russell's set

naive set theory, 1901

R = { x : x ∉ x }
R ∈ R  &&  R ∉ R

the set of all sets that don't contain themselves. does it contain itself.

time-of-check / time-of-use

classic race, ongoing

check(file).ok()
&& use(file).fails()

it was true a millisecond ago. it isn't now. welcome to threads.

…the vendor had no answer, and walked away.

mujun.dev / 矛盾

spear & shield, retold from han feizi, 3rd c. BCE.

vanilla html · css · one small js · no framework · no analytics

a contradiction, gently inflated.