(* $Id: sol.thy,v 1.3 2006/10/04 23:48:20 kleing Exp $ Author: Martin Strecker *) header {* Elimination of Connectives *} (*<*) theory sol imports Main begin (*>*) text {* In classical propositional logic, the connectives @{text "=, \, \"} can be replaced by @{text "\, \, False"}. Define corresponding simplification rules as lemmas and prove their correctness. (You may use automated proof tactics.) *} lemma equiv_conel: "(A = B) = ((A \ B) \ (B \ A))" by iprover lemma or_conel: "(A \ B) = (\ (\ A \ \ B))" by blast lemma not_conel: "(\ A) = (A \ False)" by blast text {* What is the result of your translation for the formula @{text "A \ (B \ C) = A"}? (You can use Isabelle's simplifier to compute the result by using the simplifier's @{text "only"} option.) *} text {* Stating @{text "A \ (B \ C) = A"} as a lemma and application of\\ @{text "(simp only: equiv_conel or_conel not_conel)"}\\ results in the simplified goal\\ @{text "(A \ False) \ ((B \ C \ A) \ (A \ B \ C) \ False) \ False"}. *} (*<*) end (*>*)