src/HOL/Fun.ML
changeset 1754 852093aeb0ab
parent 1672 2c109cd2fdd0
child 1776 d7e77cb8ce5c
     1.1 --- a/src/HOL/Fun.ML	Tue May 21 10:52:26 1996 +0200
     1.2 +++ b/src/HOL/Fun.ML	Tue May 21 13:39:31 1996 +0200
     1.3 @@ -51,19 +51,19 @@
     1.4  
     1.5  goalw Fun.thy [o_def] "(f o g)``r = f``(g``r)";
     1.6  by (rtac set_ext 1);
     1.7 -by (fast_tac (HOL_cs addIs [imageI] addSEs [imageE]) 1);
     1.8 +by (fast_tac (!claset addIs [imageI] addSEs [imageE]) 1);
     1.9  qed "image_compose";
    1.10  
    1.11  goal Fun.thy "f``(A Un B) = f``A Un f``B";
    1.12  by (rtac set_ext 1);
    1.13 -by (fast_tac (HOL_cs addIs [imageI,UnCI] addSEs [imageE,UnE]) 1);
    1.14 +by (fast_tac (!claset addIs [imageI,UnCI] addSEs [imageE,UnE]) 1);
    1.15  qed "image_Un";
    1.16  
    1.17  (*** inj(f): f is a one-to-one function ***)
    1.18  
    1.19  val prems = goalw Fun.thy [inj_def]
    1.20      "[| !! x y. f(x) = f(y) ==> x=y |] ==> inj(f)";
    1.21 -by (fast_tac (HOL_cs addIs prems) 1);
    1.22 +by (fast_tac (!claset addIs prems) 1);
    1.23  qed "injI";
    1.24  
    1.25  val [major] = goal Fun.thy "(!!x. g(f(x)) = x) ==> inj(f)";
    1.26 @@ -109,7 +109,7 @@
    1.27  
    1.28  val prems = goalw Fun.thy [inj_onto_def]
    1.29      "(!! x y. [| f(x) = f(y);  x:A;  y:A |] ==> x=y) ==> inj_onto f A";
    1.30 -by (fast_tac (HOL_cs addIs prems addSIs [ballI]) 1);
    1.31 +by (fast_tac (!claset addIs prems addSIs [ballI]) 1);
    1.32  qed "inj_ontoI";
    1.33  
    1.34  val [major] = goal Fun.thy 
    1.35 @@ -126,7 +126,7 @@
    1.36  qed "inj_ontoD";
    1.37  
    1.38  goal Fun.thy "!!x y.[| inj_onto f A;  x:A;  y:A |] ==> (f(x)=f(y)) = (x=y)";
    1.39 -by (fast_tac (HOL_cs addSEs [inj_ontoD]) 1);
    1.40 +by (fast_tac (!claset addSEs [inj_ontoD]) 1);
    1.41  qed "inj_onto_iff";
    1.42  
    1.43  val major::prems = goal Fun.thy
    1.44 @@ -142,12 +142,12 @@
    1.45  val prems = goalw Fun.thy [o_def]
    1.46      "[| inj(f);  inj_onto g (range f) |] ==> inj(g o f)";
    1.47  by (cut_facts_tac prems 1);
    1.48 -by (fast_tac (HOL_cs addIs [injI,rangeI]
    1.49 +by (fast_tac (!claset addIs [injI,rangeI]
    1.50                       addEs [injD,inj_ontoD]) 1);
    1.51  qed "comp_inj";
    1.52  
    1.53  val [prem] = goal Fun.thy "inj(f) ==> inj_onto f A";
    1.54 -by (fast_tac (HOL_cs addIs [prem RS injD, inj_ontoI]) 1);
    1.55 +by (fast_tac (!claset addIs [prem RS injD, inj_ontoI]) 1);
    1.56  qed "inj_imp";
    1.57  
    1.58  val [prem] = goalw Fun.thy [Inv_def] "y : range(f) ==> f(Inv f y) = y";
    1.59 @@ -163,19 +163,28 @@
    1.60  val prems = goal Fun.thy
    1.61      "[| inj(f);  A<=range(f) |] ==> inj_onto (Inv f) A";
    1.62  by (cut_facts_tac prems 1);
    1.63 -by (fast_tac (HOL_cs addIs [inj_ontoI] 
    1.64 +by (fast_tac (!claset addIs [inj_ontoI] 
    1.65                       addEs [Inv_injective,injD,subsetD]) 1);
    1.66  qed "inj_onto_Inv";
    1.67  
    1.68  
    1.69  (*** Set reasoning tools ***)
    1.70  
    1.71 +AddSIs [ballI, PowI, subsetI, InterI, INT_I, INT1_I, CollectI, 
    1.72 +            ComplI, IntI, DiffI, UnCI, insertCI]; 
    1.73 +AddIs  [bexI, UnionI, UN_I, UN1_I, imageI, rangeI]; 
    1.74 +AddSEs [bexE, make_elim PowD, UnionE, UN_E, UN1_E, DiffE,
    1.75 +	    make_elim singleton_inject,
    1.76 +            CollectE, ComplE, IntE, UnE, insertE, imageE, rangeE, emptyE]; 
    1.77 +AddEs  [ballE, InterD, InterE, INT_D, INT_E, make_elim INT1_D,
    1.78 +            subsetD, subsetCE];
    1.79 +
    1.80  val set_cs = HOL_cs 
    1.81      addSIs [ballI, PowI, subsetI, InterI, INT_I, INT1_I, CollectI, 
    1.82              ComplI, IntI, DiffI, UnCI, insertCI] 
    1.83      addIs  [bexI, UnionI, UN_I, UN1_I, imageI, rangeI] 
    1.84      addSEs [bexE, make_elim PowD, UnionE, UN_E, UN1_E, DiffE,
    1.85 -	    make_elim singleton_inject,
    1.86 +            make_elim singleton_inject,
    1.87              CollectE, ComplE, IntE, UnE, insertE, imageE, rangeE, emptyE] 
    1.88      addEs  [ballE, InterD, InterE, INT_D, INT_E, make_elim INT1_D,
    1.89              subsetD, subsetCE];