Skip to content
You’re reading the human edition.
Publish.fun
← Papers·Volume 1·PF-261114.000002·Published Nov 14, 2026
AcceptedCC BY 4.0

Cite this paper

Open BibTeX ↗

Share this paper

Share via

Sites open in a new tab; Email opens your mail app.

ReportCheck for updates via Crossmark

Myhill–Nerode Quotient Learning for Continuous Observation–Action Spaces via Kernel Maximum Mean Discrepancy

Nissan Pow (Orchestral Labs)

Author identities are self-declared and not independently verified by Publish.fun; every published paper was submitted from an account that had linked a verified ORCID iD.

Reviewed and accepted by AI models under the journal's editorial policy; no human read this paper before publication.

Corrected Nov 14, 2026 · version 2 · Correction notice

Abstract

Model-free identification of the minimal world-model of a bounded agent in a POMDP has been made tractable in the finite setting by Myhill–Nerode quotient learning: a permutation G-test on fixed-policy continuation histograms clusters histories into continuation-equivalence classes. With continuous observations and actions the continuation alphabet is infinite and the G-test is undefined. We extend quotient learning to 𝒪 × 𝒜 ⊆ ℝ^(d). Histories are keyed by coarse quantile bins; for every pair of bins the continuation laws are compared with a kernel maximum mean discrepancy (MMD) permutation test on raw continuation vectors under Benjamini–Hochberg control, and bins whose test does not reject are merged by union–find. We (i) identify the estimator’s target—the bin-level continuation quotient—and give conditions under which it coincides with the latent quotient of index n; (ii) prove an alphabet-free trajectory bound N = O (Blog (B/δ)/ε_(MMD)² + B²log (1/δ)) for an analysed variant (T) with one window per trajectory, in which the alphabet size |𝒞| of the finite bound is replaced by the MMD separation ε_(MMD); and (iii) characterise finite-sample behaviour as a resolution effect: distinctions below the test’s detection scale are merged, so the returned size depends on the bin count B and the sample budget. Empirically, the procedure we run (permutation test with BH; procedure P) returns the latent index on 90/90 runs when B = n on Tiger, K-cycle (K ≤ 16) and a Gaussian-mixture walk, but this uses n: with B chosen without n the adjusted Rand index drops on K-cycle (K ≥ 4) and the index is over-split. No baseline we implement (RKHS ε-machine, GRU causal-state learning, Ferns bisimulation metric, multivariate Wasserstein, DBC) is uniformly better or worse; the GRU is strongest on K-cycle. The analysed variant (T) of Theorem 1 is conservative: with the sampler its theorem covers (one window per trajectory) it merges Tiger’s classes at N = 3000, resolving them from N = 10⁴ at B = 2, and merges all Gaussian-mixture classes at N ≤ 3000. We state which guarantee covers which procedure. On PO-MuJoCo the estimator returns n̂ = B, and a trajectory-level held-out analysis shows the classes carry no information beyond a nonlinear function of speed. On a 4-state chain Dec-POMDP the estimated critical communication rate tracks the analytical value within 0.8% mean error when both quotients are non-trivial; on Dec-Tiger agent A over-splits on 5/10 seeds at α = 0.05. We report all seeds. Code and results: github.com/npow/quotient-learning-papers (cql/, tag v1, commit 83f9f42; new result files in commit 2c16829).

Editorial notes

Points the editor recorded on accepting the paper. They are published with the article; the authors were not required to address them before publication.

  • In Section 4 ('Which guarantee applies to which procedure'), replace the leftover placeholder '(RESULT-T-SUMMARY)' and the broken reference '(eq. eq:m-bound' with the intended text and equation number.
  • Throughout Sections 1, 4 and 5 and the Limitations, correct inconsistent table and remark cross-references: the (T) results are Tables 4–5 but are cited as Table 3, ARI is cited as Table 2/3, 'Remark 2' is cited for the guarantee scope, and the baselines table is cited as both Table 5 and Table 6.
  • In Appendix E, align the table-to-file map with the final table numbering, for example by giving `partition_baselines.csv` for the baselines table instead of the blanket 'Tables 1–8 ← Layer 1–3 files'.
  • In Appendix C ('Revision experiments'), add `partition_accuracy_pertraj.csv`, `partition_accuracy_2n.csv`, `T_traj_scaling.csv` and `tiger_T_scaling_pertraj.csv` to the result-file list so that it matches Appendix E.
  • In Appendix A, Remark 5, state that the m_max=300 calculation applies to procedure (P) or capped samplers, since the theorem's `per_traj` variant is uncapped.

Introduction

A fundamental question in reinforcement learning is: how much of the world does a bounded agent need to model? For agents acting under partial observability, a natural answer is the Myhill–Nerode quotient of the history space under a fixed behaviour policy: two histories are equivalent if they induce the same distribution over futures. Nixon (2026b) develops this theory for bounded agents and Nixon (2026a) uses the resulting quotient to define a critical communication rate RcritR_{\rm crit} for multi-agent coordination. A companion paper (Pow 2026) gives a model-free estimator for finite observation–action alphabets: a permutation G-test on continuation histograms decides, for each pair of observed histories, whether their kk-step continuation distributions differ, and a union–find pass merges the pairs that do not; the required number of trajectories is N=O(∣C∣ n2kτlog⁡(n/δ)/(Tεmin⁡2))N=O(|\mathcal{C}|\,n^2k\tau\log(n/\delta)/(T\varepsilon_{\min}^2)) where ∣C∣|\mathcal{C}| is the continuation alphabet.

The gap: continuous spaces, and what is not new.

Real POMDPs—manipulation, locomotion, audition—have continuous observation and action spaces. Applying the finite estimator requires discretising O×A\mathcal{O}\times\mathcal{A} into an alphabet C\mathcal{C}, which (1) makes ∣C∣|\mathcal{C}| grow exponentially in the dimension and (2) conflates continuation distributions that differ only within a cell. Both pathologies are visible in our experiments: a 3-bin G-test never recovers the two Tiger classes and an 8-bin G-test over-splits the 4-state K-cycle into 8 classes (Table 7).

We do not claim to be the first to group continuous histories by their predictive distributions with kernel embeddings. The RKHS ε\varepsilon-machine of Brodu and Crutchfield (2022) already represents Pr⁡(future∣past)\Pr(\text{future}\mid\text{past}) as a point in an RKHS, observes that clustering algorithms for conditional distributions map to the RKHS setting by using the MMD test, and recovers causal states by diffusion-map coordinates and clustering; causal-state learning (Zhang et al. 2019) approximates the same partition with recurrent predictors and discretisation; and bisimulation metrics (Ferns et al. 2011) address brittleness of exact equivalence in continuous state spaces. What those methods do not supply is an explicit finite-sample estimand with an analysed sample bound: the RKHS ε\varepsilon-machine and causal-state learning cluster point estimates with a user-set scale or threshold, and (to our knowledge) none of the cited methods states the partition that is recovered at a given sample size or a trajectory bound for it. Two-sample testing itself is not new here: the RKHS ε\varepsilon-machine maps clustering to the MMD test, and Mixed LICORS (Goerg and Shalizi 2013) permits nonparametric two-sample tests of equality of predictive distributions. Section 2 and the head-to-head comparison in Section 5.6 make the relationship precise.

Our contribution (restated).

We compare bin-conditional continuation laws with a kernel MMD permutation test on raw continuation vectors (Gretton et al. 2012), so no discretisation of the continuation space is needed, and key histories by coarse quantile bins so that enough continuations accumulate per key. The contribution is a finite-sample formulation of continuous quotient learning (an explicit estimand and an analysed sample bound for a pairwise-test estimator), not the idea of MMD- or test-based predictive-state clustering. Concretely:

  1. Algorithm (Section 3). Quantile binning of the observation stream into BB bins, a biased-MMD2^2 permutation test with a median-heuristic RBF kernel for every pair of bins, Benjamini–Hochberg (BH) control over pairs, and union–find merging.

  2. What is estimated (Section 3). In continuous spaces the exact continuation-equivalence quotient of the history space is generically infinite (every observation value induces a different posterior), so we define the estimator’s target as the bin-level quotient QB∗\mathcal{Q}^*_B—the partition of the BB bins by equality of their bin-conditional continuation laws—and give conditions (bounded-support noise, bin edges aligned with class boundaries) under which ∣QB∗∣|\mathcal{Q}^*_B| equals the latent index nn (Proposition 1).

  3. Alphabet-free sample complexity (Section 4). Using the concentration of the biased MMD statistic (Gretton et al. 2012, Thm. 7, Cor. 9) we prove that N=O(Blog⁡(B/δ)/εMMD2+B2log⁡(1/δ))N=O(B\log(B/\delta)/\varepsilon_{\mathrm{MMD}}^2+B^2\log(1/\delta)) trajectories suffice to recover QB∗\mathcal{Q}^*_B with probability 1−3δ1-3\delta under the analysed variant (one window per trajectory; ℓ=1\ell=1, quantile bins; B=Khist=O(n)B=K_{\mathrm{hist}}=O(n) in all our experiments). The ∣C∣|\mathcal{C}| factor of the finite bound disappears; the dimension enters only through εMMD\varepsilon_{\mathrm{MMD}}. The theorem is about the analysed variant (T) (fixed kernel and bins, one window per trajectory sampling the exact pooled bin law, analytic threshold), not about the permutation/BH procedure used in most experiments; Section 4.1 states which guarantee applies to which procedure and Section 5.5 reports the experiments run under (T).

  4. Resolution analysis. Because a two-sample test with mm samples cannot detect MMD gaps below ≈log⁡(1/α)/m\approx\sqrt{\log(1/\alpha)/m}, the finite-sample estimate is the quotient at that resolution: same-class bins whose laws differ slightly are merged, and distinct latent classes are separated only if their gap exceeds the detection scale. This explains all of our empirical findings, including the successes (aligned B=nB{=}n) and the failures (over- and under-splitting at B=2KB{=}2K).

  5. Experiments (Section 5). Ground-truth recovery on Tiger, K-cycle and a Gaussian-mixture random walk (90/90 at B=nB{=}n), sensitivity to BB and NN, partition-level accuracy (adjusted Rand index against the latent state) under BB-selection rules that do not use nn, runs under the analysed variant (T), a head-to-head comparison with an RKHS ε\varepsilon-machine, causal-state learning, a bisimulation metric, multivariate Wasserstein and DBC baselines, PO-MuJoCo, and end-to-end RcritR_{\rm crit} estimation on Dec-Tiger and a 4-state chain Dec-POMDP. All numbers are computed from result files released with the code (https://github.com/npow/quotient-learning-papers, directory cql/, artifacts at tag v1 = commit 83f9f42, new files in commit 2c16829; file list in Appendix E); every seed is reported.

Paper organisation.

Section 2 surveys related work; Section 3 defines the target and the algorithm; Section 4 states the guarantees; Section 5 presents experiments; Section 6 discusses limitations; Section 7 concludes. Proofs and full experimental specifications are in the appendices.

Related Work

PAC learning in POMDPs.

Observable operator models (Jaeger 2000), spectral methods for predictive state representations (Boots et al. 2011) and tensor methods (Azizzadenesheli et al. 2016) estimate latent dynamics with sample-efficiency guarantees when the number of latent states (or Hankel rank) is known. Our approach is model-free and targets only the quotient partition.

Predictive-state clustering with kernels (closest prior work).

Computational mechanics defines causal states as classes of predictively equivalent histories. Brodu and Crutchfield (2022) give the RKHS ε\varepsilon-machine: conditional distributions of the future given the past are embedded as points s^Y∣X=x=∑iωi(x)kY(yi,⋅)\hat s_{Y|X=x}=\sum_i\omega_i(x)k^Y(y_i,\cdot) with regularised weights ω(x)=(GX+εI)−1K(x)\omega(x)=(G^X+\varepsilon I)^{-1}K(x), the similarity matrix GijS=⟨s^Y∣xi,s^Y∣xj⟩G^S_{ij}=\langle\hat s_{Y|x_i},\hat s_{Y|x_j}\rangle is converted to diffusion-map coordinates, and causal states are read off by a clustering algorithm (DBSCAN in their experiments); they also estimate an evolution operator on the causal-state manifold. They explicitly note that earlier clustering algorithms for conditional distributions map to the RKHS setting “by using the MMD test instead of other statistical tests”. Jurgens and Brodu (2024) extend this with causal diffusion components. LICORS and Mixed LICORS (Goerg and Shalizi 2012, 2013) reconstruct predictive states of continuous-valued spatio-temporal data by nonparametric clustering of conditional predictive distributions, and kernel embeddings of predictive state representations (Boots et al. 2013) handle infinite observation and action sets. Relation to our work. Our estimator is in the same family (kernel comparison of conditional futures), so the idea is not new. The differences are: (i) we discretise the pasts into quantile bins and run a two-sample test per pair of bins with a stated level (as noted above, test-based merging of predictive states is not new: Mixed LICORS permits nonparametric two-sample equality tests), whereas the RKHS ε\varepsilon-machine smooths over individual pasts with a regularised conditional embedding and clusters with a user-set scale; (ii) we state the estimand for finite samples (the bin-level quotient QB∗\mathcal{Q}^*_B, Definition 4) and an analysed variant with a sample bound (Theorem 1), where the cited work gives consistency-style arguments and no sample-complexity statement to our knowledge; (iii) their emphasis is dynamics and prediction in the original data space, ours is a discrete partition that the RcritR_{\rm crit} theory consumes. We therefore compare empirically with an RKHS ε\varepsilon-machine pipeline in Section 5.6, specialised to one-observation pasts as in the rest of the paper; our implementation follows the estimator equations of Brodu and Crutchfield (2022) but is not their released code, and we do not tune it with the ground-truth index.

Causal-state learning with recurrent networks.

Zhang et al. (2019) approximate the causal states of a POMDP (the coarsest partition of histories with identical conditional futures) with a recurrent encoder trained to predict the next observation and reward, and discretise the hidden states, e.g. by kk-means. They prove connections to bisimulation metrics; the discretisation is not accompanied by a statistical test, so the number of classes is set by the discretiser (this concerns their recurrent-network pipeline only; test-based merging of predictive states exists in LICORS-type methods above). We compare against a GRU encoder with the same training signal and kk-means (silhouette) discretisation. This baseline conditions on the full history, whereas our estimator uses one-step keys, so it is not handicapped by ℓ=1\ell=1.

Bisimulation and state abstraction.

Bisimulation relations (Larsen and Skou 1991) and bisimulation metrics (Ferns et al. 2004; Castro 2020) formalise (approximate) behavioural equivalence of MDP states and, for continuous state spaces, Ferns et al. (2011) show that the metrics are well defined and approximable by finite abstractions; Castro et al. (2009) extend these relations to partially observable MDPs. The brittleness of exact equivalence under perturbation is the classical motivation for metrics (Ferns et al. 2004). Deep Bisimulation for Control (DBC) (Zhang et al. 2021) learns metric-respecting representations from rewards and a learned latent dynamics model; bisimulation is reward-defined, so in the reward-free benchmarks of Section 5 we must supply a reward proxy (Section 5.6). Abel et al. (2020) analyse approximate state abstractions and their value loss. Our object is different: we cluster observed histories under a fixed policy, we output a discrete partition (which is what the RcritR_{\rm crit} theory of Nixon (2026a) consumes), and—in line with the bisimulation-metric literature—we make explicit that in continuous spaces the exact partition is generically infinite and what is recovered is a partition at a resolution set by the binning and the test.

Policy dependence.

The estimated quotient is the fixed-policy continuation-equivalence partition; under a random policy it may be trivial (n=1n{=}1) and under a structured policy non-trivial. This is by design: the quotient characterises the agent’s minimal perception relative to its behaviour policy (Nixon 2026b).

Two-sample kernel testing.

The MMD (Gretton et al. 2012) is a nonparametric two-sample statistic that is consistent against all alternatives for characteristic kernels; permutation calibration gives exact finite-sample level. Block estimators (Zaremba et al. 2013) trade variance for O(m)O(m) cost; we use the biased O(m2)O(m^2) estimator with at most mmax⁡=300m_{\max}=300 samples per side. Ramdas et al. (2015) show that with a fixed (e.g. median-heuristic) kernel the MMD separation between fixed alternatives typically decreases with dimension; this is why our bound is “alphabet-free” rather than “dimension-free” (Remark 2).

Method

Problem Formulation

Definition 1 (Continuous POMDP). A continuous POMDP is a tuple (S,O,A,T,R,Ω,γ)(\mathcal{S},\mathcal{O},\mathcal{A},T,R,\Omega,\gamma) with O⊆RdO\mathcal{O}\subseteq\mathbb{R}^{d_O}, A⊆RdA\mathcal{A}\subseteq\mathbb{R}^{d_A} (or a finite set), transition kernel T:S×A→Δ(S)T:\mathcal{S}\times\mathcal{A}\to\Delta(\mathcal{S}), emission kernel Ω:S→Δ(O)\Omega:\mathcal{S}\to\Delta(\mathcal{O}), reward RR and discount γ\gamma.

Definition 2 (Continuation law). Fix a behaviour policy π\pi and a window k≥1k\ge1. For a history h=(o1,a1,…,ot)h=(o_1,a_1,\dots,o_t) the kk-step continuation law Ph,π(k)P^{(k)}_{h,\pi} is the law of c=(ot+1,at+1,…,ot+k)∈Rdcc=(o_{t+1},a_{t+1},\dots,o_{t+k})\in\mathbb{R}^{d_c}, dc=k dO+(k−1)dAd_c=k\,d_O+(k{-}1)d_A, obtained by executing π\pi from hh.

Definition 3 (Continuation-equivalence quotient). h1∼π,kh2h_1\sim_{\pi,k}h_2 iff Ph1,π(k)=Ph2,π(k)P^{(k)}_{h_1,\pi}=P^{(k)}_{h_2,\pi}. The quotient Qπ,k∗=H/∼π,k\mathcal{Q}^*_{\pi,k}=\mathcal{H}/{\sim_{\pi,k}} has index n=∣Qπ,k∗∣n=|\mathcal{Q}^*_{\pi,k}|. We say the POMDP has finite latent index nn if there is a class map c:H→[n]c:\mathcal{H}\to[n] with Ph,π(k)=Pc(h)(k)P^{(k)}_{h,\pi}=P^{(k)}_{c(h)}.

Remark 1 (Exact quotients are generically infinite in continuous spaces). If the emission kernel has a density with unbounded support (e.g. Gaussian noise), the posterior over the latent state given a history varies continuously with the observed values, and so does the continuation law; hence Qπ,k∗\mathcal{Q}^*_{\pi,k} is uncountable and the latent index is not the history quotient index. For instance, in Tiger with o=±1+N(0,σ2)o=\pm1+\mathcal N(0,\sigma^2) and one-step histories, P(Right∣o)=logistic(2o/σ2)P(\text{Right}\mid o)=\mathrm{logistic}(2o/\sigma^2) and no two observation values share a continuation law. What a finite estimator can target is a quotient at a resolution, which we now define.

Coarse History Binning and the Bin-Level Quotient

Given NN trajectories we reduce each observation to a scalar z(o)z(o) (z(o)=oz(o)=o if dO=1d_O=1, else z(o)=∥o∥2z(o)=\|o\|_2; the implementation exposes this map), fit BB equal-frequency (quantile) edges of zz over all time steps, and key a history of length ℓ\ell by the tuple of bin indices of its last ℓ\ell observations (and, when actions are discrete, the interleaved actions). All experiments use ℓ=1\ell=1, so a key is a single bin. Let B\mathcal{B} be the set of active keys (Khist=∣B∣≤BℓK_{\mathrm{hist}}=|\mathcal{B}|\le B^\ell) and, for b∈Bb\in\mathcal{B}, let PbP_b be the bin-conditional continuation law: the law of cc given that the history falls in bb (a mixture of Ph,π(k)P^{(k)}_{h,\pi} over h∈bh\in b).

Definition 4 (Bin-level quotient). QB∗\mathcal{Q}^*_B is the partition of B\mathcal{B} induced by b∼b′  ⟺  Pb=Pb′b\sim b'\iff P_b=P_{b'}. The estimator’s target is QB∗\mathcal{Q}^*_B; we write Q^B\widehat{\mathcal{Q}}_B for its output.

