 
Summary: Eliminating definitions and Skolem functions
in firstorder logic
JEREMY AVIGAD
Carnegie Mellon University
From proofs in any classical firstorder theory that proves the existence of at least two elements,
one can eliminate definitions in polynomial time. From proofs in any classical firstorder theory
strong enough to code finite functions, including sequential theories, one can also eliminate Skolem
functions in polynomial time.
Categories and Subject Descriptors: F.4.1 [Mathematical Logic and Formal Languages]:
Mathematical LogicProof Theory
General Terms: Algorithms, Theory
Additional Key Words and Phrases: definitions, Skolem functions, proof complexity, lengths of
proofs
1. INTRODUCTION
When working with a firstorder theory, it is often convenient to use definitions.
That is, if (x) is a firstorder formula with the free variables shown, one can
introduce a new relation symbol R to abbreviate , with defining axiom x (R(x)
(x)). Of course, this definition can later be eliminated from a proof, simply
by replacing every instance of R by . But suppose the proof involves nested
definitions, with a sequence of relation symbols R0, . . . , Rk abbreviating formulae
