Egor Urvanov

Rice's theorem

Formal verification · undecidability of program properties

No program can tell for every program whether it has a given behavioural property, such as “never charges money without an order”, if some programs have the property and others don’t. Questions about the code text are settled by reading; questions about behaviour are not. So checks are narrowed by a frame: try a small world in full, write code so the rule holds by construction, or allow a “don’t know” answer.

a behaviour rule: “never charges money without an order”the checkany, however clever✓×✓×✓?programsthere is always a programwhere the answer is wrongabout code text you can answer; about the behaviour of any program you can’t; the way out is a narrower frame● model, people, systems, data  ● agent and harness  ● risk, stop, boundaryFor any behaviour check there is a program on which it is wrong

Source: Wikipedia: Rice's theorem

Read more: Rice's theorem in plain wordsWhere to check an AI agent's work

Where it appears · 2

Related terms

Whole glossary

© 2026 Egor Urvanov