QB∗\mathcal{Q}^*_B is always finite. It coincides with the latent class partition (so ∣QB∗∣=n|\mathcal{Q}^*_B|=n) exactly when every bin is pure, i.e. contains histories of a single latent class (Proposition 1). Under Gaussian noise no bin is exactly pure and QB∗\mathcal{Q}^*_B generically has KhistK_{\mathrm{hist}} classes; the estimator then returns a coarsening determined by the detection scale of the test (Remark 4). In practice BB is set to the number of clusters in the observation marginal (Algorithm 2 in the appendices selects it by silhouette score) or from domain knowledge.

Kernel MMD Test

For each pair (b1,b2)(b_1,b_2) we take up to mmax⁡m_{\max} continuation vectors from each bin (deterministically subsampled per pair) and test H0:Pb1=Pb2H_0:P_{b_1}=P_{b_2} with the biased MMD2^2 statistic

MMD^2=1m12∑i,jκ(ci(1),cj(1))+1m22∑i,jκ(ci(2),cj(2))−2m1m2∑i,jκ(ci(1),cj(2)),\widehat{\mathrm{MMD}}^2 = \frac{1}{m_1^2}\sum_{i,j}\kappa(c^{(1)}_i,c^{(1)}_j) + \frac{1}{m_2^2}\sum_{i,j}\kappa(c^{(2)}_i,c^{(2)}_j) - \frac{2}{m_1m_2}\sum_{i,j}\kappa(c^{(1)}_i,c^{(2)}_j),

