New bounded quantifier syntax: !x<i. P etc
--- a/src/HOL/Ord.thy Thu Mar 18 11:19:03 1999 +0100
+++ b/src/HOL/Ord.thy Thu Mar 18 16:42:34 1999 +0100
@@ -55,4 +55,16 @@
axclass linorder < order
linorder_linear "x <= y | y <= x"
+(*bounded quantifiers*)
+syntax
+ "@lessAll" :: [idt, 'a, bool] => bool ("(3! _<_./ _)" [0, 0, 10] 10)
+ "@lessEx" :: [idt, 'a, bool] => bool ("(3? _<_./ _)" [0, 0, 10] 10)
+ "@leAll" :: [idt, 'a, bool] => bool ("(3! _<=_./ _)" [0, 0, 10] 10)
+ "@leEx" :: [idt, 'a, bool] => bool ("(3? _<=_./ _)" [0, 0, 10] 10)
+translations
+ "! x<y. P" => "! x. x < y --> P"
+ "! x<=y. P" => "! x. x <= y --> P"
+ "? x<y. P" => "? x. x < y & P"
+ "? x<=y. P" => "! x. x <= y & P"
+
end