2026-04-19 theorem 5 min read

The Infinite Zeros Barrier

Why sin(x) cannot be expressed as a finite real EML tree — and why that matters.

The EML operator eml(x, y) = exp(x) − ln(y) generates every elementary function as a finite binary tree. That's the claim in arXiv:2603.21852. So why isn't sin(x) on the easy list?

The answer is clean and provable. Here it is.

The theorem

No finite real-valued EML tree with terminals {1, x} equals sin(x) for all x ∈ ℝ.

The proof is two lines:

Step 1. Every finite EML tree is a composition of exp and ln applied to polynomials. Each such composition is real-analytic on its domain.

Step 2. By the analytic identity theorem, a non-zero real-analytic function has isolated zeros — which means finitely many on any bounded interval. But sin(x) has a zero at every integer multiple of π. No bounded interval avoids infinitely many of them. Contradiction.

The proof works for any function with infinitely many real zeros: cos(x), Bessel J₀, Airy Ai, any function of the form f(x) = 0 on an infinite discrete set.

Empirical confirmation

We enumerated all EML trees up to 11 nodes — 281,026,468 trees total — against sin(x) at test points {0, π/6, π/4, π/2, π}. Zero candidates at tolerances 10⁻⁴, 10⁻⁶, 10⁻⁹. A Rust implementation extended this to N=12 (1.704 billion trees). Still zero.

The empirical results are redundant — the proof already settles it — but they make the impossibility visceral.

The bypass

The barrier is specific to real-valued trees. Over the complex numbers, Euler's formula gives us an exact route in a single node:

Im(eml(ix, 1)) = Im(exp(ix)) = sin(x)

One node. Machine precision. The barrier doesn't disappear — it means you can't do it with real arithmetic. Complex arithmetic is not "cheating"; it's a different domain.

Why it matters

The barrier is a structural fact about function spaces. It says something precise about what finite tree computation can and cannot do. The EML depth hierarchy — where sin is "EML-3 over ℂ" and "EML-∞ over ℝ" — is grounded in this structural distinction.

It also connects to open problems. The complex bypass works because i is available as input. Whether i is constructible from {1} alone — whether you can produce the imaginary unit from a grammar that starts with only real constants — is genuinely open. That's the i-constructibility challenge at monogate.dev.

Code: pip install monogate · Paper: arXiv:2603.21852