Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Echo state property of a contracting state-affine system (Prop. 3.7)

Proved
ReservoirSAS.sas_esp_of_contracting_polynomial

by olivier · Sep 11, 2026 · Mathlib 0df444a (Lean v4.33.1)

fixed-pointmachine-learningreservoir-computingstate-affine-system

Consider a non-homogeneous state-affine system xk=p(zk)xk+1+q(zk)x_k = p(z_k)x_{k+1} + q(z_k)xk​=p(zk​)xk+1​+q(zk​) driven by an input sequence with values in [−1,1][-1,1][−1,1]. Suppose K1<1K_1 < 1K1​<1 bounds the operator norm of p(z)p(z)p(z) and K2>0K_2 > 0K2​>0 bounds the norm of q(z)q(z)q(z), both uniformly over z∈[−1,1]z \in [-1,1]z∈[−1,1]. Then there is exactly one state sequence bounded by K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​) satisfying the system equation.

This is Proposition 3.7 of the source: contractivity of the state map gives the echo state property, and the explicit ceiling K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​) on the states. The echo state property is what makes the map from input history to state well defined, and hence what makes the SAS functional — the object the universality theorem approximates with — exist at all.

The system is a contracting reservoir map: the state map contracts with ratio K1K_1K1​ uniformly in the input, and the ball of radius K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​) is invariant, since K1⋅K2/(1−K1)+K2=K2/(1−K1)K_1 \cdot K_2/(1-K_1) + K_2 = K_2/(1-K_1)K1​⋅K2​/(1−K1​)+K2​=K2​/(1−K1​). The statement therefore specializes a result already published on this platform rather than requiring a new mechanism.

Formalization Note Uniqueness is asserted within the class of sequences bounded by K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​); nothing is claimed about unbounded solutions. The recursion determines xkx_kxk​ from xk+1x_{k+1}xk+1​, so it constrains the whole sequence and admits no initial condition. The hypothesis K2>0K_2 > 0K2​>0 makes the invariant ball nondegenerate.

Preamble
import Mathlib
import Definitions.Def_ReservoirESN
import Definitions.Def_ReservoirSAS

open Matrix Metric ReservoirESN ReservoirSAS
Formal statement
namespace ReservoirSAS

theorem sas_esp_of_contracting_polynomial {N r s : ℕ}
    (P : Fin r → Matrix (Fin N) (Fin N) ℝ) (Q : Fin s → EuclideanSpace ℝ (Fin N))
    (K₁ K₂ : ℝ) (hK₁0 : 0 ≤ K₁) (hK₁ : K₁ < 1) (hK₂ : 0 < K₂)
    (hP : MatPolyOpBound P K₁) (hQ : VecPolyBound Q K₂)
    (z : ℕ → ℝ) (hz : ∀ k, z k ∈ Set.Icc (-1 : ℝ) 1) :
    ∃! x : ℕ → EuclideanSpace ℝ (Fin N),
      (∀ k, ‖x k‖ ≤ K₂ / (1 - K₁)) ∧ IsSASSolution P Q z x := by sorry

end ReservoirSAS
Source
L. Grigoryeva, J.-P. Ortega, Universal discrete-time reservoir computers with stochastic inputs and linear readouts using non-homogeneous state-affine systems, Journal of Machine Learning Research 19(24) (2018), 1-40, https://arxiv.org/abs/1712.00754, p. 10, Proposition 3.7: under max_z ||p(z)||_2 < 1 the system has the echo state property, with the state bound ||x_t|| <= K_2/(1-K_1) of eq. (3.16).
Read-back

What the Lean code literally says, in plain math · claude-opus-5

Read-back — sas_esp_of_contracting_polynomial

Data and binders. Three natural numbers NNN, rrr, sss are fixed; they are implicit and completely arbitrary, so each of them may be 000. One is given:

  • a finite family of real N×NN \times NN×N matrices P0,…,Pr−1P_0, \dots, P_{r-1}P0​,…,Pr−1​, written as a map P:{0,…,r−1}→RN×NP : \{0,\dots,r-1\} \to \mathbb{R}^{N\times N}P:{0,…,r−1}→RN×N;
  • a finite family of vectors Q0,…,Qs−1Q_0, \dots, Q_{s-1}Q0​,…,Qs−1​ in RN\mathbb{R}^NRN, the space carrying its Euclidean (ℓ2\ell^2ℓ2) norm; every norm ∥⋅∥\lVert\cdot\rVert∥⋅∥ below is that Euclidean norm;
  • two real numbers K1,K2K_1, K_2K1​,K2​;
  • a real sequence z:N→Rz : \mathbb{N} \to \mathbb{R}z:N→R (scalar-valued, not vector-valued).

These families define, for a real argument ttt, the matrix-valued and vector-valued polynomials

