# HG changeset patch # User wenzelm # Date 1007563485 -3600 # Node ID 2e4fb29496b0849b50079f5343398968adf9a636 # Parent 45dc2986aeb4a9651376fa8eb3ae6fb47cb13f20 iff; diff -r 45dc2986aeb4 -r 2e4fb29496b0 src/FOL/ex/First_Order_Logic.thy --- a/src/FOL/ex/First_Order_Logic.thy Wed Dec 05 15:36:48 2001 +0100 +++ b/src/FOL/ex/First_Order_Logic.thy Wed Dec 05 15:44:45 2001 +0100 @@ -62,6 +62,9 @@ "\ \ \ \ \" not :: "o \ o" ("\ _" [40] 40) "\ A \ A \ \" + iff :: "o \ o \ o" (infixr "\" 25) + "A \ B \ (A \ B) \ (B \ A)" + theorem trueI [intro]: \ proof (unfold true_def) @@ -80,6 +83,27 @@ hence \ .. thus B .. qed +theorem iffI [intro]: "(A \ B) \ (B \ A) \ A \ B" +proof (unfold iff_def) + assume "A \ B" hence "A \ B" .. + moreover assume "B \ A" hence "B \ A" .. + ultimately show "(A \ B) \ (B \ A)" .. +qed + +theorem iff1 [elim]: "A \ B \ A \ B" +proof (unfold iff_def) + assume "(A \ B) \ (B \ A)" + hence "A \ B" .. + thus "A \ B" .. +qed + +theorem iff2 [elim]: "A \ B \ B \ A" +proof (unfold iff_def) + assume "(A \ B) \ (B \ A)" + hence "B \ A" .. + thus "B \ A" .. +qed + subsection {* Equality *}