src/HOL/Trancl.ML
changeset 5148 74919e8f221c
parent 5143 b94cd208f073
child 5255 e29e77ad7b91
equal deleted inserted replaced
5147:825877190618 5148:74919e8f221c
   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^*";