(* used only in Hartog.ML *) lemma ordertype_Int: "well_ord(A,r) ==> ordertype(A, r ∩ A*A) = ordertype(A,r)" apply (rule_tac P = "λa. ordertype (A,a) =ordertype (A,r) "in rvimage_id [THEN subst]) apply (erule id_bij [THEN bij_ordertype_vimage]) done
lemma lam_sing_bij: "(λx ∈ A. {x}) ∈ bij(A, {{x}. x ∈ A})" apply (rule_tac d = "λz. THE x. z={x}"in lam_bijective) apply (auto simp add: the_equality) done
lemma inj_strengthen_type: "[f ∈ inj(A, B); ∧a. a ∈ A ==> f`a ∈ C]==> f ∈ inj(A,C)" by (unfold inj_def, blast intro: Pi_type)
(* ********************************************************************** *) (* Another elimination rule for \<exists>! *) (* ********************************************************************** *)
lemma ex1_two_eq: "[∃! x. P(x); P(x); P(y)]==> x=y" by blast
(* ********************************************************************** *) (* Lemmas used in the proofs like WO? \<Longrightarrow> AC? *) (* ********************************************************************** *)
lemma first_in_B: "[well_ord(∪(A),r); 0 ∉ A; B ∈ A]==> (THE b. first(b,B,r)) ∈ B" by (blast dest!: well_ord_imp_ex1_first
[THEN theI, THEN first_def [THEN def_imp_iff, THEN iffD1]])
lemma ex_choice_fun: "[well_ord(∪(A), R); 0 ∉ A]==>∃f. f ∈ (∏X ∈ A. X)" by (fast elim!: first_in_B intro!: lam_type)
lemma ex_choice_fun_Pow: "well_ord(A, R) ==>∃f. f ∈ (∏X ∈ Pow(A)-{0}. X)" by (fast elim!: well_ord_subset [THEN ex_choice_fun])
(* ********************************************************************** *) (* Lemmas needed to state when a finite relation is a function. *) (* The criteria are cardinalities of the relation and its domain. *) (* Used in WO6WO1.ML *) (* ********************************************************************** *)
(*Using AC we could trivially prove, for all u, domain(u) \<lesssim> u*) lemma lepoll_m_imp_domain_lepoll_m: "[m ∈ nat; u < m]==> domain(u) < m" unfolding lepoll_def apply (erule exE) apply (rule_tac x = "λx ∈ domain(u). μ i. ∃y. ⟨x,y⟩∈ u ∧ f`⟨x,y⟩ = i" in exI) apply (rule_tac d = "λy. fst (converse(f) ` y) "in lam_injective) apply (fast intro: LeastI2 nat_into_Ord [THEN Ord_in_Ord]
inj_is_fun [THEN apply_type]) apply (erule domainE) apply (frule inj_is_fun [THEN apply_type], assumption) apply (rule LeastI2) apply (auto elim!: nat_into_Ord [THEN Ord_in_Ord]) done
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.