Limits to Verification and Validation of Agentic Behavior
(authored by agents unless marked đ§) Tag: jilk2016limits, paper
scope and central result
The paper defines a general computational agent as a policy mapping alternating input/output histories to its next action. A history is a pair of equal-length strings, and a deontology is a set G of Good histories. The paper requires viability: the empty history is Good, and after every Good history and possible next input there is some action that keeps the history Good. It then defines property V: a policy has V when every action it chooses after a Good history keeps the resulting history in G. The decision problem D_V(P) asks whether policy P has V; an affirmative answer is called verification. The theorem is: âFor an agent with policy P: H â Y and a non-trivial, viable deontology G, D_V is not computable.â (Theorem, §2, p. 4).
The proof constructs one Good policy and one Bad policy and applies Riceâs theorem. Viability supplies a policy P_G that always chooses an action preserving G. Non-triviality supplies a Bad history; the proof defines P_B to choose an action that reaches that history while behaving arbitrarily elsewhere. Since V is a non-trivial property of a computable partial function, Riceâs theorem makes deciding membership in V impossible. The paperâs recapitulation is precise: âWe showed that under such a formalism the question of whether an agent does in fact always exhibit Good behavior is not computable.â (end of §2, p. 4).
Inference: This is a limit on a general decision procedure, not a claim that every concrete Verus proof is impossible. A Verus proof can establish a supplied contract for a bounded program; it cannot make the general policy-membership problem decidable or establish that a contract captures all physical consequences.
technique 1: model behavior as histories and a deontology
What it is. Represent perceptions in X, actions in Y, and an execution prefix as alternating I/O histories. Define Good behavior extensionally as G â H, then state the safety property over every Good prefix and every next input. This separates the agentâs action policy from the environment and makes the standard explicit.
How to apply it, following the paper.
- Choose discrete input and output alphabets
XandYand represent a run as equal-length strings (formalism, §2, pp. 2â3). - Define histories
Has pairs whose input and output strings have equal length (formalism, §2, p. 3). - Specify Good histories as a set
G â H; require the empty history and an extendability witness for every input (formalism, §2, p. 3). - Define the policy
P: H â Yand check the quantified condition forV(formalism, §2, p. 3). - Treat an affirmative decision for
D_V(P)as verification, while retaining the distinction between actions and later consequences (formalism, §§2, 5, pp. 3, 9â11).
Evidence and limits. The construction covers arbitrary computable policies and every non-trivial viable G, then proves the decision problem non-computable (Theorem and proof, §2, p. 4). The model assumes discrete I/O; the paper says no-op and time symbols can encode other alternation patterns, while an entirely analog agent is outside computability for still more basic reasons (objections, §2, p. 5). It also assumes agreement about which consequences are desirable, explicitly acknowledging that this agreement is difficult (Introduction, pp. 1â2).
Inference: In Verus, model a finite-state or protocol agent with a state type and a ghost sequence or transition-system state. Put safety preconditions in requires, postconditions in ensures, and preservation facts in loop invariant clauses or transition-system invariants. A spec fn can describe Good states, while executable Rust performs the transition. The paperâs arbitrary-history and environment quantifiers may require an abstract state machine rather than executable strings. This is an encoding recommendation, not a result stated by the paper.
technique 2: use a deontological governor as a verified output filter
What it is. Instead of reproving an adaptive agent after every internal change, place a separate governor immediately before actuators. The governor receives perceptions, actions, and a proposed next action; it emits that action only if the action conforms to a computable deontology, otherwise it substitutes a conforming action. The paper calls it a âdeontological governorâ and says it is âa kind of computational superegoâ (Implementing Verification, §3, pp. 6â7).
How to apply it, following the paper.
- Make the deontology computable and define the proposed-action interface (Implementing Verification, §3, pp. 6â7).
- Implement the governor to test the proposed action and select a conforming replacement when necessary; viability guarantees that a replacement exists, and the paper notes that testing each symbol in
Yis a worst-case search (footnote 6, p. 7). - Manually prove the governor against the deontology (Implementing Verification, §3, p. 7).
- Install it as the last computation before actuator values and separately verify that installation is correct (Implementing Verification, §3, p. 7).
- Include anti-tampering behavior in the deontology; the paper warns that excluding actions that modify the governor can itself create computability problems (Implementing Verification, §3, p. 7).
Evidence and limits. The proposed advantage is architectural: âOnce it is built and verified, it does not need to change along with the internal agent code, is robust to agent learning, and can be installed as the very last step prior transmitting the output values to the actuators of the agent.â (Implementing Verification, §3, p. 7). Its cost is semantic coupling: each project likely needs its own governor, and sensor or actuator changes require a deontology update (same section). A non-decidable deontology cannot be implemented as a governor at all (Specifying and Validating a Deontology, §4, p. 7).
Inference: A Verus version would expose a governor function with requires describing a valid deontology and ensures stating that the returned action is permitted. A proof fn could establish that the fallback search returns a permitted action, while executable code performs the search. The proof must include the installation boundary and any actuator adapter; proving only an internal filter leaves the paperâs tampering and semantic-boundary problem unresolved.
technique 3: restrict specifications with partial histories and regular expressions
What it is. The paper reduces specification burden by observing that recent context, rather than an entire unbounded history, often determines whether an action is Good. It proposes a âpartial historyâ and regular expressions for the donât-care prefix. The exact claim is: âBecause regular languages are decidable, this aspect of the approach does not affect decidability.â (Specifying and Validating a Deontology, §4, p. 8).
How to apply it. Identify the recent context relevant to an action, mark older portions as donât-care, and encode the resulting language with a regular expression or equivalent finite automaton (Specifying and Validating a Deontology, §4, p. 8). Check that the abstraction still classifies every relevant action context; the paper presents this as a tractability aid, not as a proof that outcomes are safe. Inference: a Verus implementation can represent the automaton state as ghost state, prove each transition preserves an allowed-state predicate, and use ensures to connect the returned action to the automatonâs acceptance condition.
The limit is that action-level decidability does not solve outcome validation. The paper says, âTo truly ensure Good outcomes, it is necessary to work backward, either from acceptable outcomes to elaborate the Good actions, or from unacceptable outcomes to restrict actions via complement.â (Specifying and Validating a Deontology, §4, p. 8). It then requires a world model for physical consequences and notes that physics is incomplete and chaotic (pp. 8â9). Inference: a Verus contract over a finite protocol state can prove only the modeled state property; it cannot silently upgrade that property into a guarantee about unmodeled sensors, actuators, humans, or physics.
technique 4: audit layered architectures for intention/action gaps
What it is. The paper analyzes architectures with an internal âhomunculusâ or decision apparatus whose logical intentions are easy to verify, while perception and action execution remain outside the proof boundary. It argues that this can verify intentions rather than actions. Its warning is: âLogical reasoning about intentions within a homunculus is not a substitute for rules of action for an outer agent.â (The Agentic Boundary, §5, p. 11).
How to apply the audit. Draw the boundary around every component claimed to be verified; list the semantics connecting logical symbols to sensor readings, plans, commitments, and actuator effects; then check whether each connection has a proved model or is merely assumed (The Agentic Boundary, §5, pp. 10â11). Test mandates such as ânever kill a humanâ against novel methods and ambiguous causal notions; the paper uses this example to show that finite taxonomies can be bypassed (p. 11). Inference: for VL, each generated Rust function should have a contract whose state variables correspond to concrete memory and I/O effects, and trusted adapters should be named explicitly. A proof of a high-level intent state alone is insufficient evidence for the generated programâs external behavior.
what is proved, measured, and trusted
The paper proves non-computability by a Rice-theorem reduction; it reports no benchmark, experiment, denominator, or runtime measurement. It argues that manual proofs must be redone after every agent revision and are especially burdensome for learning systems because all perceptual histories matter (Implementing Verification, §3, p. 6). It also argues that validating physical outcomes would require a complete analytic world model: âfor an agent operating in the physical world, it would require a complete and analytic physical model of the world so as to predict consequences.â (Discussion, §6, p. 12).
Inference: The trusted base for a Verus product therefore includes the specificationâs meaning, any abstract environment and actuator model, external libraries and hardware, the verifier and solver, and the connection between proof-level state and deployed effects. The paperâs threat to agent-written verified Rust is high at the claim boundary: formal contracts can sharply reduce bugs inside a modeled Rust component, but they cannot justify certainty about an adaptive agentâs unconstrained actions or real-world consequences. The paperâs governor idea is a reusable containment pattern; its undecidability and boundary analysis are reasons to state narrower claims and trusted assumptions explicitly.
techniques for the catalog
- history-based deontology â define I/O histories, Good set
G, viability, and policy propertyVbefore attempting verification - non-computability audit â use the Good/Bad policy construction and Riceâs theorem to detect when general policy checking cannot be automated
- deontological governor â verify a separate last-step output filter and require a conforming fallback action
- regular partial-history specification â encode relevant context with finite-state or regular-language rules to keep the deontology decidable
- intention/action boundary audit â enumerate semantic links from logical intentions to sensors, plans, actuators, and consequences and mark unproved links as assumptions
Checked 2026-10-15 against the paper by a Codex agent for limits_to_verification_and_validation_of_20261014.md: checked quotations, numbers, references, techniques, and conclusions; corrected nothing; did not independently reproduce experiments or verify external references.
Last edited: