src/HOL/Sum.ML
changeset 1761 29e08d527ba1
parent 1760 6f41a494f3b1
child 1985 84cf16192e03
equal deleted inserted replaced
1760:6f41a494f3b1 1761:29e08d527ba1
   202 goalw Sum.thy [Part_def] "!!a. a : Part A h ==> a : A";
   202 goalw Sum.thy [Part_def] "!!a. a : Part A h ==> a : A";
   203 by (etac IntD1 1);
   203 by (etac IntD1 1);
   204 qed "PartD1";
   204 qed "PartD1";
   205 
   205 
   206 goal Sum.thy "Part A (%x.x) = A";
   206 goal Sum.thy "Part A (%x.x) = A";
   207 by (fast_tac (!claset addIs [PartI,equalityI] addSEs [PartE]) 1);
   207 by (fast_tac (!claset addIs [PartI] addSEs [PartE]) 1);
   208 qed "Part_id";
   208 qed "Part_id";
   209 
   209 
   210 goal Sum.thy "Part (A Int B) h = (Part A h) Int (Part B h)";
   210 goal Sum.thy "Part (A Int B) h = (Part A h) Int (Part B h)";
   211 by (fast_tac (!claset addIs [PartI,equalityI] addSEs [PartE]) 1);
   211 by (fast_tac (!claset addIs [PartI] addSEs [PartE]) 1);
   212 qed "Part_Int";
   212 qed "Part_Int";
   213 
   213 
   214 (*For inductive definitions*)
   214 (*For inductive definitions*)
   215 goal Sum.thy "Part (A Int {x.P x}) h = (Part A h) Int {x.P x}";
   215 goal Sum.thy "Part (A Int {x.P x}) h = (Part A h) Int {x.P x}";
   216 by (fast_tac (!claset addIs [PartI,equalityI] addSEs [PartE]) 1);
   216 by (fast_tac (!claset addIs [PartI] addSEs [PartE]) 1);
   217 qed "Part_Collect";
   217 qed "Part_Collect";