This document discusses abstraction-based software verification using Counterexample-Guided Abstraction Refinement (CEGAR). CEGAR iteratively refines an abstract model of the software by analyzing counterexamples generated from model checking the abstract model against a property. The document introduces CEGAR and describes how it uses abstraction, model checking, concretization, and refinement. It also discusses the Theta Verification Framework, a configurable CEGAR framework that can handle different formal models, abstract domains, and refinement strategies.