# HG changeset patch # User wenzelm # Date 1452595775 -3600 # Node ID dc4c9748a86eb98f66923231764f21f6d782af90 # Parent 33ce5f41a9e1accb6b9ddaca93cfe71af76a9d9b eliminated old defs; diff -r 33ce5f41a9e1 -r dc4c9748a86e src/HOL/HOL.thy --- a/src/HOL/HOL.thy Tue Jan 12 11:48:43 2016 +0100 +++ b/src/HOL/HOL.thy Tue Jan 12 11:49:35 2016 +0100 @@ -69,25 +69,38 @@ typedecl bool -judgment - Trueprop :: "bool \ prop" ("(_)" 5) +judgment Trueprop :: "bool \ prop" ("(_)" 5) + +axiomatization implies :: "[bool, bool] \ bool" (infixr "\" 25) + and eq :: "['a, 'a] \ bool" (infixl "=" 50) + and The :: "('a \ bool) \ 'a" + -axiomatization - implies :: "[bool, bool] \ bool" (infixr "\" 25) and - eq :: "['a, 'a] \ bool" (infixl "=" 50) and - The :: "('a \ bool) \ 'a" +subsubsection \Defined connectives and quantifiers\ + +definition True :: bool + where "True \ ((\x::bool. x) = (\x. x))" + +definition All :: "('a \ bool) \ bool" (binder "\" 10) + where "All P \ (P = (\x. True))" -consts - True :: bool - False :: bool - Not :: "bool \ bool" ("\ _" [40] 40) +definition Ex :: "('a \ bool) \ bool" (binder "\" 10) + where "Ex P \ \Q. (\x. P x \ Q) \ Q" + +definition False :: bool + where "False \ (\P. P)" + +definition Not :: "bool \ bool" ("\ _" [40] 40) + where not_def: "\ P \ P \ False" - conj :: "[bool, bool] \ bool" (infixr "\" 35) - disj :: "[bool, bool] \ bool" (infixr "\" 30) +definition conj :: "[bool, bool] \ bool" (infixr "\" 35) + where and_def: "P \ Q \ \R. (P \ Q \ R) \ R" - All :: "('a \ bool) \ bool" (binder "\" 10) - Ex :: "('a \ bool) \ bool" (binder "\" 10) - Ex1 :: "('a \ bool) \ bool" (binder "\!" 10) +definition disj :: "[bool, bool] \ bool" (infixr "\" 30) + where or_def: "P \ Q \ \R. (P \ R) \ (Q \ R) \ R" + +definition Ex1 :: "('a \ bool) \ bool" (binder "\!" 10) + where "Ex1 P \ \x. P x \ (\y. P y \ y = x)" subsubsection \Additional concrete syntax\ @@ -167,16 +180,6 @@ iff: "(P \ Q) \ (Q \ P) \ (P = Q)" and True_or_False: "(P = True) \ (P = False)" -defs - True_def: "True \ ((\x::bool. x) = (\x. x))" - All_def: "All P \ (P = (\x. True))" - Ex_def: "Ex P \ \Q. (\x. P x \ Q) \ Q" - False_def: "False \ (\P. P)" - not_def: "\ P \ P \ False" - and_def: "P \ Q \ \R. (P \ Q \ R) \ R" - or_def: "P \ Q \ \R. (P \ R) \ (Q \ R) \ R" - Ex1_def: "Ex1 P \ \x. P x \ (\y. P y \ y = x)" - definition If :: "bool \ 'a \ 'a \ 'a" ("(if (_)/ then (_)/ else (_))" [0, 0, 10] 10) where "If P x y \ (THE z::'a. (P = True \ z = x) \ (P = False \ z = y))"