Removed quantification over lists
authorpaulson
Mon, 17 Jun 1996 16:51:11 +0200
changeset 1808 785a7672962e
parent 1807 3ff66483a8d4
child 1809 8cb50df49570
Removed quantification over lists
src/HOL/ex/SList.ML
src/HOL/ex/SList.thy
--- a/src/HOL/ex/SList.ML	Mon Jun 17 16:50:38 1996 +0200
+++ b/src/HOL/ex/SList.ML	Mon Jun 17 16:51:11 1996 +0200
@@ -286,7 +286,6 @@
 val [map_Nil,map_Cons] = list_recs map_def;
 val [list_case_Nil,list_case_Cons] = list_recs list_case_def;
 val [filter_Nil,filter_Cons] = list_recs filter_def;
-val [list_all_Nil,list_all_Cons] = list_recs list_all_def;
 
 Addsimps
   [null_Nil, ttl_Nil,
@@ -294,7 +293,6 @@
    list_case_Nil, list_case_Cons,
    append_Nil3, append_Cons,
    map_Nil, map_Cons,
-   list_all_Nil, list_all_Cons,
    filter_Nil, filter_Cons];
 
 
@@ -322,24 +320,6 @@
 by(ALLGOALS(asm_simp_tac (!simpset setloop (split_tac [expand_if]))));
 qed "mem_filter2";
 
-(** list_all **)
-
-goal SList.thy "(Alls x:xs.True) = True";
-by(list_ind_tac "xs" 1);
-by(ALLGOALS Asm_simp_tac);
-qed "list_all_True2";
-
-goal SList.thy "list_all p (xs@ys) = (list_all p xs & list_all p ys)";
-by(list_ind_tac "xs" 1);
-by(ALLGOALS Asm_simp_tac);
-qed "list_all_conj2";
-
-goal SList.thy "(Alls x:xs.P(x)) = (!x. x mem xs --> P(x))";
-by(list_ind_tac "xs" 1);
-by(ALLGOALS(asm_simp_tac (!simpset setloop (split_tac [expand_if]))));
-by(fast_tac HOL_cs 1);
-qed "list_all_mem_conv2";
-
 
 (** The functional "map" **)
 
--- a/src/HOL/ex/SList.thy	Mon Jun 17 16:50:38 1996 +0200
+++ b/src/HOL/ex/SList.thy	Mon Jun 17 16:51:11 1996 +0200
@@ -38,7 +38,6 @@
   hd        :: 'a list => 'a
   tl,ttl    :: 'a list => 'a list
   mem           :: ['a, 'a list] => bool                        (infixl 55)
-  list_all  :: ('a => bool) => ('a list => bool)
   map       :: ('a=>'b) => ('a list => 'b list)
   "@"       :: ['a list, 'a list] => 'a list                    (infixr 65)
   filter    :: ['a => bool, 'a list] => 'a list
@@ -48,8 +47,7 @@
   "[]"      :: 'a list                            ("[]")
   "@list"   :: args => 'a list                    ("[(_)]")
 
-  (* Special syntax for list_all and filter *)
-  "@Alls"       :: [idt, 'a list, bool] => bool ("(2Alls _:_./ _)" 10)
+  (* Special syntax for filter *)
   "@filter"     :: [idt, 'a list, bool] => 'a list      ("(1[_:_ ./ _])")
 
 translations
@@ -60,7 +58,6 @@
   "case xs of Nil => a | y#ys => b" == "list_case a (%y ys.b) xs"
 
   "[x:xs . P]"  == "filter (%x.P) xs"
-  "Alls x:xs.P" == "list_all (%x.P) xs"
 
 defs
   (* Defining the Concrete Constructors *)
@@ -109,7 +106,6 @@
 
   mem_def       "x mem xs            == 
                    list_rec xs False (%y ys r. if y=x then True else r)"
-  list_all_def  "list_all P xs       == list_rec xs True (%x l r. P(x) & r)"
   map_def       "map f xs            == list_rec xs [] (%x l r. f(x)#r)"
   append_def    "xs@ys               == list_rec xs ys (%x l r. x#r)"
   filter_def    "filter P xs         ==