Limitations¶
These are measured properties of the implementation, not speculation. Each has a regression
test in tests/test_traps.py so it cannot silently change.
-
conv_poolis not monotone. Its derivativew_k·(1 − (x_k − f)/τ)goes negative oncex_k − f > τ, so raising a term that is already far above the pooled value lowers the result. Soundness is unaffected, but the tempting argument "the box neuron is monotone inA, therefore the bound is sound" is not available — the correct route is monotonicity of the hardminplus the one-sided enclosure. -
contradictionhas a dead zone after a modal neuron. It is identically zero, with zero gradient, until the bound crossing exceeds the box widthτ·H(w)— exactly 0.1792 for a fan-in of 6 atτ = 0.1. Do not rely onL_contraas the sole guard against a degenerate optimum; annealτ, or pair it withgradient_health. -
Each modal level costs
τ·H(w)of interval width. On a densely connected frame this isτ·log|W|, which is not negligible: withτ = 0.1and 8 fully-connected worlds, a nest of necessities floors at depth 5 and the lower bound is then dead. Compute the budget withbox_width_entropyrather than assuming it.MultiAgentKripke.K_G/K_Fare two levels and consume it twice as fast. -
functional.untilignores its accessibility relation. It is correct for a total order (consecutive time steps) and only for that:until(φ, ψ, A)is bit-identical for anyA, no gradient flows into the relation, and cutting an edge changes nothing. Its Łukasiewicz sweep also loses1 − L_φper step, flooring the lower bound over a long horizon. Useuntil_graphfor an arbitrary or learned relation. -
until_graph(quantifier="box")is sound only on a serial frame. A dead end makes□Uvacuously true, so a path that simply stops satisfies the formula. Prefer the default"diamond"(EU) unless every world is known to have a successor — or enforce seriality withAxiomRegularization(seriality=...). -
Only two of the four bound endpoints are monotone in
A.necessity.Landpossibility.Uare; the twoconv_poolendpoints are not. A monotonicity argument is available only for the first two — seetorchmodal.diagnostics.MONOTONICITY. -
untilanduntil_graphare not batched. The modal operators are; these two still take one model at a time.