lemma Collect_split_eq: "{p. P (case_prod f p)} = {(a,b). P (f a b)}" by auto
lemma subset_insertD: "A ⊆ insert x B ==> A ⊆ B ∧ x ∉ A ∨ (∃B'. A = insert x B' ∧B' ⊆ B)" apply (case_tac "x ∈ A") apply (rule disjI2) apply (rule_tac x = "A - {x}"in exI) apply fast+ done
(* irrefl_tranclI in Transitive_Closure.thy is more general *) lemma irrefl_tranclI': "r-1∩ r🪙+ = {} ==>∀x. (x, x) ∉ r🪙+" by (blast elim: tranclE dest: trancl_into_rtrancl)
lemma rtrancl_into_trancl3: "[(a, b) ∈ r🪙*; a ≠ b]==> (a, b) ∈ r🪙+" apply (drule rtranclD) apply auto done
lemma rtrancl_into_rtrancl2: "[(a, b) ∈ r; (b, c) ∈ r🪙*]==> (a, c) ∈ r🪙*" by (auto intro: rtrancl_trans)
lemma triangle_lemma: assumes unique: "∧a b c. [(a,b)∈r; (a,c)∈r]==> b = c" and ax: "(a,x)∈r🪙*"and ay: "(a,y)∈r🪙*" shows"(x,y)∈r🪙* ∨ (y,x)∈r🪙*" using ax ay proof (induct rule: converse_rtrancl_induct) assume"(x,y)∈r🪙*" thenshow ?thesis by blast next fix a v assume a_v_r: "(a, v) ∈ r" and v_x_rt: "(v, x) ∈ r🪙*" and a_y_rt: "(a, y) ∈ r🪙*" and hyp: "(v, y) ∈ r🪙* ==> (x, y) ∈ r🪙* ∨ (y, x) ∈ r🪙*" from a_y_rt show"(x, y) ∈ r🪙* ∨ (y, x) ∈ r🪙*" proof (cases rule: converse_rtranclE) assume"a = y" with a_v_r v_x_rt have"(y,x) ∈ r🪙*" by (auto intro: rtrancl_trans) thenshow ?thesis by blast next fix w assume a_w_r: "(a, w) ∈ r" and w_y_rt: "(w, y) ∈ r🪙*" from a_v_r a_w_r unique have"v=w"by auto with w_y_rt hyp show ?thesis by blast qed qed
lemma Ball_weaken: "[Ball s P; ∧ x. P x⟶Q x]==>Ball s Q" by auto
lemma finite_SetCompr2: "finite {f y x |x y. P y}"if"finite (Collect P)" "∀y. P y ⟶ finite (range (f y))" proof - have"{f y x |x y. P y} = (∪y∈Collect P. range (f y))" by auto with that show ?thesis by simp qed
lemma list_all2_trans: "∀a b c. P1 a b ⟶ P2 b c ⟶ P3 a c ==> ∀xs2 xs3. list_all2 P1 xs1 xs2 ⟶ list_all2 P2 xs2 xs3 ⟶ list_all2 P3 xs1 xs3" apply (induct_tac xs1) apply simp apply (rule allI) apply (induct_tac xs2) apply simp apply (rule allI) apply (induct_tac xs3) apply auto done
lemma uniqueD: "unique l ==> (x, y) ∈ set l ==> (x', y') ∈ set l ==> x = x' ==> y = y'" unfolding unique_def o_def by (induct l) (auto dest: fst_in_set_lemma)
lemma unique_Nil [simp]: "unique []" by (simp add: unique_def)
lemma unique_Cons [simp]: "unique ((x,y)#l) = (unique l ∧ (∀y. (x,y) ∉ set l))" by (auto simp: unique_def dest: fst_in_set_lemma)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.