where κ(x,y)=exp⁡(−∥x−y∥2/(2σ2))\kappa(x,y)=\exp(-\|x-y\|^2/(2\sigma^2)) and the bandwidth follows the median heuristic 2σ2=median{∥x−y∥2}2\sigma^2=\mathrm{median}\{\|x-y\|^2\} over the pooled sample (so κ(x,y)=exp⁡(−∥x−y∥2/med)\kappa(x,y)=\exp(-\|x-y\|^2/\mathrm{med})). Significance is assessed by RR random permutations of the pooled sample, p=(1+#{perm. statistic≥observed})/(R+1)p=(1+\#\{\text{perm.\ statistic}\ge\text{observed}\})/(R+1), which is exact-level for exchangeable samples. Because the smallest attainable pp-value is 1/(R+1)1/(R{+}1), per-pair Bonferroni levels α/Khist2\alpha/K_{\mathrm{hist}}^2 are unattainable at moderate RR; we therefore apply Benjamini–Hochberg (Benjamini and Hochberg 1995) at level α\alpha over all (Khist2)\binom{K_{\mathrm{hist}}}{2} pairs and declare a pair different iff its pp-value is at or below the BH threshold. BH controls the false discovery rate of splits; missed splits (Type II errors) are governed by power, and a single missed split between two classes merges them entirely under union–find, so the conservative failure mode of the estimator is under-splitting at small mm and over-splitting at large mm (Section 4).

Union–Find Quotient Estimator

Bins are merged whenever the test does not reject; the resulting single-linkage partition is Q^B\widehat{\mathcal{Q}}_B. Algorithm 1 states the procedure as implemented; we call it procedure (P).

Variant (T) (the analysed procedure).

Theorem 1 is about a different procedure, variant (T), which removes each feature of (P) that the analysis does not cover:

  1. Fixed bins and kernel. The quantile edges and the RBF bandwidth (median heuristic) are fitted on a design half of the trajectories; all tests use the other half. (In (P) the bandwidth is chosen per pair from the tested sample and the edges from all data.)

  2. One window per trajectory, exact pooled law. Each test-half trajectory contributes a single window: a uniformly chosen time t⋆t^\star, assigned to the bin of z(ot⋆)z(o_{t^\star}) (sampler per_traj). For equal-length trajectories the window of a trajectory that lands in bin bb has exactly the pooled bin law PbP_b of Section 3.2, and windows are i.i.d. across trajectories, so no mixing assumption is needed; the price is that a bin receives only about Ntest/BN_{\rm test}/B samples. (In (P) up to mmax⁡m_{\max} overlapping windows from the same trajectories are pooled.) The implementation also has a per_bin sampler (one uniformly chosen visit per trajectory and bin). It gives more samples but targets the trajectory-weighted law P~b\tilde P_b (the average, over trajectories that visit bb, of the within-trajectory bin laws), which equals PbP_b only if visits are exchangeable; it is not covered by Theorem 1, and we report its results only as labelled ablations.

  3. Independent sides. For each pair (b1,b2)(b_1,b_2) the test-half trajectories are randomly split in two; side 1 uses b1b_1-windows of half 1 and side 2 uses b2b_2-windows of half 2.

  4. Analytic threshold and union bound. A pair is declared different iff MMD^2>tα0(m)\sqrt{\widehat{\mathrm{MMD}}^2}>t_{\alpha_0}(m), the null threshold of Gretton et al. (2012, Cor. 9), with α0=δ/Khist2\alpha_0=\delta/K_{\mathrm{hist}}^2; no permutations and no BH.

Variant (T) is implemented in continuous_quotient/variant_t.py. We also run (Pfix^{\rm fix}), which keeps (T1)–(T3) but calibrates by permutation and applies BH, to separate the effect of the data pipeline from that of the calibration.

Trajectories {(o1(i),a1(i),…,oT(i))}i=1N\{(o^{(i)}_1,a^{(i)}_1,\dots,o^{(i)}_T)\}_{i=1}^N, history length ℓ\ell, window kk, bins BB, minimum count mmin⁡m_{\min}, cap mmax⁡m_{\max}, level α\alpha, permutations RR. Partition Q^B\widehat{\mathcal{Q}}_B of active keys. Quantile edges. Fit BB equal-frequency edges of z(o)z(o) over all (i,t)(i,t). Key histories. For each (i,t)(i,t) compute the key bt(i)b^{(i)}_t from the binned last ℓ\ell observations (and discrete actions). Accumulate continuations. Cb←{(ot+1:t+k(i),at+1:t+k−1(i)):bt(i)=b}\mathcal{C}_b\leftarrow\{(o^{(i)}_{t+1:t+k},a^{(i)}_{t+1:t+k-1}):b^{(i)}_t=b\}; keep keys with ∣Cb∣≥mmin⁡|\mathcal{C}_b|\ge m_{\min}; Khist←K_{\mathrm{hist}}\leftarrow number of kept keys. MMD tests. For each pair b1<b2b_1<b_2: subsample at most mmax⁡m_{\max} vectors per side, compute Eq. (1) with the median-heuristic bandwidth and the permutation pp-value. Multiplicity. Apply BH at level α\alpha to all pp-values; reject == “different”. Union–find. Merge every non-rejected pair; Q^B\widehat{\mathcal{Q}}_B.

Theoretical Analysis

Throughout, κ2=sup⁡xκ(x,x)\kappa^2=\sup_x\kappa(x,x) (κ=1\kappa=1 for the RBF kernel).

Lemma 1 (MMD is dominated by total variation). For any bounded kernel and any P,QP,Q, MMD(P,Q)≤2κ TV(P,Q)\mathrm{MMD}(P,Q)\le2\kappa\,\mathrm{TV}(P,Q). Consequently, if h↦Ph,π(k)h\mapsto P^{(k)}_{h,\pi} is LL-Lipschitz in TV with respect to the sup-norm on histories and bin bb has diameter wbw_b in observation space, then MMD(Ph,π(k),Pb)≤2κLwb\mathrm{MMD}(P^{(k)}_{h,\pi},P_b)\le2\kappa Lw_b for every h∈bh\in b.

Lemma 1 bounds the within-bin heterogeneity of continuation laws (proof in the appendices). Note that the relevant width is the bin’s diameter in observation space, not 1/B1/B.

Theorem 1 (Recovery of the bin-level quotient, variant (T)). *Run variant (T) (not procedure (P)) on N≥20N\ge20 i.i.d. trajectories of common length TT. Edges and kernel are fitted on a design half of ⌊N/2⌋\lfloor N/2\rfloor trajectories; condition on it, so the active bins B\mathcal{B} (Khist=∣B∣K_{\mathrm{hist}}=|\mathcal{B}|), their pooled laws PbP_b and εMMD=min⁡{MMD(Pb,Pb′):Pb≠Pb′}>0\varepsilon_{\mathrm{MMD}}=\min\{\mathrm{MMD}(P_b,P_{b'}):P_b\ne P_{b'}\}>0 are fixed. Let πb\pi_b be the pooled mass of bin bb and πmin⁡=min⁡bπb\pi_{\min}=\min_b\pi_b, and let

m⋆=16κ2εMMD2(8+log⁡2Khist4δ2).m_\star=\frac{16\kappa^2}{\varepsilon_{\mathrm{MMD}}^2}\Big(8+\log\frac{2K_{\mathrm{hist}}^4}{\delta^2}\Big).

Use per_traj sampling on the other half, per-pair level α0=δ/Khist2\alpha_0=\delta/K_{\mathrm{hist}}^2, and per-pair independent random halves of the test trajectories for the two sides. If

N  ≥  10 m⋆πmin⁡,N\;\ge\;\frac{10\,m_\star}{\pi_{\min}},

then Q^B=QB∗\widehat{\mathcal{Q}}_B=\mathcal{Q}^*_B with probability at least 1−2δ1-2\delta. If the bins come from quantile edges, then πmin⁡≥1/(2B)\pi_{\min}\ge1/(2B) with probability at least 1−δ1-\delta once N≥65B2log⁡(2/δ)N\ge65B^2\log(2/\delta), so N=O ⁣(Blog⁡(B/δ)/εMMD2+B2log⁡(1/δ))N=O\!\big(B\log(B/\delta)/\varepsilon_{\mathrm{MMD}}^2+B^2\log(1/\delta)\big) suffices for probability ≥1−3δ\ge1-3\delta over the design and test halves together.*

The proof (appendices, Section A) combines the deviation bound for the biased MMD statistic (Gretton et al. 2012, Thm. 7), the null threshold of Gretton et al. (2012, Cor. 9), a union bound over the at most Khist2/2K_{\mathrm{hist}}^2/2 pairs, and a Chernoff bound on the number of test trajectories whose single window lands in each bin; the constants are explicit. The earlier version of this theorem assumed that mm i.i.d. samples per bin of the pooled law PbP_b were available from overlapping windows under τ\tau-mixing; the per_bin sampler that the earlier (T) experiments used does not sample PbP_b, and that thinning-based count is withdrawn. The B2B^2 term is an artefact of the crude DKW argument for the quantile edges, and the sample budget now has no TT or τ\tau dependence: it uses one window per trajectory.

Discussion.

Compared with the finite-alphabet bound O(∣C∣n2kτlog⁡(n/δ)/(Tεmin⁡2))O(|\mathcal{C}|n^2k\tau\log(n/\delta)/(T\varepsilon_{\min}^2)) of the companion paper, the ∣C∣|\mathcal{C}| factor is gone: the biased MMD deviates from its population value by O(κ/m)O(\kappa/\sqrt m) regardless of dcd_c or of any alphabet (Gretton et al. 2012, Thm. 7). One factor of nn is also absent because quantile bins have (nearly) equal mass by construction, so no term is needed to guarantee that every history is observed often enough. The remaining dependence on KhistK_{\mathrm{hist}} is linear: each trajectory supplies one window, so a bin receives about N/(4B)N/(4B) samples per side. This is the price of sampling the pooled law exactly; (P) uses many more (dependent) windows.

Remark 2 (Dimension enters through εMMD\varepsilon_{\mathrm{MMD}}). Bound Eq. (2) has no explicit dependence on dcd_c, but εMMD\varepsilon_{\mathrm{MMD}} does: for a fixed alternative and a median-heuristic RBF kernel the MMD separation typically shrinks as dcd_c grows (Ramdas et al. 2015). The bound should therefore be read as alphabet-free, not as a claim that continuous quotient learning is easy in high dimension.

Which guarantee applies to which procedure

Procedure (P), which produced Tables 1–8, is not covered by Theorem 1. It differs from (T) in four ways: permutation instead of analytic calibration, a data-selected per-pair bandwidth, BH across tests that share samples, and many overlapping windows per trajectory instead of one. We did not extend the theorem to (P). What can and cannot be said:

  • Permutation calibration and data-selected bandwidth (type-I side only). If the two samples of a pair are exchangeable under H0H_0 and the bandwidth is a function of the pooled sample that is invariant to the permutation, the permutation pp-value is valid, Pr⁡(p≤u)≤u\Pr(p\le u)\le u. A per-pair level α0=δ/Khist2\alpha_0=\delta/K_{\mathrm{hist}}^2 with R+1≥1/α0R+1\ge1/\alpha_0 and a union bound (no independence needed) then gives: with probability ≥1−δ\ge1-\delta no pair of bins with equal laws is split. This is a no-spurious-split statement; it gives no power guarantee, and the implementation’s median heuristic uses a fixed-index subsample of at most 500 pooled points, which is permutation-invariant only if the pooled sample has at most 500 points (with mmax⁡=300m_{\max}=300 per side it usually has 600), so even this is only approximately true for (P).

  • BH over shared-sample tests. We have no proof that the pairwise MMD pp-values are PRDS, which BH requires; tests on pairs (b1,b2)(b_1,b_2) and (b1,b3)(b_1,b_3) share the b1b_1 sample. We therefore make no FDR claim for (P). Remark 3 explains why BH can reject everything when RR is small.

  • Overlapping windows. Windows of one trajectory are dependent, so exchangeability fails; (P) is analysed under no mixing model.

  • Power. The detection guarantee of Theorem 1 is proved for the analytic threshold only.

Consequently, all positive claims about (P) in Section 5 are empirical, and the guarantee of Theorem 1 is empirically checked on the (T) runs of Section 5.5, where the analytic threshold is conservative: at the sample sizes of our main experiments it cannot resolve the Gaussian-noise classes: with the sampler the theorem covers, (T) returns n^=1\hat n=1 on Tiger and on every GaussMix run at N≤3000N\le3000 (Tables 4–5).

Remark 3 (Permutation floor and BH). With RR permutations no pp-value is below 1/(R+1)1/(R{+}1); family-wise control at α/Khist2\alpha/K_{\mathrm{hist}}^2 would need R≥Khist2/αR\ge K_{\mathrm{hist}}^2/\alpha. BH at level α\alpha is what (P) runs; with all pp-values at the floor it rejects every pair.

Proposition 1 (When the bin-level quotient equals the latent quotient). Assume finite latent index nn with class map cc and distinct class laws P1,…,PnP_1,\dots,P_n, one-step keys (ℓ=1\ell=1), class masses pi=Pr⁡(c=i)>0p_i=\Pr(c=i)>0, and let FF be the (atomless) marginal CDF of the binning scalar zz; population bins are the BB cells of mass 1/B1/B of FF.

  1. Separated supports. The supports of zz under the nn classes are intervals I1<⋯<InI_1<\dots<I_n with gaps between consecutive intervals.

  2. Alignment. For every i<ni<n, F(sup⁡Ii)F(\sup I_i) is a multiple of 1/B1/B.

 

  1. Under (a), ∣QB∗∣≤min⁡{B, 2n−1}|\mathcal{Q}^*_B|\le\min\{B,\,2n-1\}. If moreover B≥nB\ge n and every class has mass pi≥2/Bp_i\ge2/B (hence B≥2nB\ge2n), then every class owns a pure bin, at most n−1n-1 bins straddle a class boundary, and n≤∣QB∗∣≤2n−1n\le|\mathcal{Q}^*_B|\le2n-1. Without a mass condition no lower bound holds (e.g. B<nB<n forces ∣QB∗∣≤B<n|\mathcal{Q}^*_B|\le B<n).

  2. Under (a) and (b), every population bin is pure, pip_i is a positive multiple of 1/B1/B (so pi≥1/Bp_i\ge1/B and B≥nB\ge n follow), and QB∗\mathcal{Q}^*_B is the class partition, ∣QB∗∣=n|\mathcal{Q}^*_B|=n.

  3. Under (a) and (b), consider variant (T) with mN=Θ(N)m_N=\Theta(N) i.i.d. samples per bin, αN→0\alpha_N\to0 and log⁡(1/αN)/mN→0\log(1/\alpha_N)/m_N\to0. The empirical bins are in general not pure at any finite NN: the empirical edges differ from the population edges by OP(N−1/2)O_P(N^{-1/2}), so every empirical bin contains a foreign-class fraction that is OP(B/N)O_P(B/\sqrt N). This fraction vanishes as N→∞N\to\infty but is not zero, and the estimator returns the class partition with probability →1\to1 because the induced MMD contamination is of smaller order than the test threshold.

Under (a) alone, (iii) holds with QB∗\mathcal{Q}^*_B in place of the class partition.

The proof is in the appendices (Section B), which also states precisely what is not proved: an earlier version asserted that every non-empty bin is pure with probability →1\to1; what the argument establishes is vanishing contamination, and (i) is the statement that needs the conditions on BB and on the class masses. Condition (b) holds for the K-cycle and Gaussian-mixture environments with B=nB=n (equal class masses) and for Tiger with any even BB (symmetric marginal); it fails for generic B>nB>n, which is why over-provisioning BB can create extra classes. Condition (a) does not hold for Gaussian noise; the corrected version of the earlier “sub-Gaussian 3σ<Δ/23\sigma<\Delta/2” statement is that the cross-contamination fraction of a boundary bin converges to a positive constant, so the boundary bin’s law is a permanent mixture and would eventually be split by a consistent test.

Remark 4 (Resolution and the sample cap). With mm samples per side and level α\alpha, the null threshold is tα=2κ2/m (1+2log⁡(1/α))t_\alpha=\sqrt{2\kappa^2/m}\,(1+\sqrt{2\log(1/\alpha)}) (Gretton et al. 2012, Cor. 9); pairs whose MMD gap is well below tαt_\alpha are (with high probability) merged and pairs whose gap exceeds ≈tα+4κ/m\approx t_\alpha+4\kappa/\sqrt m are split. Hence the finite-sample output is the quotient of B\mathcal{B} at resolution ≈tα\approx t_\alpha. Because Algorithm 1 caps each side at mmax⁡m_{\max} (300 in all experiments) the resolution does not sharpen indefinitely with NN; this is why, in Gaussian-noise environments, the estimator returns the latent index stably across NN at B=nB=n (within-class bin gaps stay below tαt_\alpha) while returning up to BB classes when BB is over-provisioned (Table 2). Combined with Lemma 1, the latent index is returned whenever 2κLwmax⁡≪tα≪εMMDlatent2\kappa Lw_{\max}\ll t_\alpha\ll\varepsilon_{\mathrm{MMD}}^{\rm latent}, where εMMDlatent\varepsilon_{\mathrm{MMD}}^{\rm latent} is the smallest gap between distinct latent class laws.

Experiments

All configurations, seeds and result files are listed in the appendices (Section C) and shipped with the code; unless stated otherwise ℓ=1\ell=1, k=2k=2, mmin⁡=20m_{\min}=20, mmax⁡=300m_{\max}=300, RBF kernel with the median heuristic, and BH correction, i.e. procedure (P) of Section 3, which Theorem 1 does not cover; Section 5.5 reports the runs under the analysed variant (T).

Environments

Tiger (Gaussian observations).

The classic Tiger POMDP (Kaelbling et al. 1998): two hidden states, three discrete actions (listen, open-left, open-right; an open action re-draws the state uniformly), scalar observation o=±1+N(0,σ2)o=\pm1+\mathcal N(0,\sigma^2) with σ=0.5\sigma=0.5, uniform-random policy, T=20T=20, B=8B=8, α=0.01\alpha=0.01, R=199R=199. Latent index n=2n=2.

Continuous K-cycle.

K∈{2,3,4,5,8,16}K\in\{2,3,4,5,8,16\} latent phases advanced deterministically, o=s/K+N(0,0.12)o=s/K+\mathcal N(0,0.1^2) (equally spaced means, heavy overlap for large KK: adjacent means are 1.25σ1.25\sigma apart at K=8K=8), single null action, T=50T=50, N=3000N=3000 (50005000 for K=16K=16), B=KB=K, α=0.01\alpha=0.01, R=199R=199. Latent index n=Kn=K.

Gaussian-mixture random walk.

Ns∈{3,4,5,6}N_s\in\{3,4,5,6\} states, s′=clip(s+δ,0,Ns−1)s'=\mathrm{clip}(s+\delta,0,N_s{-}1) with δ∼Unif{−1,0,1}\delta\sim\mathrm{Unif}\{-1,0,1\} (uniform stationary law), o=s+N(0,0.152)o=s+\mathcal N(0,0.15^2), T=50T=50, N=2000N=2000, α=0.05\alpha=0.05, R=99R=99 (the shipped script’s default and the value in Appendix C; the previous version said 0.010.01 here; the result file does not record α\alpha, but re-running at both levels gives identical n^\hat n, see Appendix E); run with B=NsB=N_s and with BB auto-selected by silhouette. Latent index n=Nsn=N_s (boundary states have two successors, interior states three).

PO-HalfCheetah / PO-Ant.

Gymnasium HalfCheetah-v4 (17-dim observation; we zero the 8 joint positions and the root-xx velocity, keeping 8 velocity coordinates) and Ant-v4 (27-dim observation; we keep the 14 velocity coordinates), zero-torque (passive) policy, plus HalfCheetah under a sinusoidal locomotion policy; N=5000N=5000, T=50T=50, B=8B=8 (or auto), α=0.05\alpha=0.05, R=99R=99. No ground-truth index exists; see Section 5.7.

Dec-Tiger and 4-state chain Dec-POMDPs.

Two agents observe the same latent state through independent Gaussian channels (σA,σB\sigma_A,\sigma_B); listen-only policy; N=1000N=1000, T=20T=20, B=4B=4, mmin⁡=10m_{\min}=10, α=0.05\alpha=0.05, R=99R=99. Dec-Tiger: oi=±1+N(0,σi2)o^i=\pm1+\mathcal N(0,\sigma_i^2). Chain: 4-state random walk, oi=s/4+N(0,σi2)o^i=s/4+\mathcal N(0,\sigma_i^2). For each agent we fit a quotient, label every step by its class, and compute the plug-in R^crit=H(Q^A∣Q^B)\hat R_{\rm crit}=H(\hat Q_A\mid\hat Q_B); the analytical value H(QA∣QB)H(Q_A\mid Q_B) uses the sign/interval classification of the noiseless bin structure (appendices, Section C.5). We use H(QA∣QB)H(Q_A\mid Q_B) as a proxy for the RcritR_{\rm crit} of Nixon (2026a); the two coincide when observations are conditionally independent given the state.

Ground-truth recovery at the aligned resolution

EnvironmentNNSeedsnˉ±\bar n\pmstdCorrect
Tiger (σ=0.5\sigma{=}0.5, B=8B{=}8)3000102.00±0.002.00\pm0.0010/10
K-cycle K=2K{=}23000102.00±0.002.00\pm0.0010/10
K-cycle K=3K{=}33000103.00±0.003.00\pm0.0010/10
K-cycle K=4K{=}43000104.00±0.004.00\pm0.0010/10
K-cycle K=5K{=}53000105.00±0.005.00\pm0.0010/10
K-cycle K=8K{=}83000108.00±0.008.00\pm0.0010/10
K-cycle K=16K{=}1650001016.00±0.0016.00\pm0.0010/10
GaussMix Ns=3N_s{=}3200053.00±0.003.00\pm0.005/5
GaussMix Ns=4N_s{=}4200054.00±0.004.00\pm0.005/5
GaussMix Ns=5N_s{=}5200055.00±0.005.00\pm0.005/5
GaussMix Ns=6N_s{=}6200056.00±0.006.00\pm0.005/5

Recovery of the latent index at the aligned resolution B=nB=n. nˉ±\bar n\pmstd over seeds; “Correct” counts seeds with n^=n\hat n=n. For GaussMix the silhouette auto-selection chose B=NsB=N_s on every seed and gave identical results; for K-cycle it does not (Table 3). Note that with B=nB=n the estimator cannot return more than nn classes, so this table certifies the absence of spurious merges only; Table 2 probes over-splitting.

Table 1 shows exact recovery on all 90 runs when BB equals the latent index (Tiger uses B=8>nB=8>n, which is safe because the same-side bins have posteriors that differ by less than the detection scale at mmax⁡=300m_{\max}=300; see below). Tiger is also correct on 3/3 seeds at every N∈{500,1000,2000,5000}N\in\{500,1000,2000,5000\} in the ablation runs.

Sensitivity to BB and NN

K-cycleBBn^\hat n (per seed)TigerNNn^\hat n (per seed)
K=2K{=}242, 2, 2, 2, 2B=8B{=}810002, 2, 2, 2, 2
K=3K{=}363, 4, 3, 4, 4B=8B{=}830002, 2, 2, 2, 2
K=4K{=}488, 8, 8, 8, 8B=8B{=}8100002, 2, 2, 2, 2
K=5K{=}51010, 10, 10, 10, 10
K=8K{=}81616, 16, 16, 16, 16
K=16K{=}163212, 15, 10, 8, 15

Resolution effects. Left: K-cycle with over-provisioned B=2KB=2K (55 seeds; NN as in Table 1). Right: Tiger with B=8B=8 as NN grows (55 seeds). Over-provisioning BB produces extra classes for 3≤K≤83\le K\le8 (adjacent half-class bins have detectably different posteriors) and chaining-induced under-splitting at K=16K=16, whereas at fixed BB the output is stable in NN because the per-test cap mmax⁡=300m_{\max}=300 fixes the detection scale.

Table 2 is the honest counterpart of Table 1: when BB is doubled the K-cycle estimate moves from KK towards 2K2K (n^=2K\hat n=2K on every seed for K∈{4,5,8}K\in\{4,5,8\} and on 3/5 seeds for K=3K=3), and at K=16K=16, where the 32 bins are only half a class apart, single-linkage chaining merges some neighbours and the estimate falls below KK with high variance (n^∈{8,…,15}\hat n\in\{8,\dots,15\}, 12.0±3.112.0\pm3.1), confirming that in Gaussian-noise environments the bin-level quotient is finer than the latent one and that the estimator recovers the latent index only at the aligned resolution or when a bin-count selector (silhouette selects B=NsB=N_s on GaussMix, B=2B=2 on Tiger and B=KB=K on K-cycle only for K≤3K\le3; Section 5.4) supplies it. Tiger’s estimate is 22 at every NN tested; the same-side bins’ posteriors differ by at most ≈0.09\approx0.09 in posterior weight (Pr⁡(Right∣b)≈0.000,0.000,0.002,0.090\Pr(\text{Right}\mid b)\approx0.000, 0.000, 0.002, 0.090 for the four left-side bins), below the detection scale at mmax⁡=300m_{\max}=300.

Partition-level accuracy without knowledge of nn

Table 1 counts n^=n\hat n=n at B=nB=n, which uses the answer. We therefore score the partition: the adjusted Rand index (ARI) between the estimated class of every step (the class of its bin) and the latent state at that step, over all steps with a full continuation window (5 seeds per cell, same configurations as Table 1, procedure (P)). Two selection rules for BB do not use nn: silhouette auto-selection (Algorithm 2, B∈[2,32]B\in[2,32], observations only) and the package default B=8B=8; B=nB=n is shown as a reference. Because a bin is a noisy readout of the latent state, no partition of the bins can reach ARI =1=1; the last column gives the best ARI over all merges of the B=8B=8 bins (each bin mapped to its majority latent class).

B=nB=n (reference)silhouette BBB=8B=8
Environmentnnn^\hat nARIBBn^\hat nARIn^\hat nARIceiling
Tiger220.91220.9120.910.91
K-cycle K=2K{=}2220.98220.9820.980.98
K-cycle K=3K{=}3330.82330.8250.620.74
K-cycle K=4K{=}4440.64220.4180.400.64
K-cycle K=5K{=}5550.50220.3180.380.49
K-cycle K=8K{=}8880.31220.1980.310.31
GaussMix Ns=3N_s{=}3330.98330.985–60.630.78
GaussMix Ns=4N_s{=}4440.97440.974–50.940.97
GaussMix Ns=5N_s{=}5550.97550.977–80.560.69
GaussMix Ns=6N_s{=}6660.96660.9680.600.64

Partition accuracy of procedure (P) (ARI vs. latent state; n^\hat n is the range over 5 seeds; mean ARI). “Ceiling” is the best ARI attainable by merging the B=8B=8 bins. Source: partition_accuracy.csv.

Three observations. (i) Selecting BB without nn is the weak point. Silhouette recovers the latent index and partition on Tiger, K-cycle K≤3K\le3 and all GaussMix runs, but selects B=2B=2 on K-cycle for K≥4K\ge4 (n^=2\hat n=2, ARI 0.190.19–0.410.41); the statement in the previous version that silhouette chose B=KB=K on K-cycle had no result file behind it and is withdrawn. Fixed B=8B=8 recovers only Tiger and K=2K=2; elsewhere it over-splits (n^=5\hat n=5 at K=3K=3, 88 at K≥4K\ge4, 44–88 on GaussMix). (ii) At the aligned resolution B=nB=n, n^=n\hat n=n is accompanied by an ARI equal to the best attainable by any merging of those nn bins on every environment, i.e. the merge step is correct, but the ARI itself is far below 1 when noise is large (0.310.31 at K=8K=8, where adjacent means are 1.25σ1.25\sigma apart): ARI measures bin quality and merging jointly.

Experiments under the analysed variant (T)

Theorem 1 covers variant (T) with the per_traj sampler (Section 3): bins and bandwidth from a design half, one window per test trajectory (a uniformly chosen time, so the sampled law is exactly the pooled bin law PbP_b), independent sides, analytic threshold with δ=0.05\delta=0.05. We re-ran the ground-truth experiments with it (5 seeds per cell, same data as Table 3) and, as a labelled ablation, with the per_bin sampler used in the previous version of this paper (one visit per trajectory and bin; not covered by the theorem, since it samples the trajectory-weighted law P~b\tilde P_b).

Environmentnn(P) n^\hat n(P) ARI(T-pt) n^\hat n(T-pt) ARI(T-pb) n^\hat n(T-pb) ARI
Tiger220.9110.0010.00
K-cycle K=2K{=}2220.9820.9820.98
K-cycle K=3K{=}3330.8230.8230.82
K-cycle K=4K{=}4440.643–40.6140.64
K-cycle K=5K{=}5550.5030.3150.50
K-cycle K=8K{=}8880.3110.0080.31
GaussMix Ns=3N_s{=}3330.9810.0030.98
GaussMix Ns=4N_s{=}4440.9710.0040.96
GaussMix Ns=5N_s{=}5550.9710.0050.95
GaussMix Ns=6N_s{=}6660.9610.005–60.84

Procedure (P) versus variant (T) at B=nB=n: range of n^\hat n over 5 seeds and mean ARI. (T-pt) is the analysed variant (per_traj, covered by Theorem 1); (T-pb) is the per_bin ablation (not covered). Sources: partition_accuracy.csv (P, T-pb), partition_accuracy_pertraj.csv (T-pt).

Environmentnn(P) n^\hat n(P) ARI(T-pt) n^\hat n(T-pt) ARI(T-pb) n^\hat n(T-pb) ARI
Tiger220.9110.0010.00
K-cycle K=2K{=}2220.9820.9820.98
K-cycle K=3K{=}3350.621–20.0650.62
K-cycle K=4K{=}4480.401–30.144–50.63
K-cycle K=5K{=}5580.3810.007–80.40
K-cycle K=8K{=}8880.3110.0080.31
GaussMix Ns=3N_s{=}335–60.6310.0010.00
GaussMix Ns=4N_s{=}444–50.9410.003–40.91
GaussMix Ns=5N_s{=}557–80.5610.001–20.27
GaussMix Ns=6N_s{=}6680.6010.002–30.34

Procedure (P) versus variant (T) at B=8B=8: range of n^\hat n over 5 seeds and mean ARI. (T-pt) is the analysed variant (per_traj, covered by Theorem 1); (T-pb) is the per_bin ablation (not covered). Sources: partition_accuracy.csv (P, T-pb), partition_accuracy_pertraj.csv (T-pt).

Findings.

(i) With the sampler that Theorem 1 covers, (T-pt) is far more conservative than (P) at the experiments’ sample sizes (N=2000N=2000–30003000): at B=nB=n it matches (P) on K-cycle K=2,3K=2,3 only, loses classes on K=4,5K=4,5, and returns n^=1\hat n=1 (everything merged) on Tiger, K-cycle K=8K=8 and all GaussMix runs. The reason is the budget: one window per trajectory leaves m≈N/(4B)m\approx N/(4B) samples per side (median mm: 361361 on Tiger, 121121–161161 on GaussMix Ns=3,4N_s=3,4, 8989 on K-cycle K=8K=8), and condition Eq. (2) requires N≥10m⋆/πmin⁡N\ge10m_\star/\pi_{\min}, which is orders of magnitude larger (for κ=1\kappa=1, B=8B=8, δ=0.05\delta=0.05 and εMMD=0.3\varepsilon_{\mathrm{MMD}}=0.3, m⋆≈4.1⋅103m_\star\approx4.1\cdot10^3 and N≳6.5⋅105N\gtrsim6.5\cdot10^5). So the earlier statement that (T) matches (P) at B=nB=n on K-cycle and GaussMix does not survive: it held for the per_bin sampler (T-pb), which is not covered by the theorem. (ii) Scaling the sample size (T_traj_scaling.csv, per_traj, 5 seeds, B=nB=n): (T-pt) returns n^=n\hat n=n on all 5 seeds at N=104N=10^4 for GaussMix Ns=3,4,6N_s=3,4,6 (ARI 0.970.97–0.990.99) and K-cycle K=3,4K=3,4 (ARI equal to the B=nB=n ARI of (P)), and at N=3⋅104N=3\cdot10^4 for K-cycle K=8K=8 (ARI 0.310.31, as (P)). At B=2nB=2n it over-splits as NN grows when bins are not aligned (K-cycle K=3K=3: n^=5\hat n=5 at N=105N=10^5; K=4K=4: 44–66 at 3⋅1043\cdot10^4 and 88 at 10510^5), but at B=2nB=2n it merges everything until N=3⋅104N=3\cdot10^4 on GaussMix Ns=4,6N_s=4,6 (at 10410^4) and until N=105N=10^5 on K-cycle K=8K=8 (n^=1\hat n=1 at 3⋅1043\cdot10^4). Tiger (tiger_T_scaling_pertraj.csv, N∈{3⋅103,104,3⋅104,105}N\in\{3\cdot10^3,10^4,3\cdot10^4,10^5\}): n^=1\hat n=1 on all 5 seeds at N=3000N=3000 for both BB (median threshold 0.300.30 at B=2B=2 and 0.720.72 at B=8B=8, above the largest observed statistic, 0.250.25 and 0.350.35); n^=2\hat n=2 with ARI 0.910.91 on all seeds at B=2B=2 from N=104N=10^4, and at B=8B=8 only at N=105N=10^5 (it still merges at 3⋅1043\cdot10^4). So (T-pt) resolves Tiger with about 33–30×30\times the trajectories that (P) needs. (iii) Permutation calibration and BH on (T)’s per_traj pipeline (Pfix^{\rm fix}: fixed bins and kernel, one window per trajectory, independent sides; partition_accuracy_pertraj.csv) matches (P) at B=nB=n on Tiger, K-cycle K∈{2,4}K\in\{2,4\} and GaussMix Ns=4N_s=4. At B=8B=8 it keeps (P)’s over-splitting on K-cycle K=4K=4 (n^∈{6,…,8}\hat n\in\{6,\dots,8\}, ARI 0.420.42 versus 0.400.40) and GaussMix Ns=4N_s=4 (44–55, as (P)), but it merges Tiger (n^=1\hat n=1 at B=8B=8 where (P) returns 22), since it has only m≈88m\approx88 samples per side. At B=2nB=2n on K-cycle (partition_accuracy_2n.csv) Pfix^{\rm fix} over-splits for K=4,5K=4,5 (n^∈[6,8]\hat n\in[6,8] and [8,10][8,10], as (P): 88 and 1010) but not for K=8K=8 (33–66 versus 1616 for (P)). So the over-splitting of (P) is attributable to permutation/BH calibration, rather than to overlapping windows or the per-pair bandwidth, only in the cases tested: Tiger, K-cycle K∈{2,4}K\in\{2,4\} and GaussMix Ns=4N_s=4 at B=nB=n; K-cycle K=4K=4 and GaussMix Ns=4N_s=4 at B=8B=8; K-cycle K∈{4,5}K\in\{4,5\} at B=2nB=2n (5 seeds each). It is not reproduced for Tiger at B=8B=8 (Pfix^{\rm fix} merges, n^=1\hat n=1) or K-cycle K=8K=8 at B=2nB=2n, and the other environments were not run with Pfix^{\rm fix}; we make no attribution there. (iv) Dec-Tiger: we use per_traj sampling (one random time per trajectory, so the sampled law is exactly the pooled bin law; the state is constant within an episode, and the per_bin scheme would re-weight the bins’ laws toward rare visits), B=4B=4, seeds 00–99 (dec_tiger_variant_t.csv). Symmetric (0.5,0.5)(0.5,0.5): (T) returns n^A=n^B=2\hat n_A=\hat n_B=2 on 10/10 seeds at N=1000N=1000 (R^crit=0.307\hat R_{\rm crit}=0.307, mean absolute error 0.0440.044 against 0.2620.262) and at N=20000N=20000 (0.2640.264, mean absolute error 0.0020.002): no agent-A over-splitting, unlike (P) at α=0.05\alpha=0.05 (5/10 seeds, Table 10). Asymmetric (0.1,1.0)(0.1,1.0): n^A=2\hat n_A=2 on all seeds, but agent B (σB=1\sigma_B=1) collapses to one class at N=1000N=1000 (R^crit=0.999\hat R_{\rm crit}=0.999 versus 0.6310.631) and returns 33–44 classes at N=20000N=20000 (0.5630.563, mean absolute error 0.0680.068). Permutation+BH on the same data pipeline (Pfix^{\rm fix}) over-splits agent A on 2/10 (symmetric) and 3/10 (asymmetric) seeds at N=1000N=1000, and at N=20000N=20000 on all 10 of 10 seeds in both configurations (seeds 00–22 in dec_tiger_variant_t.csv, seeds 33–99 in dec_tiger_pfix_N20000_seeds3_9.csv): symmetric n^A=n^B=4\hat n_A=\hat n_B=4 on 9/10 seeds and 33 on 1/10 (R^crit≈1.24\hat R_{\rm crit}\approx1.24 against 0.2620.262 on seeds 00–22); asymmetric n^A=3\hat n_A=3, n^B=4\hat n_B=4 on all 10 seeds. The over-splitting of RcritR_{\rm crit} under (P) is thus a property of the permutation/BH calibration on this environment, consistent with its resolving within-class bin differences ever more finely as NN grows (the bin-level quotient QB∗\mathcal{Q}^*_B is generically finer than the latent one), while (T) stays at the latent index but is conservative. Reading. The Section 5 results for (P) are therefore not guarantees: the guaranteed procedure is far more conservative and needs between roughly 3×3\times and 30×30\times more trajectories than (P) on the environments tested (Tiger: N≥104N\ge10^4 at B=2B=2 and 10510^5 at B=8B=8, against 30003000 for (P)). We report both because (P) is the procedure that is practical at N≤3000N\le3000.

We compare partition accuracy (ARI against the latent state, 5 seeds, the same trajectories for every method, no method given nn) with re-implementations of the closest methods (details and what is and is not faithful in Appendix C.6): an RKHS ε\varepsilon-machine (Brodu and Crutchfield 2022) (regularised conditional mean embeddings of the continuation given the present observation, similarity matrix, diffusion-map coordinates, DBSCAN or kk-means/silhouette); causal-state learning (Zhang et al. 2019) (a GRU encoder over the full history trained to predict the next observation and reward, kk-means discretisation); a Ferns bisimulation metric (Ferns et al. 2004, 2011) on the empirical chain over the B=8B=8 quantile bins; DBC (Zhang et al. 2021) with its standard objective (bisimulation loss with a learned Gaussian latent dynamics model, kk-means/silhouette); and multivariate W1W_1 between bin-conditional continuation vectors (exact optimal transport), with merge thresholds ε\varepsilon or silhouette-selected average linkage. The previous version’s Wasserstein baseline (first-coordinate projections) and DBC baseline (a custom Wasserstein-matching objective) are replaced; their old rows are removed from Table 7. Bisimulation methods need a reward: Tiger uses its native reward and the reward-free K-cycle/GaussMix use the next observation as an emission reward, which is our choice.

MethodTigerK2K4K8G3G5
MMD-quotient (P), silhouette BB0.91 (2)0.98 (2)0.41 (2)0.19 (2)0.98 (3)0.97 (5)
MMD-quotient (P), B=8B=80.91 (2)0.98 (2)0.40 (8)0.31 (8)0.63 (5–6)0.56 (7–8)
RKHS ε\varepsilon-machine, DBSCAN0.00 (1)0.97 (2–3)0.00 (1)0.00 (1)0.55 (1–3)0.08 (1–2)
RKHS ε\varepsilon-machine, kk-means/sil.0.91 (2)0.97 (2)0.57 (3–6)0.20 (2–10)0.99 (3)0.99 (5)
Causal-state (GRU, full history) + kk-means0.93 (2)1.00 (2)0.92 (5)0.86 (10–12)0.94 (3–4)0.35 (2)
Ferns bisimulation metric, B=8B=80.91 (2)0.98 (2)0.64 (4)0.12 (2)0.78 (3)0.56 (3)
DBC objective + kk-means0.16 (11–12)0.98 (2)0.60 (4–6)0.29 (7–12)0.85 (4–5)0.98 (5–6)
W1W_1 (multivariate), silhouette, B=8B=80.91 (2)0.98 (2)0.61 (3–4)0.20 (2–5)0.72 (2–3)0.56 (3)
W1W_1, ε=0.1\varepsilon=0.1, B=8B=80.23 (8)0.98 (2)0.46 (7–8)0.31 (8)0.39 (7–8)0.55 (8)
W1W_1, ε=0.2\varepsilon=0.2, B=8B=80.23 (8)0.98 (2)0.58 (3–4)0.13 (3–4)0.64 (5)0.55 (8)
W1W_1, ε=0.5\varepsilon=0.5, B=8B=80.91 (2)0.98 (2)0.00 (1)0.00 (1)0.67 (2–3)0.63 (5–6)
W1W_1, ε=1.0\varepsilon=1.0, B=8B=80.00 (1)0.00 (1)0.00 (1)0.00 (1)0.00 (1)0.56 (3)

Mean ARI over 5 seeds (range of n^\hat n in brackets) against the latent state. Kkk = K-cycle with K=kK=k, Gkk = GaussMix with Ns=kN_s=k. Latent indices: Tiger 2, K2 2, K4 4, K8 8, G3 3, G5 5. ARI is bounded above by a bin-readout ceiling for the binned methods (Table 3); the GRU conditions on the full history and is not. Source: partition_baselines.csv, partition_accuracy.csv.

What the comparison shows.

No method is uniformly best, and our estimator is not the best baseline on the hardest environments. (i) The GRU causal-state learner, which sees the whole history, is the best method on K-cycle (0.920.92 at K=4K=4, 0.860.86 at K=8K=8, above the one-step-key ceiling) because the phase is determined by the history; its kk-means step over-counts classes (n^=5\hat n=5 at K=4K=4, 1010–1212 at K=8K=8) and it fails on the GaussMix random walk with Ns=5N_s=5 (0.350.35, n^=2\hat n=2). (ii) The RKHS ε\varepsilon-machine with kk-means/silhouette is competitive with ours where classes are well separated (Tiger 0.910.91, K2 0.970.97, G3 0.990.99, G5 0.990.99 with the correct count) and weaker on K4/K8; with DBSCAN at our scaling of its threshold it returns one cluster on Tiger, K4, K8 — the threshold is exactly the kind of unvalidated scale parameter that a calibrated test avoids, but we also did not tune it. (iii) A Ferns metric on the bins and silhouette-clustered W1W_1 at B=8B=8 do better than our estimator at the same B=8B=8 on K4 (0.640.64 and 0.610.61 versus 0.400.40) and tie on Tiger, but fail at K8 (0.120.12, 0.200.20 versus 0.310.31). (iv) No single W1W_1 threshold works: ε=0.5\varepsilon=0.5 is right on Tiger and K2 and collapses K4/K8 to one class; ε≤0.2\varepsilon\le0.2 over-splits Tiger. (v) DBC fails on Tiger (n^=11\hat n=11–1212, 0.160.16) and is good on K2 and G5 (0.980.98, n^=5\hat n=5–66). The previous statement that permutation calibration is “the only method correct on both” environments is withdrawn: with a validated count and BB chosen without nn, our estimator is correct on Tiger, K2, K3 and GaussMix, and other methods match or beat it on specific environments. What distinguishes the estimator is not accuracy but form: it outputs a partition together with a calibrated test decision for each merge, a stated target (QB∗\mathcal{Q}^*_B), and (for variant (T)) a sample bound; of the compared methods, none states a target or sample bound, and test-based merging is not unique to us (Mixed LICORS permits it).

MethodTigerK-cycle
G-test 8-bin2/30/3 (n^=8\hat n=8)
G-test 3-bin0/30/3 (n^=3\hat n=3)

G-test baselines of the companion paper (finite-alphabet estimator after quantile discretisation of the continuation), counts of seeds with n^=n\hat n=n (from ablation_sample_efficiency.csv; Tiger: N=5000N=5000, 3 seeds; K-cycle: K=4K=4, N=3000N=3000, B=KB=K, 3 seeds). The Wasserstein and DBC rows of the previous version are superseded by Table 6.

PO-MuJoCo: quotient at a chosen resolution

EnvironmentPolicyBBn^\hat n
PO-HalfCheetahpassive88.00±0.008.00\pm0.00
PO-HalfCheetahsinusoidal88.00±0.008.00\pm0.00
PO-Antpassive88.00±0.008.00\pm0.00
PO-HalfCheetahpassiveauto (3)2.67±0.582.67\pm0.58

PO-MuJoCo (5 seeds each). With B=8B=8 every one of the 28 bin pairs is rejected on every seed, so n^=B\hat n=B; this indicates that passive/locomotion dynamics are velocity-dependent at the resolution of the bins, not that a latent 8-class structure has been discovered. With silhouette auto-selection (B=0B=0 sentinel) HalfCheetah gives B=3B=3 and n^∈{3,3,2}\hat n\in\{3,3,2\} (3 seeds).

Because n^=B\hat n=B, Table 8 does not certify a quotient size; it certifies that the eight velocity-norm bins have pairwise distinguishable continuation laws. Sorted by mean velocity ℓ2\ell_2-norm the eight HalfCheetah classes span 0.005–2.40 (a 480×480\times range) and their discounted-return distributions differ (Kruskal–Wallis over time steps, H=4897H=4897; appendices, Section D; we do not read the accompanying pp-value as evidence because time steps within a trajectory are strongly dependent).

Do the classes carry “multi-step information” beyond speed? No.

The previous version claimed that a linear predictor on the classes (R2=0.163R^2=0.163, in-sample) beat a linear predictor on instantaneous speed (0.0820.082) and concluded that the quotient retains multi-step information beyond speed. That comparison is not valid: the class of a step is a function of the binned velocity norm alone (ℓ=1\ell=1, z(o)=∥o∥2z(o)=\|o\|_2), so any predictor of the classes is a piecewise-constant function of speed, and a nonlinear function of speed can match it; the only thing the comparison showed was that the return is a nonlinear function of speed. We therefore re-did it with a nonlinear speed baseline and trajectory-level train/test splits: 5-fold GroupKFold over trajectories, the quotient (quantile edges and classes) refitted on training trajectories only, discounted return-to-go (γ=0.99\gamma=0.99) as target, pooled out-of-fold R2R^2 with a trajectory-level bootstrap (2000 resamples) for 95% intervals, and three collection seeds (1000 trajectories of 100 steps each; mean over seeds in Table 9, file halfcheetah_groupsplit_value.csv).

PolicyBBPredictorR2R^295% CIΔ\Delta vs speed (trees)
sinusoidalautoQuotient classes (one-hot)0.103[0.085, 0.119]-0.198 [-0.211, -0.186]
sinusoidalautoSpeed ∥v∥2\|v\|_2, linear0.084[0.080, 0.086]-0.218 [-0.228, -0.208]
sinusoidalautoSpeed ∥v∥2\|v\|_2, gradient-boosted trees0.302[0.289, 0.312]+0.000 [+0.000, +0.000]
sinusoidalautoClasses + speed, trees0.302[0.289, 0.312]+0.000 [+0.000, +0.000]
sinusoidalautoAll 8 velocities, trees0.893[0.889, 0.896]+0.591 [+0.582, +0.602]
sinusoidal8Quotient classes (one-hot)0.256[0.244, 0.267]-0.045 [-0.050, -0.041]
sinusoidal8Speed ∥v∥2\|v\|_2, linear0.084[0.080, 0.086]-0.218 [-0.228, -0.208]
sinusoidal8Speed ∥v∥2\|v\|_2, gradient-boosted trees0.302[0.289, 0.312]+0.000 [+0.000, +0.000]
sinusoidal8Classes + speed, trees0.302[0.289, 0.312]+0.000 [-0.000, +0.000]
sinusoidal8All 8 velocities, trees0.893[0.889, 0.896]+0.591 [+0.582, +0.602]
passiveautoQuotient classes (one-hot)0.001[0.000, 0.002]-0.118 [-0.137, -0.098]
passiveautoSpeed ∥v∥2\|v\|_2, linear0.065[0.050, 0.079]-0.055 [-0.061, -0.047]
passiveautoSpeed ∥v∥2\|v\|_2, gradient-boosted trees0.119[0.099, 0.138]+0.000 [+0.000, +0.000]
passiveautoClasses + speed, trees0.119[0.099, 0.138]+0.000 [-0.000, +0.000]
passiveautoAll 8 velocities, trees0.360[0.329, 0.389]+0.241 [+0.223, +0.258]
passive8Quotient classes (one-hot)0.011[0.006, 0.015]-0.109 [-0.124, -0.092]
passive8Speed ∥v∥2\|v\|_2, linear0.065[0.050, 0.079]-0.055 [-0.061, -0.047]
passive8Speed ∥v∥2\|v\|_2, gradient-boosted trees0.119[0.099, 0.138]+0.000 [+0.000, +0.000]
passive8Classes + speed, trees0.119[0.099, 0.138]+0.000 [-0.000, +0.000]
passive8All 8 velocities, trees0.360[0.329, 0.389]+0.241 [+0.223, +0.258]

Held-out value prediction on PO-HalfCheetah (trajectory-level 5-fold split; out-of-fold R2R^2, mean over 3 collection seeds, mean of the bootstrap 95% interval endpoints; last column is the difference to the gradient-boosted speed baseline). “auto”: silhouette-selected BB (2–3 classes per fold); “8”: B=8B=8.

Out of fold, the quotient classes are worse than a nonlinear function of speed under both policies and both BB rules (differences with intervals that exclude 00), adding the classes to the speed trees changes nothing (difference 0.0000.000), and the classes beat the linear speed predictor only under the sinusoidal policy (0.1030.103 with auto-BB and 0.2560.256 with B=8B=8, versus 0.0840.084; under the passive policy they are below it), which is again nonlinearity in speed. Trees on all eight observed velocities reach R2≈0.89R^2\approx0.89 (sinusoidal) and 0.360.36 (passive), so most of the predictable return lives in directions the scalar norm discards. We withdraw the claim that the quotient retains multi-step information beyond speed; what the data support is that the classes are a coarse, return-informative discretisation of speed. An earlier draft compared against a discretised G-test baseline said to saturate at 64 classes; no result file for that baseline exists and we do not report it.

End-to-end RcritR_{\rm crit} estimation

(σA,σB)(\sigma_A,\sigma_B)α\alphaRcrittrueR^{\rm true}_{\rm crit}mean±\pmstd (all)median (all)clean seedsmean±\pmstd (clean)n^A\hat n_A / n^B\hat n_B per seed
(0.5,0.5)(0.5,0.5)0.050.2620.515±0.2640.515\pm0.2640.5145/100.264±0.0030.264\pm0.003{2,3}\{2,3\} / {2,3}\{2,3\}
(0.1,1.0)(0.1,1.0)0.050.6310.611±0.1640.611\pm0.1640.5599/100.559±0.0080.559\pm0.0082 (9), 3 (1) / 4 (10)
(0.5,0.5)(0.5,0.5)0.010.2620.319±0.1560.319\pm0.1560.2719/100.270±0.0070.270\pm0.0072 (9), 3 (1) / {2,3}\{2,3\}
(0.1,1.0)(0.1,1.0)0.010.6310.561±0.0100.561\pm0.0100.55910/100.561±0.0100.561\pm0.0102 (10) / 4 (10)

Dec-Tiger R^crit=H(Q^A∣Q^B)\hat R_{\rm crit}=H(\hat Q_A\mid\hat Q_B), all 10 seeds per condition. “Clean” seeds are those on which agent A recovers n^A=2\hat n_A=2 (over-splitting AA inflates the conditional entropy; over-splitting BB does not). α=0.05\alpha=0.05, R=99R=99 (main runs) and α=0.01\alpha=0.01, R=999R=999 (sensitivity).

Dec-Tiger.

On the clean seeds the estimate is within 1%1\% (symmetric) and 11%11\% (asymmetric; the shortfall is consistent with the downward bias of plug-in entropy and with agent B’s four-way over-split, see below) of the analytical value, and the asymmetric/symmetric ratio 0.559/0.264=2.120.559/0.264=2.12 tracks the analytical 2.412.41. However, at α=0.05\alpha=0.05 agent A over-splits on 5/10 symmetric seeds, and every such seed roughly triples the estimate (≈0.76\approx0.76 bits). The mechanism is the resolution effect of Remark 4: with σ=0.5\sigma=0.5 the two same-side bins have posteriors that differ enough to be separated at R=99R=99 permutations (pp-value floor 0.010.01; with only 6 pairs BH rejects everything as soon as all six pp-values hit the floor). Agent B in the asymmetric case (σB=1\sigma_B=1) always returns four classes for the same reason—its posterior varies smoothly across the four bins—which is harmless for H(Q^A∣Q^B)H(\hat Q_A\mid\hat Q_B). Lowering α\alpha to 0.010.01 at R=99R=99 makes rejection impossible (the floor equals α\alpha) and collapses every quotient to one class; at α=0.01\alpha=0.01 with R=999R=999 agent A over-splits on only 1/10 symmetric seeds (all-seed median error 3.2%3.2\%, clean-seed mean 0.270±0.0070.270\pm0.007) and on 0/10 asymmetric seeds (0.561±0.0100.561\pm0.010, 11.0%11.0\%). The multiple-testing level and the permutation budget are therefore first-order design choices for the RcritR_{\rm crit} pipeline, not nuisance parameters.

Noise sweep on two environments.

Figure 1 sweeps σB\sigma_B with σA=0.1\sigma_A=0.1 fixed (5 seeds per level). On the 4-state chain, n^A=4\hat n_A=4 on every run and the estimate tracks the analytical curve with mean relative error 0.80%0.80\% over the levels σB∈{0.1,0.2,0.5}\sigma_B\in\{0.1,0.2,0.5\} where agent B’s quotient is non-trivial (n^B∈{2,3,4}\hat n_B\in\{2,3,4\}); at σB=1.0\sigma_B=1.0 agent B collapses to one class and the estimate equals H(Q^A)=2H(\hat Q_A)=2 bits exactly, which happens to be within 1.8%1.8\% of the analytical 1.961.96 but is not evidence of tracking (overall mean 1.06%1.06\%). On Dec-Tiger the analytical value is essentially 00 for σB≤0.2\sigma_B\le0.2 (both agents classify perfectly) while the estimate is 0.020.02–0.150.15 bits: each agent’s empirical median edge falls inside the majority cluster whenever the sample is not exactly balanced, so a sliver of ≈∣p^Left−12∣\approx|\hat p_{\rm Left}-\tfrac12| of the steps is labelled by the wrong side—the finite-NN edge misalignment of Proposition 1 (the two agents’ slivers differ, so the labels disagree there); at σB∈{0.5,1.0,2.0}\sigma_B\in\{0.5,1.0,2.0\} the median relative errors are 12.6%12.6\%, 11.8%11.8\% and 2.5%2.5\% (mean absolute errors 0.0240.024, 0.0710.071, 0.0220.022 bits). The estimate is monotone non-decreasing in σB\sigma_B on both environments.

rcrit_sweep
rcrit_sweep

R^crit\hat R_{\rm crit} (red, mean±\pmstd over 5 seeds) vs. analytical H(QA∣QB)H(Q_A\mid Q_B) (blue) as σB\sigma_B increases with σA=0.1\sigma_A=0.1. Left: Dec-Tiger. Right: 4-state chain (agent B’s quotient is trivial at σB=1.0\sigma_B=1.0, where the estimate is H(Q^A)=2H(\hat Q_A)=2 bits).

Limitations

  • The guarantee does not cover the procedure that is mostly run. Theorem 1 is about variant (T); the experiments of Sections 5.4–5.7 use procedure (P), for which we have only the partial type-I statement of Section 4.1. Under (T) the analytic threshold is far more conservative and cannot resolve the Gaussian-noise classes at the main sample sizes (Section 5.5).

  • The target is resolution-dependent and BB must be chosen. In continuous-observation POMDPs the exact history quotient is infinite; the estimator returns the bin-level quotient at the detection scale of the test. Latent indices are recovered when BB is aligned with the class structure; with BB chosen without nn (silhouette or fixed B=8B=8) recovery fails on several environments (Section 5.4), and the PO-MuJoCo results certify separability, not a class count.

  • One-step keys. All experiments use ℓ=1\ell=1; environments in which distinct latent classes share the same observation marginal require ℓ>1\ell>1 and BℓB^\ell keys, and we have not evaluated that regime.

  • Permutation floor and multiplicity. With RR permutations no pp-value is below 1/(R+1)1/(R{+}1); family-wise control needs R≳Khist2/αR\gtrsim K_{\mathrm{hist}}^2/\alpha, and BH with all pp-values at the floor rejects everything. The Dec-Tiger over-splits are a direct consequence.

  • Single-linkage merging. A single missed split merges two whole classes; a chain of adjacent bins with small pairwise gaps can be merged transitively (observed at K=16K=16, B=32B=32: n^=12.0±3.1<16\hat n=12.0\pm3.1<16).

  • RcritR_{\rm crit} proxy. H(Q^A∣Q^B)H(\hat Q_A\mid\hat Q_B) is inflated by over-splitting agent A and is a proxy for the rate of Nixon (2026a) only under conditional independence of the observations given the state.

  • Alphabet-free, not dimension-free. See Remark 2.

  • Observation noise caps partition accuracy. Bins are noisy readouts of the latent state, so the adjusted Rand index of any partition of the bins is bounded (the “ceiling” column of Table 3); ARI measures the combination of bin quality and merging.

  • Baselines are re-implementations. The RKHS ε\varepsilon-machine, causal-state and DBC baselines follow the cited estimators but are our code, in the one-observation-past setting; the reward proxy for DBC and the Ferns metric on reward-free environments is a choice of ours (Section 5.6).

Conclusion

We studied Myhill–Nerode quotient learning for continuous observation–action spaces with a kernel-MMD two-sample test on quantile-binned histories. The idea of clustering predictive distributions with MMD is not new (Brodu and Crutchfield 2022); our contribution is a finite-sample formulation with an explicit target (the bin-level quotient at the test’s resolution), an alphabet-free bound for an analysed variant, and an empirical characterisation of when the implemented procedure does and does not recover the latent partition. Directions: bin-count selection with statistical guarantees (silhouette and fixed BB both fail on some environments), a guarantee for the permutation/BH procedure, longer history keys (ℓ>1\ell>1), and a multi-agent RcritR_{\rm crit} estimator robust to over-splitting.

Proofs of Lemma 1 and Theorem 1

Throughout, κ2=sup⁡xκ(x,x)\kappa^2=\sup_x\kappa(x,x) and, as required by Gretton et al. (2012, Thm. 7), 0≤κ(x,y)≤κ20\le\kappa(x,y)\le\kappa^2; the RBF kernel satisfies both with κ=1\kappa=1. For a distribution PP let μP=EP[ϕ(c)]\mu_P=\mathbb{E}_P[\phi(c)] be its mean embedding, so that MMD(P,Q)=∥μP−μQ∥Hk\mathrm{MMD}(P,Q)=\|\mu_P-\mu_Q\|_{\mathcal{H}_k}.

Lemma 1: MMD is dominated by total variation

Proof. For ∥f∥Hk≤1\|f\|_{\mathcal{H}_k}\le1, ∣f(x)∣=∣⟨f,ϕ(x)⟩∣≤κ|f(x)|=|\langle f,\phi(x)\rangle|\le\kappa, hence

MMD(P,Q)=sup⁡∥f∥≤1∣∫f d(P−Q)∣≤κ ∥P−Q∥1=2κ TV(P,Q).\mathrm{MMD}(P,Q)=\sup_{\|f\|\le1}\Big|\int f\,d(P-Q)\Big| \le\kappa\,\|P-Q\|_1=2\kappa\,\mathrm{TV}(P,Q).

For the second claim, Pb=∫Ph′,π(k) νb(dh′)P_b=\int P^{(k)}_{h',\pi}\,\nu_b(dh') where νb\nu_b is the conditional law of the history given the bin, so μPb=∫μPh′νb(dh′)\mu_{P_b}=\int\mu_{P_{h'}}\nu_b(dh') (Bochner integral; the embedding is bounded) and

∥μPh−μPb∥Hk≤∫∥μPh−μPh′∥ νb(dh′)≤2κ∫TV(Ph,Ph′) νb(dh′)≤2κL wb.\qedhere\|\mu_{P_h}-\mu_{P_b}\|_{\mathcal{H}_k}\le\int\|\mu_{P_h}-\mu_{P_{h'}}\|\,\nu_b(dh') \le2\kappa\int\mathrm{TV}(P_h,P_{h'})\,\nu_b(dh')\le2\kappa L\,w_b .\qedhere

 ◻

Two facts about the biased MMD statistic

Let X=(x1,…,xm)∼P⊗mX=(x_1,\dots,x_m)\sim P^{\otimes m} and Y=(y1,…,ym)∼Q⊗mY=(y_1,\dots,y_m)\sim Q^{\otimes m} be independent and let MMD^\widehat{\mathrm{MMD}} be the square root of the biased statistic (Eq. (1) of the main paper, m1=m2=mm_1=m_2=m).

For every t>0t>0, Pr⁡[ ∣MMD^−MMD(P,Q)∣>4κ/m+t ]≤2exp⁡(−t2m/(4κ2))\Pr\big[\,|\widehat{\mathrm{MMD}}-\mathrm{MMD}(P,Q)|>4\kappa/\sqrt m+t\,\big]\le2\exp(-t^2m/(4\kappa^2)).

If P=QP=Q then, for every α0∈(0,1)\alpha_0\in(0,1), Pr⁡[MMD^>tα0]≤α0\Pr\big[\widehat{\mathrm{MMD}}>t_{\alpha_0}\big]\le\alpha_0 with tα0=2κ2/m (1+2log⁡(1/α0))t_{\alpha_0}=\sqrt{2\kappa^2/m}\,\big(1+\sqrt{2\log(1/\alpha_0)}\big).

Per-pair power

Lemma 2 (Per-pair decision). *Fix α0,δ′∈(0,1)\alpha_0,\delta'\in(0,1) and decide “different” iff MMD^>tα0\widehat{\mathrm{MMD}}>t_{\alpha_0}. (i) If P=QP=Q the decision is wrong with probability at most α0\alpha_0. (ii) If MMD(P,Q)≥ε>0\mathrm{MMD}(P,Q)\ge\varepsilon>0 and

m  ≥  16κ2ε2(8+log⁡2α0δ′),m\;\ge\;\frac{16\kappa^2}{\varepsilon^2}\Big(8+\log\frac{2}{\alpha_0\delta'}\Big),

the decision is wrong with probability at most δ′\delta'.*

Proof. (i) is Fact in Appendix A.2. For (ii) put t=2κlog⁡(2/δ′)/mt=2\kappa\sqrt{\log(2/\delta')/m}, so that 2exp⁡(−t2m/(4κ2))=δ′2\exp(-t^2m/(4\kappa^2))=\delta'. By Fact in Appendix A.2, with probability at least 1−δ′1-\delta', MMD^≥ε−4κ/m−t\widehat{\mathrm{MMD}}\ge\varepsilon-4\kappa/\sqrt m-t, and the decision is correct as soon as ε−4κ/m−t>tα0\varepsilon-4\kappa/\sqrt m-t>t_{\alpha_0}, i.e.

m ε  >  κ[4+2+2log⁡(1/α0)+2log⁡(2/δ′)].\sqrt m\,\varepsilon\;>\;\kappa\Big[4+\sqrt2+2\sqrt{\log(1/\alpha_0)}+2\sqrt{\log(2/\delta')}\Big].

Using (a+b+c+d)2≤4(a2+b2+c2+d2)(a+b+c+d)^2\le4(a^2+b^2+c^2+d^2) the right-hand side squared is at most κ2[4(4+2)2+16log⁡(1/α0)+16log⁡(2/δ′)]≤κ2[128+16log⁡(2/(α0δ′))]\kappa^2\big[4(4+\sqrt2)^2+16\log(1/\alpha_0)+16\log(2/\delta')\big] \le\kappa^2\big[128+16\log(2/(\alpha_0\delta'))\big], and Eq. (3) guarantees mε2m\varepsilon^2 exceeds this bound. ◻

Proof of Theorem 1

Proof. Let P\mathcal{P} be the set of tested pairs, ∣P∣≤Khist2/2|\mathcal{P}|\le K_{\mathrm{hist}}^2/2. Run the decision of Lemma 2 on every pair with α0=δ′=δ/Khist2\alpha_0=\delta'=\delta/K_{\mathrm{hist}}^2. With ε=εMMD\varepsilon=\varepsilon_{\mathrm{MMD}}, Eq. (3) becomes m≥m⋆m\ge m_\star, where m⋆=(16κ2/εMMD2)(8+log⁡(2Khist4/δ2))m_\star=(16\kappa^2/\varepsilon_{\mathrm{MMD}}^2)(8+\log(2K_{\mathrm{hist}}^4/\delta^2)), provided every active bin supplies at least m⋆m_\star i.i.d. samples per side from PbP_b; the next paragraph shows when the per_traj sampler does. By a union bound the probability that some pair is decided wrongly is at most ∣P∣(α0+δ′)≤(Khist2/2)(2δ/Khist2)=δ|\mathcal{P}|(\alpha_0+\delta')\le(K_{\mathrm{hist}}^2/2)(2\delta/K_{\mathrm{hist}}^2)=\delta. On the complementary event every same-class pair (in QB∗\mathcal{Q}^*_B) is merged and no cross-class pair is merged, so the connected components of the union–find graph are exactly the classes of QB∗\mathcal{Q}^*_B, i.e. Q^B=QB∗\widehat{\mathcal{Q}}_B=\mathcal{Q}^*_B.

Trajectory budget (variant (T), per_traj). Condition on the design half, which fixes the edges, the bandwidth, the active bins B\mathcal{B}, their pooled laws PbP_b and masses πb\pi_b (the pooled mass of {z∈b}\{z\in b\} over (trajectory,time)(\text{trajectory},\text{time}); for equal-length trajectories this is the probability that a uniformly chosen time falls in bb). The test half contains Nt=N−⌊N/2⌋≥N/2N_{\rm t}=N-\lfloor N/2\rfloor\ge N/2 trajectories; for a pair, a fresh uniformly random half of size Ns=⌊Nt/2⌋≥N/4−1≥N/5N_s=\lfloor N_{\rm t}/2\rfloor\ge N/4-1\ge N/5 (N≥20N\ge20) supplies each side. Each trajectory independently draws one uniform time t⋆t^\star and contributes the window starting at t⋆t^\star to the bin of z(ot⋆)z(o_{t^\star}). Hence the number of side-jj samples in bin bb is Bin(Ns,πb)\mathrm{Bin}(N_s,\pi_b), and, given the counts, those samples are i.i.d. draws from PbP_b (the conditional law of the window given that the chosen time lies in bb, which is the pooled bin law of Definition 4), and are independent across sides (disjoint trajectories) and of the design half. No mixing assumption is used. The chain of reasoning in the first paragraph applies with m=min⁡(counts)m=\min(\text{counts}) on the event E={all counts≥m⋆}\mathcal E=\{\text{all counts}\ge m_\star\}, where m⋆m_\star is the right-hand side of Eq. (3) with ε=εMMD\varepsilon=\varepsilon_{\mathrm{MMD}} (the code subsamples both sides to the common size mm uniformly without replacement, which preserves the i.i.d. property). By the multiplicative Chernoff bound Pr⁡[Bin(n,π)≤nπ/2]≤e−nπ/8\Pr[\mathrm{Bin}(n,\pi)\le n\pi/2]\le e^{-n\pi/8}. If N≥10m⋆/πmin⁡N\ge10m_\star/\pi_{\min} then Nsπb/2≥Nπmin⁡/10≥m⋆N_s\pi_b/2\ge N\pi_{\min}/10\ge m_\star, so each count exceeds m⋆m_\star except with probability ≤e−Nsπmin⁡/8≤e−Nπmin⁡/40\le e^{-N_s\pi_{\min}/8}\le e^{-N\pi_{\min}/40}. Since εMMD≤2κ\varepsilon_{\mathrm{MMD}}\le2\kappa, m⋆≥4(8+log⁡(2Khist4/δ2))m_\star\ge4(8+\log(2K_{\mathrm{hist}}^4/\delta^2)), so Nπmin⁡/40≥m⋆/4≥8+log⁡(2Khist4/δ2)N\pi_{\min}/40\ge m_\star/4\ge8+\log(2K_{\mathrm{hist}}^4/\delta^2) and e−Nπmin⁡/40≤e−8δ2/(2Khist4)e^{-N\pi_{\min}/40}\le e^{-8}\delta^2/(2K_{\mathrm{hist}}^4). A union bound over at most Khist2/2K_{\mathrm{hist}}^2/2 pairs and 2 sides gives Pr⁡[Ec]≤Khist2e−Nπmin⁡/40≤e−8δ2/(2Khist2)≤δ\Pr[\mathcal E^c]\le K_{\mathrm{hist}}^2 e^{-N\pi_{\min}/40}\le e^{-8}\delta^2/(2K_{\mathrm{hist}}^2)\le\delta. Together with the pair-decision failure probability ≤δ\le\delta (which holds conditionally on the counts on E\mathcal E), Pr⁡[Q^B≠QB∗]≤2δ\Pr[\widehat{\mathcal{Q}}_B\ne\mathcal{Q}^*_B]\le2\delta.

Quantile edges. For ℓ=1\ell=1 the design half fits e^j=FNd−1(j/B)\hat e_j=F_{N_d}^{-1}(j/B) with Nd=⌊N/2⌋N_d=\lfloor N/2\rfloor. By the DKW argument of Section B (applied to the i.i.d. blocks GiG_i) sup⁡x∣FNd−F∣≤t:=log⁡(2/δ)/(2Nd)\sup_x|F_{N_d}-F|\le t:=\sqrt{\log(2/\delta)/(2N_d)} with probability ≥1−δ\ge1-\delta, and FF atomless gives ∣FNd(e^j)−j/B∣≤1/(NdT)|F_{N_d}(\hat e_j)-j/B|\le1/(N_dT), so πb≥1/B−2t−2/(NdT)\pi_b\ge1/B-2t-2/(N_dT). If Nd≥32B2log⁡(2/δ)N_d\ge32B^2\log(2/\delta), then t≤1/(8B)t\le1/(8B) and 2/(NdT)≤1/(4B)2/(N_dT)\le1/(4B), hence πmin⁡≥1/(2B)\pi_{\min}\ge1/(2B), which holds when N≥65B2log⁡(2/δ)N\ge65B^2\log(2/\delta). Substituting πmin⁡≥1/(2B)\pi_{\min}\ge1/(2B) in Eq. (2) and Khist≤BK_{\mathrm{hist}}\le B gives N=O(Blog⁡(B/δ)/εMMD2+B2log⁡(1/δ))N=O(B\log(B/\delta)/\varepsilon_{\mathrm{MMD}}^2+B^2\log(1/\delta)) with total failure probability ≤3δ\le3\delta. The B2B^2 term comes from this crude edge-stability argument and is not claimed to be tight. If the implementation caps each side at mmax⁡m_{\max} samples (the per_traj variant used in the experiments does not), the theorem applies with m=min⁡(m,mmax⁡)m=\min(m,m_{\max}), i.e. it requires mmax⁡≥m⋆m_{\max}\ge m_\star. ◻

Remark 5 (Why the constants matter). With κ=1\kappa=1, Khist=8K_{\mathrm{hist}}=8, δ=0.05\delta=0.05 the per-pair requirement is m≥(16/εMMD2)(8+log⁡(2⋅84/0.052))≈400/εMMD2m\ge(16/\varepsilon_{\mathrm{MMD}}^2)(8+\log(2\cdot8^4/0.05^2))\approx 400/\varepsilon_{\mathrm{MMD}}^2. At the sample cap mmax⁡=300m_{\max}=300 used in the experiments this guarantees detection only for εMMD≳1.15\varepsilon_{\mathrm{MMD}}\gtrsim1.15; the permutation test is far less conservative than the analytic threshold in practice, but the calculation shows that distinctions with small MMD gaps are not resolved at mmax⁡=300m_{\max}=300, which is the mechanism behind Remark 4 of the main paper. This calculation applies to procedure (P) and to any sampler that caps each side at mmax⁡m_{\max}; the per_traj variant of Theorem 1 is uncapped, and its sample budget is the one derived in the proof above.

Proof of Proposition 1 (corrected)

Setting: ℓ=1\ell=1; a history is keyed by the bin of the scalar z=z(ot)z=z(o_t); the POMDP has finite latent index nn with class map cc; FF is the pooled CDF of zz (over trajectories and time steps) and FNF_N its empirical counterpart. Empirical edges are e^j=FN−1(j/B)\hat e_j=F_N^{-1}(j/B) and population edges ej=F−1(j/B)e_j=F^{-1}(j/B), j=1,…,B−1j=1,\dots,B-1.

Notation.

FF is atomless; population bin jj is (ej−1,ej](e_{j-1},e_j] with F(ej)=j/BF(e_j)=j/B (so each has mass 1/B1/B). A bin is pure if zz falls in a single IiI_i with probability one on it, and straddling otherwise.

Glivenko–Cantelli.

The NN trajectories are i.i.d. blocks of TT observations, so FN(x)=N−1∑iGi(x)F_N(x)=N^{-1}\sum_i G_i(x) with Gi(x)=T−1∑t1{zt(i)≤x}G_i(x)=T^{-1}\sum_t\mathbf 1\{z^{(i)}_t\le x\} i.i.d. in ii; the class {x↦Gi(x)}\{x\mapsto G_i(x)\} is monotone and bounded, so sup⁡x∣FN(x)−F(x)∣→0\sup_x|F_N(x)-F(x)|\to0 almost surely, and (DKW applied to the i.i.d. GiG_i) sup⁡x∣FN(x)−F(x)∣=OP(N−1/2)\sup_x|F_N(x)-F(x)|=O_P(N^{-1/2}) for fixed TT.

Part (i): under (a) only.

Let Gi=(sup⁡Ii,inf⁡Ii+1)G_i=(\sup I_i,\inf I_{i+1}), i<ni<n, be the gaps. A bin intersecting two classes must contain a whole gap in its interior, and a gap lies in the interior of at most one bin, so there are at most n−1n-1 straddling bins. Pure bins of the same class share the law PiP_i. Hence the number of distinct bin laws is at most nn (pure laws) + (n−1)+\,(n-1) (straddling bins), and trivially at most BB: ∣QB∗∣≤min⁡{B,2n−1}|\mathcal{Q}^*_B|\le\min\{B,2n-1\}. For the lower bound let pi≥2/Bp_i\ge2/B. Class ii occupies the interval of FF-mass [qi−1,qi][q_{i-1},q_i] of length pi≥2/Bp_i\ge2/B; the bins are the cells [(j−1)/B,j/B][(j{-}1)/B,j/B] in FF-mass, and any interval of length at least 2/B2/B contains a complete cell, which is then a pure bin of class ii. So nn distinct pure laws exist (Pi≠Pi′P_i\neq P_{i'} by assumption) and ∣QB∗∣≥n|\mathcal{Q}^*_B|\ge n. The condition pi≥2/Bp_i\ge2/B forces B≥2nB\ge2n; if the classes are only known to satisfy pi≥1/Bp_i\ge1/B (so B≥nB\ge n), a complete cell is guaranteed only when the class boundaries are cell-aligned, i.e. under (b); without either condition a class of mass <1/B<1/B can be spread over two straddling bins and the lower bound nn can fail. For B<nB<n the bound n≤∣QB∗∣n\le|\mathcal{Q}^*_B| is impossible since ∣QB∗∣≤B|\mathcal{Q}^*_B|\le B; this is the counterexample to the statement of the earlier version (it assumed n≤∣QB∗∣n\le|\mathcal{Q}^*_B| with no condition on BB).

Part (ii): under (a) and (b).

By (b) the level qi=F(sup⁡Ii)=ji/Bq_i=F(\sup I_i)=j_i/B for an integer jij_i, and FF is constant on Gi‾\overline{G_i} at level qiq_i, so the population edge eji=F−1(ji/B)e_{j_i}=F^{-1}(j_i/B) lies in Gi‾\overline{G_i}. Hence every population bin is contained in one IiI_i: all bins are pure and Pb=Pc(b)P_b=P_{c(b)}. The class masses are pi=qi−qi−1p_i=q_i-q_{i-1}, positive multiples of 1/B1/B, so pi≥1/Bp_i\ge1/B (and n/B≤∑ipi=1n/B\le\sum_ip_i=1 gives B≥nB\ge n); every class owns at least one bin and QB∗\mathcal{Q}^*_B is the class partition with ∣QB∗∣=n|\mathcal{Q}^*_B|=n.

Part (iii): empirical bins, what is and is not proved.

The empirical edges are e^j=FN−1(j/B)\hat e_j=F_N^{-1}(j/B). For the boundary ii, FN(sup⁡Ii)−qi=OP(N−1/2)F_N(\sup I_i)-q_i=O_P(N^{-1/2}). The empirical edge e^ji\hat e_{j_i} falls in the gap only if FN(sup⁡Ii)F_N(\sup I_i) equals ji/Bj_i/B exactly; otherwise it falls inside IiI_i or Ii+1I_{i+1} and the number of observations of the neighbouring class on the wrong side is OP(TN)O_P(T\sqrt N). Each bin holds NT/BNT/B observations, so the foreign-class fraction of every empirical bin is OP(B/N)O_P(B/\sqrt N): this tends to zero but is, in general, non-zero at every finite NN (equality FN(sup⁡Ii)=ji/BF_N(\sup I_i)=j_i/B is a lattice event whose probability does not approach one). We therefore do not claim exact purity of empirical bins, and the earlier statement that “with probability →1\to1 every non-empty bin is pure” is not established by this argument and is withdrawn. By the mixture identity MMD(λP+(1−λ)P′,P)=(1−λ)MMD(P,P′)\mathrm{MMD}(\lambda P+(1-\lambda)P',P)=(1-\lambda)\mathrm{MMD}(P,P') the MMD between an empirical bin’s law and its class law is OP(B/N)O_P(B/\sqrt N).

Run variant (T) with i.i.d. per-bin sample size mN=Θ(N)m_N=\Theta(N) and level αN→0\alpha_N\to0, log⁡(1/αN)/mN→0\log(1/\alpha_N)/m_N\to0. The null threshold is tαN=2κ2/mN (1+2log⁡(1/αN))t_{\alpha_N}=\sqrt{2\kappa^2/m_N}\,(1+\sqrt{2\log(1/\alpha_N)}), so mN tαN→∞\sqrt{m_N}\,t_{\alpha_N}\to\infty while the contamination contributes mN⋅OP(B/N)=OP(1)\sqrt{m_N}\cdot O_P(B/\sqrt N)=O_P(1). Same-class pairs have MMD^≤OP(mN−1/2)+OP(B/N)<tαN\widehat{\mathrm{MMD}}\le O_P(m_N^{-1/2})+O_P(B/\sqrt N)<t_{\alpha_N} eventually and are merged; cross-class pairs have a gap ε−OP(B/N)→ε>0\varepsilon-O_P(B/\sqrt N)\to\varepsilon>0 while tαN→0t_{\alpha_N}\to0, so by Fact in Appendix A.2 they are split with probability →1\to1. A union bound over the finitely many pairs gives Pr⁡[Q^B=QB∗]→1\Pr[\widehat{\mathcal{Q}}_B=\mathcal{Q}^*_B]\to1 (as a partition of bin indices). This is the precise sense of the recovery claim: vanishing contamination below the detection threshold, not purity.

Under (a) alone, estimation.

If class masses satisfy pi≥2/Bp_i\ge2/B, the lower bound of part (i) holds, the straddling bins’ mixture weights are NN-independent, and the recovery argument above applies verbatim to QB∗\mathcal{Q}^*_B with ∣QB∗∣∈[n,2n−1]|\mathcal{Q}^*_B|\in[n,2n-1].

Without (a): unbounded noise.

If the class-conditional laws of zz have overlapping supports (e.g. Gaussian noise), FF is strictly increasing, every bin contains observations of at least two classes with fixed positive proportions, and the bin laws are proper mixtures whose weights do not depend on NN. The bound Pr⁡[cross]≤2e−Δ2/(8σ2)\Pr[\text{cross}]\le2e^{-\Delta^2/(8\sigma^2)} for sub-Gaussian noise with class-mean gap Δ\Delta bounds the proportion of foreign observations in a boundary bin by ≈2Be−Δ2/(8σ2)\approx2Be^{-\Delta^2/(8\sigma^2)}; this proportion is constant in NN, so a consistent test eventually splits the boundary bin (an earlier version of this proposition claimed the proportion vanishes by Borel–Cantelli, which is false). Generically all bin laws are then distinct and ∣QB∗∣=Khist|\mathcal{Q}^*_B|=K_{\mathrm{hist}}; the finite-sample estimate is a coarsening at the test’s resolution (Remark 4 of the main paper), which is the regime of all Gaussian-noise experiments in the paper.

The environments of the paper.

K-cycle: z=o=s/K+ξz=o=s/K+\xi, classes of equal mass 1/K1/K; with B=KB=K the population edges are F−1(j/K)F^{-1}(j/K), which by the symmetry of the equal-weight mixture lie at the midpoints (j−12)/K(j-\tfrac12)/K up to exponentially small tail terms, so (b) holds approximately while (a) fails (ξ\xi Gaussian). Gaussian-mixture random walk: uniform stationary law, B=NsB=N_s, same situation. Tiger: symmetric marginal, so the median edge is at 00 and any even BB is aligned with the sign boundary. Chain and Dec-Tiger: B=4B=4 aligned as above.

Experimental Details

Common defaults (ContinuousEstimatorConfig): history length ℓ=1\ell=1, window k=2k=2, mmin⁡=20m_{\min}=20, mmax⁡=300m_{\max}=300 continuation vectors per side (deterministic per-pair subsampling), RBF kernel with the median heuristic 2σ2=median{∥x−y∥2}2\sigma^2=\mathrm{median}\{\|x-y\|^2\} over at most 500 pooled points, permutation pp-value (1+#{≥})/(R+1)(1+\#\{\ge\})/(R+1), Benjamini–Hochberg at level α\alpha over all pairs. Deviations are listed per experiment.

Tiger (envs/tiger_continuous.py)

States {Left,Right}\{\text{Left},\text{Right}\}, uniform initial state; actions {listen,open-left,open-right}\{\text{listen},\text{open-left},\text{open-right}\}; an open action re-draws the state uniformly. Observation o=sgn⋅1+N(0,σ2)o=\mathrm{sgn}\cdot1+\mathcal N(0,\sigma^2) with sgn=−1\mathrm{sgn}=-1 (Left), +1+1 (Right), σ=0.5\sigma=0.5. Uniform-random policy, T=20T=20. Latent index n=2n=2. Estimator: B=8B=8 (package default), α=0.01\alpha=0.01, R=199R=199. Main run: N=3000N=3000, 10 seeds (layer1_ground_truth/results/tiger_continuous.csv); NN-sensitivity: N∈{1000,3000,10000}N\in\{1000,3000,10000\}, 5 seeds (tiger_N_sensitivity.csv); ablation: N∈{500,1000,2000,5000}N\in\{500,1000,2000,5000\}, 3 seeds, B=2B=2, α=0.05\alpha=0.05, R=99R=99 (baselines/results/ablation_sample_efficiency.csv).

K-cycle (envs/kcycle_continuous.py)

States {0,…,K−1}\{0,\dots,K-1\}, deterministic increment mod KK, uniform initial state; observation o=s/K+N(0,0.12)o=s/K+\mathcal N(0,0.1^2) (equally spaced means; the sin⁡(2πs/K)\sin(2\pi s/K) variant used in an earlier draft is not injective for even KK and is not used); single null action; T=50T=50. Latent index n=Kn=K. Estimator: B=KB=K, α=0.01\alpha=0.01, R=199R=199, N=3000N=3000 (50005000 for K=16K=16), 10 seeds (kcycle_continuous.csv). Bin sensitivity: B=2KB=2K, 5 seeds (kcycle_bins_sensitivity.csv).

Gaussian-mixture random walk (envs/gaussian_mixture_pomdp.py)

Ns∈{3,4,5,6}N_s\in\{3,4,5,6\} states, s′=clip(s+δ,0,Ns−1)s'=\mathrm{clip}(s+\delta,0,N_s-1), δ∼Unif{−1,0,1}\delta\sim\mathrm{Unif}\{-1,0,1\}; o=s+N(0,0.152)o=s+\mathcal N(0,0.15^2); T=50T=50, N=2000N=2000; α=0.05\alpha=0.05, R=99R=99; B=NsB=N_s (manual) and BB auto-selected by silhouette over {2,…,32}\{2,\dots,32\} (Algorithm 2 below); 5 seeds (gaussian_mixture.csv).

PO-HalfCheetah and PO-Ant (layer2_mujoco/)

HalfCheetah-v4: 17-dim observation (8 joint positions, 9 joint velocities); the wrapper zeroes indices 00–88, leaving 8 velocity coordinates. Ant-v4: 27-dim observation; indices 1313–2626 (14 velocities) are kept. Zero-torque policy (and, for HalfCheetah, torques ∝sin⁡(ωt+ϕi)\propto\sin(\omega t+\phi_i) per joint); N=5000N=5000, T=50T=50, B=8B=8, α=0.05\alpha=0.05, R=99R=99, 5 seeds (halfcheetah_continuous.csv, halfcheetah_sinusoidal.csv, ant_continuous.csv); auto-bin: 3 seeds (halfcheetah_autobin.csv).

Class statistics and value prediction are in halfcheetah_class_returns.csv, halfcheetah_value_prediction.csv and halfcheetah_sinusoidal_value.csv. The binning scalar is z(o)=∥o∥2z(o)=\|o\|_2 (velocity norm). No discretised G-test baseline is reported: no result file exists for it.

Dec-Tiger and chain Dec-POMDPs (layer3_rcrit/)

Both agents run a listen-only policy so the latent state is constant within an episode; N=1000N=1000, T=20T=20, B=4B=4, mmin⁡=10m_{\min}=10, α=0.05\alpha=0.05, R=99R=99. Dec-Tiger: oi=sgn+N(0,σi2)o^i=\mathrm{sgn}+\mathcal N(0,\sigma_i^2); chain: 4-state random walk (uniform stationary law), oi=s/4+N(0,σi2)o^i=s/4+\mathcal N(0,\sigma_i^2). Each agent’s quotient is fitted independently; each step is labelled by the class of its binned key; R^crit=H(Q^A,Q^B)−H(Q^B)\hat R_{\rm crit}=H(\hat Q_A,\hat Q_B)-H(\hat Q_B) (plug-in entropies, clamped at 00).

Analytical H(QA∣QB)H(Q_A\mid Q_B).

Dec-Tiger: Qi=sign(oi)Q_i=\mathrm{sign}(o^i) (the B=4B=4 quantile edges of a symmetric marginal put the middle edge at 00), so pi=Pr⁡[Qi≠s]=Φ(−1/σi)p_i=\Pr[Q_i\ne s]=\Phi(-1/\sigma_i). With Pr⁡[s=±1]=12\Pr[s=\pm1]=\tfrac12,

Pr⁡(QA=QB=s)=12(1−pA)(1−pB)+12pApB(each sign),Pr⁡(QA≠QB)=12(1−pA)pB+12pA(1−pB)(each pattern),\begin{aligned} \Pr(Q_A=Q_B=s) &=\tfrac12(1-p_A)(1-p_B)+\tfrac12p_Ap_B \quad(\text{each sign}),\\ \Pr(Q_A\ne Q_B) &=\tfrac12(1-p_A)p_B+\tfrac12p_A(1-p_B)\quad(\text{each pattern}), \end{aligned}

and H(QA∣QB)=H(QA,QB)−H(QB)H(Q_A\mid Q_B)=H(Q_A,Q_B)-H(Q_B). Symmetric σ=0.5\sigma=0.5: p=Φ(−2)=0.0228p=\Phi(-2)=0.0228, H(QA∣QB)=0.2624H(Q_A\mid Q_B)=0.2624 bits. Asymmetric (σA,σB)=(0.1,1.0)(\sigma_A,\sigma_B)=(0.1,1.0): pA=Φ(−10)≈0p_A=\Phi(-10)\approx0, pB=Φ(−1)=0.1587p_B=\Phi(-1)=0.1587, H(QA∣QB)=Hb(0.1587)=0.6311H(Q_A\mid Q_B)=H_b(0.1587)=0.6311 bits; ratio 2.412.41. Sweep values (σA=0.1\sigma_A=0.1): σB=0.1,0.2,0.5,1.0,2.0↦0.0000,0.0000,0.1566,0.6311,0.8915\sigma_B=0.1,0.2,0.5,1.0,2.0\mapsto0.0000,0.0000,0.1566,0.6311,0.8915. (An earlier draft wrote these formulas with a threshold at 0.50.5 and Φ(−0.5/σ)\Phi(-0.5/\sigma); that does not match the environment or the numbers.) Chain: agent ii classifies ss by the nearest mean, i.e. intervals with edges (2s+1)/8(2s+1)/8; Pr⁡(Qi=j∣s)=Φ((hij−s/4)/σi)−Φ((loj−s/4)/σi)\Pr(Q_i=j\mid s)=\Phi((\text{hi}_j-s/4)/\sigma_i)-\Phi((\text{lo}_j-s/4)/\sigma_i); joint over uniform ss; values σB=0.1,0.2,0.5,1.0↦1.0584,1.4462,1.8576,1.9642\sigma_B=0.1,0.2,0.5,1.0\mapsto1.0584,1.4462,1.8576,1.9642 bits.

Baselines (experiments/revision/baselines_lib.py)

All baselines see the same trajectories as the quotient estimator, are scored by the adjusted Rand index against the latent state, and none uses nn (except the “B=nB=n” reference rows). They are our re-implementations of the cited estimators in the same one-observation-past setting, not the authors’ code.

  • W1W_1 (multivariate). Bin-conditional continuation vectors (dc=3d_c=3: ot+1,at+1,ot+2o_{t+1},a_{t+1},o_{t+2}, raw units), at most 300 per bin; exact Wasserstein-1 between equal-size subsamples via optimal assignment under the Euclidean cost. Bins are merged if W1<εW_1<\varepsilon with ε∈{0.1,0.2,0.5,1.0}\varepsilon\in\{0.1,0.2,0.5,1.0\} (single linkage, as for the quotient estimator), or parameter-free by average-linkage clustering of the W1W_1 matrix with the number of clusters chosen by silhouette.

  • Ferns bisimulation metric. The finite-MDP metric of Ferns et al. (2004) (the continuous-space metric of Ferns et al. (2011) cannot be computed from samples without an abstraction), on the empirical chain over the BB quantile bins: dn+1(s,t)=max⁡a[(1−c)∣r(s,a)−r(t,a)∣+c W1(P(⋅∣s,a),P(⋅∣t,a);dn)]d_{n+1}(s,t)=\max_a[(1-c)|r(s,a)-r(t,a)|+c\,W_1(P(\cdot|s,a),P(\cdot|t,a);d_n)], c=0.9c=0.9, exact LP for W1W_1, fixed point by iteration (tolerance 10−610^{-6}, at most 40 sweeps), rewards rescaled to [0,1][0,1]. Bins are clustered by average linkage with silhouette selection of the number of clusters.

  • DBC. The objective of Zhang et al. (2021) without the RL learner: MLP encoder (1→64→64→81\to64\to64\to8), Gaussian latent dynamics model P^(z′∣z,a)\hat P(z'|z,a) trained by negative log-likelihood on stop-gradient encoded next observations, and the loss (∥zi−zj∥1−∣ri−rj∣−γW2(P^(⋅∣zˉi,ai),P^(⋅∣zˉj,aj)))2(\|z_i-z_j\|_1-|r_i-r_j|-\gamma W_2(\hat P(\cdot|\bar z_i,a_i),\hat P(\cdot|\bar z_j,a_j)))^2 on random pairs within a batch of 256, γ=0.99\gamma=0.99, 3000 Adam steps. Classes: kk-means on the embedding of every step with k∈[2,12]k\in[2,12] by silhouette.

  • Reward for DBC and the Ferns metric. Bisimulation is reward-defined. Tiger uses its native reward; the K-cycle and GaussMix environments are reward-free, so we use the next observation ot+1o_{t+1} as an emission reward. Both are rescaled to [0,1][0,1] (DBC, Ferns) — this is our choice and affects those baselines.

  • Causal-state learning. Following Zhang et al. (2019): a GRU (hidden size 32) reads (o≤t,a<t)(o_{\le t},a_{<t}), a head predicts ot+1o_{t+1} (and the reward on Tiger) from (ht,at)(h_t,a_t) by mean squared error (30 epochs, Adam, batch 128 trajectories); the hidden states are discretised by kk-means with k∈[2,12]k\in[2,12] by silhouette (one of the two discretisers described in their Sec. 4.2). It conditions on the full history, unlike the other methods.

  • RKHS ε\varepsilon-machine. Following Brodu and Crutchfield (2022), past == present observation, future == the k=2k=2 continuation vector, 1500 randomly drawn (x,y)(x,y) pairs, Gaussian kernels exp⁡(−∥⋅∥2/ξ2)\exp(-\|\cdot\|^2/\xi^2) with ξ=\xi= median pairwise distance; weights Ω=(GX+εI)−1GX\Omega=(G^X+\varepsilon I)^{-1}G^X with ε∈{10−4,…,1}\varepsilon\in\{10^{-4},\dots,1\} by 3-fold cross-validation of the held-out embedding error; GS=Ω⊤GYΩG^S=\Omega^\top G^Y\Omega; diffusion-map coordinates (density-normalised, row-stochastic, spectral-gap truncation); clustering by DBSCAN with εDB=0.1×\varepsilon_{\rm DB}=0.1\times the range of the leading coordinate (their DBSCAN with threshold 0.10.1 is on unnormalised coordinates; our rescaling is a choice) or by kk-means with silhouette.

  • Legacy baselines. The first-coordinate-projection Wasserstein and the custom Wasserstein-matching DBC objective of the previous version (bisim_comparison.csv, dbc_comparison.csv) are superseded and no longer used; the G-test rows come from ablation_sample_efficiency.csv.

Revision experiments (variant (T), partition accuracy)

Data: the same generators and settings as Appendix C (Tiger N=3000N{=}3000, T=20T{=}20, α=0.01\alpha{=}0.01, R=199R{=}199; K-cycle N=3000N{=}3000, T=50T{=}50, α=0.01\alpha{=}0.01, R=199R{=}199; GaussMix N=2000N{=}2000, T=50T{=}50, α=0.05\alpha{=}0.05, R=99R{=}99), random policy, with the latent state recorded for scoring (the action space is seeded here; the original runs sampled actions from an unseeded action-space generator, so individual draws differ from the earlier result files). Seeds 00–44. Procedure (P): the package estimator unchanged. Variant (T) and (Pfix^{\rm fix}): continuous_quotient/variant_t.py, δ=0.05\delta=0.05 for (T), α\alpha and RR as for (P) for (Pfix^{\rm fix}), design fraction 0.50.5, minimum 2020 samples per side. Sampler: the (T-pt) and Pfix^{\rm fix}-pt rows use per_traj (the sampler Theorem 1 covers); the (T-pb) rows and the old Pfix^{\rm fix} comparison in partition_accuracy.csv use per_bin (not covered); Dec-Tiger uses per_traj. ARI is computed over all steps with a full 2-step continuation whose bin is active. Result files: partition_accuracy.csv (merged from partition_accuracy_part1.csv, _part2.csv, _part3.csv by summarize.py), partition_baselines.csv, tiger_T_scaling.csv, dec_tiger_variant_t.csv, and, added with the per_traj analysis of this version, partition_accuracy_pertraj.csv, partition_accuracy_2n.csv, T_traj_scaling.csv, tiger_T_scaling_pertraj.csv and dec_tiger_pfix_N20000_seeds3_9.csv.

Additional Results

Auto bin selection

Trajectories, Bmin⁡=2B_{\min}=2, Bmax⁡=32B_{\max}=32, subsample size 2000. kk-means with BB clusters on the subsampled binning scalars z(o)z(o); silhouette score sBs_B. arg⁡max⁡BsB\arg\max_Bs_B.

Silhouette measures cluster quality in observation space and is a heuristic proxy for the number of latent classes; it under-estimates BB when classes share observation marginals. Results (this revision, partition_accuracy.csv): silhouette selects B=2B=2 on Tiger, B=KB=K for K-cycle K∈{2,3}K\in\{2,3\} but B=2B=2 for K∈{4,5,8}K\in\{4,5,8\} (5 seeds each), and B=NsB=N_s on GaussMix. (The previous version’s claim of B=KB=K on K-cycle had no result file.) Earlier GaussMix results—B=NsB=N_s on all 20 runs, and the auto-BB estimate equals the manual one on every run (gaussian_mixture.csv); PO-HalfCheetah (passive)—B=3B=3 on all 3 seeds with n^=3,3,2\hat n=3,3,2 (halfcheetah_autobin.csv).

K-cycle per-seed results and runtime

KKSeedsn^\hat nRuntime (s)Correct
20–922.9–3.610/10
30–933.0–4.410/10
40–944.0–5.110/10
50–955.2–6.110/10
80–988.0–11.710/10
160–91630.4–37.310/10

K-cycle at B=KB=K (kcycle_continuous.csv): all 60 runs return n^=K\hat n=K. Wall-clock per run on one CPU core.

KKBBNNn^\hat n per seed
2430002, 2, 2, 2, 2
3630003, 4, 3, 4, 4
4830008, 8, 8, 8, 8
510300010, 10, 10, 10, 10
816300016, 16, 16, 16, 16
1632500012, 15, 10, 8, 15

K-cycle at B=2KB=2K, 5 seeds (kcycle_bins_sensitivity.csv). Over-provisioned bins are split whenever the half-class bins’ posteriors differ detectably (3≤K≤83\le K\le8); at K=16K=16 the 32 bins are close enough that single-linkage chaining merges neighbours and the estimate falls below KK.

Tiger vs. NN

B=8B=8, α=0.01\alpha=0.01, R=199R=199, 5 seeds (tiger_N_sensitivity.csv): n^=2\hat n=2 on every seed at N=1000N=1000, 30003000 and 1000010000. Ablation runs (B=2B=2, α=0.05\alpha=0.05, R=99R=99): n^=2\hat n=2 on 3/3 seeds at every N∈{500,1000,2000,5000}N\in\{500,1000,2000,5000\}.

Dec-Tiger per-seed results

(σA,σB)=(0.5,0.5)(\sigma_A,\sigma_B)=(0.5,0.5)(σA,σB)=(0.1,1.0)(\sigma_A,\sigma_B)=(0.1,1.0)
Seedn^A\hat n_An^B\hat n_BR^crit\hat R_{\rm crit}rel. err.n^A\hat n_An^B\hat n_BR^crit\hat R_{\rm crit}rel. err.
0230.26621.5%240.56989.7%
1320.7651191.6%240.556711.8%
2220.26711.8%240.554412.2%
3230.26330.4%240.554512.1%
4220.26250.0%240.565410.4%
5330.7690193.1%341.077470.7%
6320.7607189.9%240.57009.7%
7330.7704193.6%240.562210.9%
8330.7624190.5%240.548913.0%
9220.26080.6%240.553012.4%
mean±\pmstd (all)0.515±0.2640.515\pm0.26496.3%0.611±0.1640.611\pm0.16417.3%
median (all)0.51495.8%0.55912.0%
mean±\pmstd (n^A=2\hat n_A=2)0.264±0.0030.264\pm0.0030.9%0.559±0.0080.559\pm0.00811.4%

Dec-Tiger, α=0.05\alpha=0.05, R=99R=99, all seeds (dec_tiger_asymmetric.csv; seeds 0–4 of the symmetric block are also in dec_tiger_rcrit.csv). Analytical: 0.26240.2624 (symmetric), 0.63110.6311 (asymmetric).

Over-splitting of agent A (n^A=3\hat n_A=3) triples the estimate; over-splitting of agent B is harmless. The mechanism is the resolution effect: with σ=0.5\sigma=0.5 the posteriors of the two same-side bins differ by up to ≈0.05\approx0.05 in posterior weight (the B=4B{=}4 quantile bins of a ±1\pm1, σ=0.5\sigma{=}0.5 marginal give Pr⁡(Right∣b)≈0.0001\Pr(\text{Right}\mid b)\approx0.0001 and 0.0450.045 for the two left-side bins), at the edge of what R=99R=99 permutations and mmax⁡=300m_{\max}=300 resolve, and BH with only six pp-values rejects all of them once all six reach the floor 1/(R+1)=0.011/(R+1)=0.01. Table 14 reports the sensitivity run at α=0.01\alpha=0.01 with R=999R=999 (at R=99R=99 the floor equals α\alpha and every quotient collapses to one class).

Conditionn^A\hat n_A per seedn^B\hat n_B per seedR^crit\hat R_{\rm crit} mean±\pmstdmedian rel. err.
(0.5,0.5)(0.5,0.5)2 (9 seeds), 3 (seed 6)2 (8), 3 (2)0.319±0.1560.319\pm0.156 (all), 0.270±0.0070.270\pm0.007 (n^A=2\hat n_A{=}2)3.2%
(0.1,1.0)(0.1,1.0)2 (10)4 (10)0.561±0.0100.561\pm0.01011.4%

Dec-Tiger, α=0.01\alpha=0.01, R=999R=999, 10 seeds (dec_tiger_sym_alpha001_R999.csv, dec_tiger_asym_alpha001_R999.csv).

Noise sweep per level

EnvσB\sigma_BanalyticalR^crit\hat R_{\rm crit} mean±\pmstdmean abs. err. (bits)n^A\hat n_A / n^B\hat n_B
Dec-Tiger0.10.00000.081±0.0550.081\pm0.0550.0812 / 2
Dec-Tiger0.20.00000.081±0.0550.081\pm0.0550.0812 / 2
Dec-Tiger0.50.15660.180±0.0160.180\pm0.0160.024 (median rel. 12.6%)2 / {2,3}
Dec-Tiger1.00.63110.560±0.0070.560\pm0.0070.071 (median rel. 11.8%)2 / 4
Dec-Tiger2.00.89150.878±0.0210.878\pm0.0210.022 (median rel. 2.5%)2 / {2,3,4}
Chain0.11.05841.062±0.0081.062\pm0.0080.007 (0.67%)4 / 4
Chain0.21.44621.450±0.0071.450\pm0.0070.005 (0.33%)4 / 4
Chain0.51.85761.879±0.0261.879\pm0.0260.026 (1.40%)4 / {2,3,4}
Chain1.01.96422.000±0.0002.000\pm0.0000.036 (1.82%)4 / 1

Sweep, σA=0.1\sigma_A=0.1, 5 seeds per level (rcrit_sweep.csv, chain_rcrit.csv). Relative errors are undefined when the analytical value is 00; absolute errors are given.

Neural encoder

The code ships a GRU/InfoNCE history encoder (neural_encoder.py) trained on the MMD partition; no results for it are reported in this paper because no result files were produced.

PO-HalfCheetah class statistics and value prediction

Tables 16–18 follow. Their R2R^2 values are in-sample fits on all time steps; the held-out, trajectory-level analysis against a nonlinear speed baseline is in Table 9 of the main paper (halfcheetah_groupsplit_value.csv, halfcheetah_groupsplit_value.py) and supersedes the interpretation “classes carry multi-step information beyond speed”, which these in-sample linear comparisons do not support.

RankClassvˉℓ2\bar{v}_{\ell_2}σv\sigma_{v}Gˉ\bar{G}σG\sigma_G
070.0050.001-0.000.00
160.0090.0010.000.00
250.0160.0040.000.00
340.0300.0050.000.01
430.0580.0140.020.03
500.1590.043-0.030.19
620.5440.2510.070.27
712.3991.306-0.140.43

Per-class statistics for the n=8n{=}8 quotient partition on PO-HalfCheetah. Classes are sorted by mean velocity ℓ2\ell_2 norm. Gˉ\bar{G} = mean discounted return (γ=0.99\gamma{=}0.99) from each timestep assigned to that class. Kruskal-Wallis H=4897.3H=4897.3, p≈10−1055p \approx 10^{-1055} (computed over time steps, which are dependent within trajectories; the pp-value is not evidence of a trajectory-level effect).

ModelFeaturesR2R^2MAE
Null (constant mean)00.0000.087
Quotient classes (n=3n=3, η2=0.010\eta^2=0.010)30.0100.083
Velocity ℓ2\ell_2 (oracle)10.0660.084

Class-conditioned value prediction on PO-HalfCheetah (zero-action policy, γ=0.99\gamma=0.99, n=51,000n=51,000 timesteps). The auto-selected B=3B=3 quotient partition explains 1.0%1.0\% of return variance (linear R2R^2) and η2=0.010\eta^2=0.010 of total variance (ANOVA effect size). The Kruskal-Wallis pp-value (4.92×10−1174.92\times10^{-117}) treats time steps as independent and is not evidence of a trajectory-level effect. All R2R^2 values here are in-sample; see Table 9 for the held-out, trajectory-level comparison against a nonlinear speed baseline, which shows the classes carry no information beyond speed.

ModelR2R^2MAE
Null (constant mean)0.0001.551
Quotient classes (auto-selected BB)0.1631.426
Velocity ℓ2\ell_2 (oracle)0.0821.492

Class-conditioned value prediction on PO-HalfCheetah under the sinusoidal locomotion policy (γ=0.99\gamma=0.99, 101,000101{,}000 time steps; halfcheetah_sinusoidal_value.csv).

Artifacts, result files and corrections

Code, scripts and result files are in the public repository https://github.com/npow/quotient-learning-papers, directory cql/; the artifacts cited here are at tag v1, which points to commit 83f9f42d8533c62fd05fcef2192559e0f80be3d9 (tags can be retargeted; the hash is the immutable reference). Result files and scripts added in this revision (marked “this version” below: partition_accuracy_pertraj.csv, partition_accuracy_2n.csv, T_traj_scaling.csv, tiger_T_scaling_pertraj.csv, dec_tiger_pfix_N20000_seeds3_9.csv and their scripts) are not in v1; they are in commit 2c168297b5cd6fcc35e9a0a6a901411d2d1fb404 of the same repository. All paths below are relative to cql/.

Result files (every number in the paper comes from one of these).

  • Layer 1 (experiments/layer1_ground_truth/results/): tiger_continuous.csv, kcycle_continuous.csv, gaussian_mixture.csv, kcycle_bins_sensitivity.csv, tiger_N_sensitivity.csv.

  • Layer 2 (experiments/layer2_mujoco/results/): halfcheetah_continuous.csv, halfcheetah_sinusoidal.csv, ant_continuous.csv, halfcheetah_autobin.csv, halfcheetah_class_returns.csv, halfcheetah_value_prediction.csv, halfcheetah_sinusoidal_value.csv (in-sample, superseded), halfcheetah_groupsplit_value.csv (trajectory-level held-out split).

  • Layer 3 (experiments/layer3_rcrit/results/): dec_tiger_rcrit.csv, dec_tiger_asymmetric.csv, dec_tiger_sym_alpha001_R999.csv, dec_tiger_asym_alpha001_R999.csv, chain_rcrit.csv, rcrit_sweep.csv.

  • Legacy baselines (experiments/baselines/results/): ablation_sample_efficiency.csv (G-test rows only are still used); bisim_comparison.csv and dbc_comparison.csv are the first-coordinate Wasserstein and the custom DBC objective of the previous version and are superseded (not used in any table of this version).

  • Table-to-file map: main-paper Table 4 ←\leftarrow partition_accuracy.csv (P, T-pb) and partition_accuracy_pertraj.csv (T-pt); Tiger scaling in the text ←\leftarrow tiger_T_scaling_pertraj.csv; K-cycle/GaussMix scaling ←\leftarrow T_traj_scaling.csv; Dec-Tiger (iv) ←\leftarrow dec_tiger_variant_t.csv and dec_tiger_pfix_N20000_seeds3_9.csv; Table 1 ←\leftarrow tiger_continuous.csv, kcycle_continuous.csv, gaussian_mixture.csv; Table 2 ←\leftarrow kcycle_bins_sensitivity.csv, tiger_N_sensitivity.csv; Table 3 ←\leftarrow partition_accuracy.csv; Table 6 ←\leftarrow partition_baselines.csv (with partition_accuracy.csv for the (P) rows); Table 7 ←\leftarrow ablation_sample_efficiency.csv; Table 8 ←\leftarrow the Layer 2 files halfcheetah_continuous.csv, halfcheetah_sinusoidal.csv, ant_continuous.csv, halfcheetah_autobin.csv; Table 9 ←\leftarrow halfcheetah_groupsplit_value.csv; the RcritR_{\rm crit} tables and figure ←\leftarrow the Layer 3 files (dec_tiger_rcrit.csv, dec_tiger_asymmetric.csv, dec_tiger_sym_alpha001_R999.csv, dec_tiger_asym_alpha001_R999.csv, chain_rcrit.csv, rcrit_sweep.csv).

  • Revision (experiments/revision/results/): partition_accuracy.csv (procedures P, and T and Pfix^{\rm fix} with per_bin; ARI), partition_accuracy_pertraj.csv (T and Pfix^{\rm fix} with per_traj), partition_accuracy_2n.csv (B=2nB=2n on K-cycle K∈{4,5,8}K\in\{4,5,8\}: P, Pfix^{\rm fix}-pt, T-pt), T_traj_scaling.csv (T-pt as NN grows), tiger_T_scaling.csv (per_bin) and tiger_T_scaling_pertraj.csv, dec_tiger_pfix_N20000_seeds3_9.csv (7 additional Pfix^{\rm fix} seeds), partition_baselines.csv (W1, Ferns metric, DBC, causal-state, RKHS ε\varepsilon-machine; ARI), dec_tiger_variant_t.csv, gaussmix_alpha_check.csv.

Scripts: experiments/revision/run_partition_accuracy.py, run_partition_baselines.py, baselines_lib.py, run_dec_tiger_variant_t.py, run_dec_tiger_pfix_extra.py, run_T_traj_scaling.py, run_tiger_T_scaling.py, check_gaussmix_alpha.py, experiments/layer2_mujoco/halfcheetah_groupsplit_value.py; package code continuous_quotient/variant_t.py; tests under tests/.

Corrections to the previous version.

  • Table 2, Tiger at N=10000N=10000. The entry “2,2,2,2,202,2,2,2,20” was a typo. tiger_N_sensitivity.csv contains n^=2\hat n=2 on all five seeds at N=10000N=10000 (and B=8B=8 makes n^=20\hat n=20 impossible); the table now reads 2,2,2,2,22,2,2,2,2, in agreement with Appendix D.

  • GaussMix α\alpha. The shipped CSV has no α\alpha column. The script default is α=0.05\alpha=0.05, Appendix C said 0.050.05 and Section 5 said 0.010.01. We re-ran the manual-BB configuration (B=NsB=N_s, R=99R=99, N=2000N=2000, seeds 0–2, gaussmix_alpha_check.csv) at both levels: n^=Ns\hat n=N_s on all 12 runs at α=0.05\alpha=0.05 and at α=0.01\alpha=0.01, so the result file cannot discriminate between the two settings and the reported numbers are unaffected. The paper now states α=0.05\alpha=0.05, R=99R=99 throughout.

  • Missing result-file names in Appendices C–D are filled in above; in the rendered web version of the previous submission every was dropped by our converter, which left the file lists blank.

  • Variant (T) sampler (this version). The previous (T) experiments used the per_bin sampler, which does not sample the pooled bin law PbP_b of Definition 4, so they did not test Theorem 1. Theorem 1 and its trajectory budget were restated for per_traj (Section A) and Table 4 now reports it alongside the old sampler. The per_traj runs are much more conservative at N≤3000N\le3000.

  • Pow 2026 / companion paper is unpublished; nothing in this paper’s claims relies on it beyond the definition of the finite-alphabet baseline, and its G-test rows in Table 7 come from ablation_sample_efficiency.csv.

References

  1. Abel, David, Nate Umbanhowar, Khimya Khetarpal, Dilip Arumugam, Doina Precup, and Michael Littman. 2020. “State Abstraction as Compression in Apprenticeship Learning.” Proceedings of the 34th AAAI Conference on Artificial Intelligence, 3134–42.
  2. Azizzadenesheli, Kamyar, Alessandro Lazaric, and Animashree Anandkumar. 2016. “Reinforcement Learning of POMDP’s Using Spectral Methods.” Proceedings of the 29th Annual Conference on Learning Theory (COLT), 193–256.
  3. Benjamini, Yoav, and Yosef Hochberg. 1995. “Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing.” Journal of the Royal Statistical Society: Series B 57 (1): 289–300.
  4. Boots, Byron, Geoffrey Gordon, and Arthur Gretton. 2013. “Hilbert Space Embeddings of Predictive State Representations.” Proceedings of the 29th Conference on Uncertainty in Artificial Intelligence (UAI).
  5. Boots, Byron, Sajid M. Siddiqi, and Geoffrey J. Gordon. 2011. “Closing the Learning-Planning Loop with Predictive State Representations.” International Journal of Robotics Research 30 (7): 954–66.
  6. Brodu, Nicolas, and James P. Crutchfield. 2022. “Discovering Causal Structure with Reproducing-Kernel Hilbert Space ε\varepsilon-Machines.” Chaos: An Interdisciplinary Journal of Nonlinear Science 32 (2): 023103. https://doi.org/10.1063/5.0062829.
  7. Castro, Pablo Samuel. 2020. “Scalable Methods for Computing State Similarity in Deterministic Markov Decision Processes.” Proceedings of the 34th AAAI Conference on Artificial Intelligence, 10069–76.
  8. Castro, Pablo Samuel, Prakash Panangaden, and Doina Precup. 2009. “Equivalence Relations in Fully and Partially Observable Markov Decision Processes.” Proceedings of the 21st International Joint Conference on Artificial Intelligence (IJCAI), 1653–58.
  9. Ferns, Norm, Prakash Panangaden, and Doina Precup. 2004. “Metrics for Finite Markov Decision Processes.” Proceedings of the 20th Conference on Uncertainty in Artificial Intelligence (UAI), 162–69.
  10. Ferns, Norm, Prakash Panangaden, and Doina Precup. 2011. “Bisimulation Metrics for Continuous Markov Decision Processes.” SIAM Journal on Computing 40 (6): 1662–714. https://doi.org/10.1137/10080484X.
  11. Goerg, Georg M., and Cosma Rohilla Shalizi. 2012. “LICORS: Light Cone Reconstruction of States for Non-Parametric Forecasting of Spatio-Temporal Systems.” Unpublished manuscript.
  12. Goerg, Georg M., and Cosma Rohilla Shalizi. 2013. “Mixed LICORS: A Nonparametric Algorithm for Predictive State Reconstruction.” Proceedings of the 16th International Conference on Artificial Intelligence and Statistics (AISTATS), JMLR workshop and conference proceedings, vol. 31: 289–97.
  13. Gretton, Arthur, Karsten M. Borgwardt, Malte J. Rasch, Bernhard Schölkopf, and Alexander Smola. 2012. “A Kernel Two-Sample Test.” Journal of Machine Learning Research 13 (25): 723–73. http://jmlr.org/papers/v13/gretton12a.html.
  14. Jaeger, Herbert. 2000. “Observable Operator Models for Discrete Stochastic Time Series.” Neural Computation 12 (6): 1371–98.
  15. Jurgens, Alexandra M., and Nicolas Brodu. 2024. “Inferring Kernel ε\varepsilon-Machines: Discovering Structure in Complex Systems.” Unpublished manuscript.
  16. Kaelbling, Leslie Pack, Michael L. Littman, and Anthony R. Cassandra. 1998. “Planning and Acting in Partially Observable Stochastic Domains.” Artificial Intelligence 101 (1–2): 99–134.
  17. Larsen, Kim G., and Arne Skou. 1991. “Bisimulation Through Probabilistic Testing.” Information and Computation 94 (1): 1–28.
  18. Nixon, Anthony T. 2026a. “Semantic Rate-Distortion for Bounded Multi-Agent Communication: Capacity-Derived Semantic Spaces and the Communication Cost of Alignment.” arXiv Preprint arXiv:2604.09521.
  19. Nixon, Anthony T. 2026b. “The Myhill–Nerode Theorem for Bounded Interaction: Canonical Abstractions via Agent-Bounded Indistinguishability.” arXiv Preprint arXiv:2603.21399.
  20. Pow, Nissan. 2026. “Online Learning of Myhill–Nerode Quotients in Bounded-Agent POMDPs.” Unpublished manuscript.
  21. Ramdas, Aaditya, Sashank J. Reddi, Barnabás Póczos, Aarti Singh, and Larry Wasserman. 2015. “On the Decreasing Power of Kernel and Distance Based Nonparametric Hypothesis Tests in High Dimensions.” Proceedings of the 29th AAAI Conference on Artificial Intelligence, 3571–77.
  22. Zaremba, Wojciech, Arthur Gretton, and Matthew Blaschko. 2013. “B-Test: A Non-Parametric, Low Variance Kernel Two-Sample Test.” Advances in Neural Information Processing Systems (NeurIPS) 26.
  23. Zhang, Amy, Zachary C. Lipton, Luis Pineda, et al. 2019. “Learning Causal State Representations of Partially Observable Environments.” Unpublished manuscript.
  24. Zhang, Amy, Rowan McAllister, Roberto Calandra, Yarin Gal, and Sergey Levine. 2021. “Learning Invariant Representations for Reinforcement Learning Without Reconstruction.” International Conference on Learning Representations (ICLR).

Disclosure of AI use

Claude (Anthropic; Claude Code with Sonnet and Opus-class models) was used throughout this work: writing and debugging the code in the linked repository, running and checking experiments, drafting and revising the manuscript, and simulated peer review. The human author directed the research, reviewed the results, and is responsible for the content. All reported numbers are produced by committed scripts.

Correction notice

Version 2 · Issued Nov 14, 2026 by the authors.

Version 2 of this article replaces version 1: Presentation and editorial-note corrections; no claims, results, methods, figures or references changed. (1) Abstract: was shown as plain text but contained LaTeX/Markdown markup from our conversion; now plain text, same content. (2) Math: three expressions of the estimator output (hat of calligraphic Q) failed to render and now use widehat. (3) Section 4: removed the leftover placeholder (RESULT-T-SUMMARY) with a one-sentence summary of what the (T) tables already show, and fixed the broken equation reference. (4) Cross-references: corrected inconsistent table, section and remark numbers (for example the (T) results are Tables 4-5, and doubled prefixes such as "RemarkRemark 2") and removed a stray table-header artefact. (5) Appendix E: the table-to-file map now names the result file for each table. (6) Appendix C: result-file list now includes the added CSVs. (7) Appendix A, Remark 5: states that the m_max=300 calculation applies to procedure (P) and capped samplers, not to the uncapped per_traj variant. The previous versions remain available from the History tab.