A small studio treating symbolic problems atypically

Don't look a gift horse in the mouth! We did...

Navigate with arrow keysEnter to playEsc to release

01 / symbolic engine

Make the inference undeniable.

Choose a worked proof. Inspect the premises, name the next rule, and watch an argument become a trace you can check.

proof consoleREADY FOR INPUT

Select a theorem

Loaded theoremThe Arkansas Derby (9 furlongs)A small, suspiciously well-behaved proof.
GoalHorse(comet)
derive the consequent
without hand-waving
1given∀x (GiftHorse(x) → Horse(x))premise
2givenGiftHorse(comet)premise
3nextGiftHorse(comet) → Horse(comet)choose rule
4next· · ·locked
Race distance0 of 2 proof stepsStarting gate
00 / 02 derived

Choose the next rule, or play the worked proof.

02 / evolutionary grammar

Let the syntax evolve.

Start with formula trees, exchange branches, mutate symbols, and inspect the statements that emerge. The grammar holds; meaning can change.

TTerminalatomic formula: P(x), Q(y)
NNon-terminalopens a branch: ∀, ¬, →
∴Phenotypethe parsed statement we can read
population sandbox generation 00

Structure first. Meaning is yours to inspect. Click a tree, then a node.

∀x [ P(x) → Q(x) ]
g0
∀x [(P(x) → Q(x))]4 nodes / depth 3closed formula
g0
∃y [(R(y) ∧ S(y))]4 nodes / depth 3closed formula
g0
¬ [(A(x) ∨ B(x))]4 nodes / depth 3free: x
g0
∀y [(F(y) → G(y))]4 nodes / depth 3closed formula
selection nonewaiting for a branch

Crossover exchanges equal-arity branches. Mutation changes one symbol or grows a replacement branch.

offspring bayNo offspring staged

Select branches in the population, then choose an operator. The next parseable statement will appear here.

Population seeded. Select a tree or branch to begin.

Every leaf is an atomic formula. Quantifiers bind x or y; free variables are shown on each card. Mutation and crossover can change variable binding and truth. No fitness score or equivalence claim is attached.

01Subtree crossover

Two parents exchange marked branches, making two new trees without touching the originals.

02Point mutation

One node label changes while its arity stays fixed, so the tree remains well formed.

03Undo / redo

Adopted generations are reversible. Exploration should not require a sacrificial keyboard.

03 / maps into pictures

Dessin d'enfant / a map leaves a trace.

A Belyi map sends a surface to the sphere. Its inverse image of the interval [0, 1] leaves a graph you can inspect. Choose an example and inspect the vertices, edges and faces.

β⁻¹([0, 1])2 sheets / 1 face
010
preimage of 0 preimage of 1

04 / follow the root

Homotopy continuation / take the long way.

Start with roots you can name. Deform one system into another, predict the next position, correct it, and keep the path alive until the endpoint becomes legible.

known / t = 0G(x, y) = (x² − 1, y² − 1)four easy seed roots
target / t = 1F(x, y) = (x² + y − 1, y² + x − 1)the roots we want to reach
H = (1 − t)G + tFt = 0.00
xyα₁α₂α₃α₄
reference branch tracked predictor corrected root
Displayed numerical coordinates
RootxyResidual ‖H‖∞
α₁-1.000000-1.0000000.00e+0
α₂-1.0000001.0000000.00e+0
α₃1.000000-1.0000000.00e+0
α₄1.0000001.0000000.00e+0

A question worth opening

Bring us a
stubborn question.

A proof that wants to be walked. A tree that wants to mutate. A problem that needs a different language before it will give up an answer.

Tell us what you are trying to understand, what you have tried, and where it gets interesting.

Start a conversation