equal
deleted
inserted
replaced
279 qed "trans_trancl"; |
279 qed "trans_trancl"; |
280 |
280 |
281 bind_thm ("trancl_trans", trans_trancl RS transD); |
281 bind_thm ("trancl_trans", trans_trancl RS transD); |
282 |
282 |
283 Goalw [trancl_def] |
283 Goalw [trancl_def] |
284 "!!r. [| (x,y):r^*; (y,z):r^+ |] ==> (x,z):r^+"; |
284 "[| (x,y):r^*; (y,z):r^+ |] ==> (x,z):r^+"; |
285 by (blast_tac (claset() addIs [rtrancl_trans,r_into_rtrancl]) 1); |
285 by (blast_tac (claset() addIs [rtrancl_trans,r_into_rtrancl]) 1); |
286 qed "rtrancl_trancl_trancl"; |
286 qed "rtrancl_trancl_trancl"; |
287 |
287 |
288 val prems = goal Trancl.thy |
288 val prems = goal Trancl.thy |
289 "[| (a,b) : r; (b,c) : r^+ |] ==> (a,c) : r^+"; |
289 "[| (a,b) : r; (b,c) : r^+ |] ==> (a,c) : r^+"; |
327 by (rtac (major RS rtrancl_induct) 1); |
327 by (rtac (major RS rtrancl_induct) 1); |
328 by (rtac (refl RS disjI1) 1); |
328 by (rtac (refl RS disjI1) 1); |
329 by (Blast_tac 1); |
329 by (Blast_tac 1); |
330 val lemma = result(); |
330 val lemma = result(); |
331 |
331 |
332 Goalw [trancl_def] |
332 Goalw [trancl_def] "r <= A Times A ==> r^+ <= A Times A"; |
333 "!!r. r <= A Times A ==> r^+ <= A Times A"; |
|
334 by (blast_tac (claset() addSDs [lemma]) 1); |
333 by (blast_tac (claset() addSDs [lemma]) 1); |
335 qed "trancl_subset_Sigma"; |
334 qed "trancl_subset_Sigma"; |
336 |
335 |
337 |
336 |
338 Goal "(r^+)^= = r^*"; |
337 Goal "(r^+)^= = r^*"; |