p(t)  =  ∑j=0r−1t jPj∈RN×N,q(t)  =  ∑j=0s−1t jQj∈RN.p(t) \;=\; \sum_{j=0}^{r-1} t^{\,j} P_j \in \mathbb{R}^{N \times N}, \qquad q(t) \;=\; \sum_{j=0}^{s-1} t^{\,j} Q_j \in \mathbb{R}^{N}.p(t)=j=0∑r−1​tjPj​∈RN×N,q(t)=j=0∑s−1​tjQj​∈RN.

Empty sums are 000: if r=0r = 0r=0 then p≡0p \equiv 0p≡0, and if s=0s = 0s=0 then q≡0q \equiv 0q≡0. The convention t0=1t^0 = 1t0=1 holds also at t=0t = 0t=0, so p(0)=P0p(0) = P_0p(0)=P0​ and q(0)=Q0q(0) = Q_0q(0)=Q0​ when r,s≥1r, s \ge 1r,s≥1.

Hypotheses. All of the following are assumed:

  1. 0≤K10 \le K_10≤K1​;
  2. K1<1K_1 < 1K1​<1;
  3. 0<K20 < K_20<K2​;
  4. (uniform operator bound on ppp) for every t∈[−1,1]t \in [-1,1]t∈[−1,1] and every vector v∈RNv \in \mathbb{R}^Nv∈RN, ∥p(t) v∥≤K1∥v∥\lVert p(t)\,v \rVert \le K_1 \lVert v \rVert∥p(t)v∥≤K1​∥v∥ — i.e. the spectral norm of p(t)p(t)p(t) is at most K1K_1K1​ for all ttt in the closed interval [−1,1][-1,1][−1,1];
  5. (uniform bound on qqq) for every t∈[−1,1]t \in [-1,1]t∈[−1,1], ∥q(t)∥≤K2\lVert q(t) \rVert \le K_2∥q(t)∥≤K2​;
  6. every term of the input sequence lies in the closed interval: zk∈[−1,1]z_k \in [-1,1]zk​∈[−1,1] for all k∈Nk \in \mathbb{N}k∈N.

Note that (1)–(3) are stated separately from (4)–(5); nothing forces K1K_1K1​ or K2K_2K2​ to be the least such constants. Since K1<1K_1 < 1K1​<1, the quantity 1−K11 - K_11−K1​ is strictly positive, so the ratio K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​) below is an ordinary positive real with no division-by-zero convention involved.

Conclusion. There exists exactly one sequence of vectors x:N→RNx : \mathbb{N} \to \mathbb{R}^Nx:N→RN, i.e. one function k↦xkk \mapsto x_kk↦xk​, satisfying both of the following:

(a)∥xk∥  ≤  K21−K1for every k∈N,\text{(a)}\quad \lVert x_k \rVert \;\le\; \frac{K_2}{1-K_1} \quad \text{for every } k \in \mathbb{N},(a)∥xk​∥≤1−K1​K2​​for every k∈N, (b)xk  =  p(zk) xk+1  +  q(zk)for every k∈N.\text{(b)}\quad x_k \;=\; p(z_k)\, x_{k+1} \;+\; q(z_k) \quad \text{for every } k \in \mathbb{N}.(b)xk​=p(zk​)xk+1​+q(zk​)for every k∈N.

Uniqueness is uniqueness of the pair of properties taken together: any other sequence yyy that both is bounded by K2/(1−K1)K_2/(1-K_1)K2​/(1−K1​) at every index and satisfies the same recursion is equal to xxx as a function on all of N\mathbb{N}N. The statement asserts nothing about sequences satisfying (b) alone, nor about sequences obeying (b) with some larger uniform bound.

The recursion (b) runs "backwards" in the index: xkx_kxk​ is expressed in terms of xk+1x_{k+1}xk+1​, so each term is determined by its successor rather than its predecessor, and there is no initial condition at k=0k=0k=0 and no terminal index.

Degenerate cases included. N=0N = 0N=0 is allowed, in which case RN\mathbb{R}^NRN is the zero space and the claim is trivially about the single zero sequence. r=0r = 0r=0 makes p≡0p \equiv 0p≡0, so hypothesis (4) holds for any K1≥0K_1 \ge 0K1​≥0 and (b) reduces to xk=q(zk)x_k = q(z_k)xk​=q(zk​). s=0s = 0s=0 makes q≡0q \equiv 0q≡0, so (5) holds for any K2>0K_2 > 0K2​>0 and the unique sequence is identically zero. The hypotheses are jointly satisfiable (take P≡0P \equiv 0P≡0), so the statement is not vacuous.

The proof is not supplied: the declaration's body is sorry.

Human review
  • Endorsed by Shuze Chen · Sep 11, 2026

  • Endorsed by olivier · Sep 11, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me