Ast #
ODE RHS expression language + interval evaluator.
This is a small companion to the existing PINN PDE DSL, specialized for ODE IVPs: u'(t) = f(t, u(t)).
We use conservative interval arithmetic over α × α intervals (for any scalar α with a
Context instance), with a few common transcendentals (sin, cos, exp, log) needed by the
benchmarks in arXiv:2601.19818.
For the trigonometric cases we use a 1-Lipschitz enclosure around the midpoint and then clamp to
[-1,1]. Over real-valued semantics this is the intended enclosure argument; executable scalar
backends rely on their Context operations matching the assumed real behavior closely enough for
the checker mode being used.
Expr is an AST for ODE right-hand sides f(t,u).
We cover the arithmetic and elementary functions needed by the ODE certificate format used in
TorchLean: constants, the independent variable t, the state variable u, field arithmetic, and
the common scalar functions sin, cos, exp, and log. Keeping this language explicit makes
the checker easier to inspect while still covering the benchmark equations we want to verify.
An evaluation environment for Expr.
We interpret t and u as intervals (lo,hi); everything evaluates to an interval.
Interval primitives used by eval.
These operations are written against the abstract scalar interface Context α so we can evaluate
the same expression under Float or IEEE32Exec (or other executable scalars).
Binary minimum.
Instances For
Binary maximum.
Instances For
Interval evaluation for Expr.
evalWithFuel uses a fuel parameter so the evaluator is total even for malformed/self-referential
expressions (though Expr itself has no recursion).
Convenience wrapper with a generous fixed fuel.