src/HOL/Transitive_Closure.thy
changeset 62957 a9c40cf517d1
parent 62343 24106dc44def
child 63404 a95e7432d86c
equal deleted inserted replaced
62956:bb3986d95562 62957:a9c40cf517d1
   532   by (blast elim: tranclE intro: trancl_into_rtrancl)
   532   by (blast elim: tranclE intro: trancl_into_rtrancl)
   533 
   533 
   534 lemma irrefl_tranclI: "r^-1 \<inter> r^* = {} ==> (x, x) \<notin> r^+"
   534 lemma irrefl_tranclI: "r^-1 \<inter> r^* = {} ==> (x, x) \<notin> r^+"
   535   by (blast elim: tranclE dest: trancl_into_rtrancl)
   535   by (blast elim: tranclE dest: trancl_into_rtrancl)
   536 
   536 
   537 lemma irrefl_trancl_rD: "!!X. ALL x. (x, x) \<notin> r^+ ==> (x, y) \<in> r ==> x \<noteq> y"
   537 lemma irrefl_trancl_rD: "\<forall>x. (x, x) \<notin> r^+ \<Longrightarrow> (x, y) \<in> r \<Longrightarrow> x \<noteq> y"
   538   by (blast dest: r_into_trancl)
   538   by (blast dest: r_into_trancl)
   539 
   539 
   540 lemma trancl_subset_Sigma_aux:
   540 lemma trancl_subset_Sigma_aux:
   541     "(a, b) \<in> r^* ==> r \<subseteq> A \<times> A ==> a = b \<or> a \<in> A"
   541     "(a, b) \<in> r^* ==> r \<subseteq> A \<times> A ==> a = b \<or> a \<in> A"
   542   by (induct rule: rtrancl_induct) auto
   542   by (induct rule: rtrancl_induct) auto