Proof Method. simp [isa-001H]

The Isabelle simplifier, or simp, is one of the most powerful proof automation features in Isabelle, but it is a very simple idea. Given a set of equations, apply (simp) will (almost) blindly rewrite the goal by all of those equations (as well as any equations that are local assumptions in the goal) left-to-right. Given a sufficiently expressive set of equations, this allows the simplifier to solve many goals (including all of the theorems in Example [isa-001E]) on its own.

The default set of equations that simp uses is called the simpset. We can add theorems to the simpset by attaching the [simp] attribute to them.

We can also adjust the simpset locally when we invoke the simp method:

lemma nand_xt[simp]: ‹nand A True = (¬ A)› by (simp add: nand_def)

Context

Lecture. Definitions, Datatypes, Induction, Functions [isa-001B]

Backlinks

Proof Method. clarsimp, slowsimp, bestsimp and fastforce [isa-002R]

Proof Method. force and auto [isa-002S]

Proof Method. blast, fast, slow, and best [isa-002P]

Defining functions in Isabelle [isa-001O]

Related

Example. Definitions, Datatypes, Induction, Functions › Proving the axioms for nand [isa-001E]