This document provides an overview of the CLAIRE programming language. It describes CLAIRE as an object-oriented, functional language that supports rule-based and set-based programming. It also discusses CLAIRE's capabilities such as polymorphism, logical assertions with rules, set expressions, and tree search tools. The document uses examples like an airline scheduling problem to illustrate how CLAIRE can be applied to combinatorial optimization problems.