  The theory of asymptotic complexity provides an approach to characterizing
the behavior of programs in terms of bounds on the number of computational
steps executed or use of computational resources. We describe work using ACL2
to prove complexity properties of programs implemented in a simple imperative
programming language embedding via an operational semantics in ACL2. We
simultaneously prove functional properties of a program and its complexity. We
illustrate our approach by describing proofs about a binary search algorithm,
proving both that it implements binary search on a sorted list and that it is
O(log(n)), where n is the length of the list.
