2026-04-19 theorem 5 min read

The EML Weierstrass Theorem

EML trees are dense in the continuous functions. Any continuous function can be approximated to arbitrary precision by a finite EML tree — but not always represented exactly.

The theorem

For any continuous function f on [a, b] and any ε > 0, there exists a finite EML tree T such that |T(x) − f(x)| < ε for all x ∈ [a, b].

This is a density result, not an exact representation result. The distinction matters.

The four-step proof

Step 1 — Classical Weierstrass. Every continuous function on [a, b] can be uniformly approximated by polynomials (Weierstrass approximation theorem, 1885). For any ε > 0, there exists a polynomial p(x) with |f(x) − p(x)| < ε/2 uniformly on [a, b].

Step 2 — Monomials are EML-expressible. Every monomial xn = exp(n · ln(x)) for x > 0. This is an EML-2 composition: one ln node, one scalar multiplication, one exp node. Concretely: eml(n · eml(1, x), 1) = exp(n · (e − ln(x))) − 0... scaled appropriately. More directly: xn = exp(n · ln(x)) is reachable in a depth-2 EML tree given ln(x) as an intermediate.

Step 3 — Linear combinations. Finite linear combinations of EML trees (with real coefficients) form a vector space. A polynomial is a finite linear combination of monomials. Therefore every polynomial lies in the EML linear span.

Step 4 — Density follows. EML span ⊇ polynomials. Polynomials are dense in C([a, b]) by classical Weierstrass. A set that contains a dense subset is itself dense. ∎

The critical distinction: density vs. exactness

The EML Weierstrass theorem does not contradict the Infinite Zeros Barrier. sin(x) cannot be exactly represented as a finite real EML tree — that is a structural impossibility. But sin(x) can be approximated to any desired accuracy: just take enough terms of its Taylor polynomial, and each polynomial is an EML linear combination.

Approximation and exact representation are different things. Weierstrass gives you the first. The barrier denies you the second.

A concrete witness: x²

The monomial x² = exp(2 · ln(x)). In EML tree form: a 3-node tree (ln node, scalar 2, exp node) represents x² exactly for x > 0. This is the simplest nontrivial Weierstrass witness — a function that is both exactly representable and useful as a building block for polynomial approximations.

Reproduce

python experiments/weierstrass_demo.py --target "x**2" --depth 3
# Demonstrates x^2 = exp(2*ln(x)) and builds polynomial approximations

Cite this work

Monogate Research (2026). "The EML Weierstrass Theorem: Density of EML Trees in C([a,b])." monogate research blog. https://monogate.org/blog/weierstrass-theorem

License

CC BY 4.0 — free to share and adapt with attribution. · Code: pip install monogate · Paper: arXiv:2603.21852

React