equal
deleted
inserted
replaced
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"; |