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