lemma recfunAC16_mono: "i≤j ==> recfunAC16(f, g, i, a) ⊆ recfunAC16(f, g, j, a)" unfolding recfunAC16_def apply (rule transrec2_mono, auto) done
(* ********************************************************************** *) (* case of limit ordinal *) (* ********************************************************************** *)
lemma lemma3_1: "[∀y<x. ∀z<a. z<y | (∃Y ∈ F(y). f(z)<=Y) ⟶ (∃! Y. Y ∈ F(y) ∧ f(z)<=Y); ∀i j. i≤j ⟶ F(i) ⊆ F(j); j≤i; i<x; z<a; V ∈ F(i); f(z)<=V; W ∈ F(j); f(z)<=W] ==> V = W" apply (erule asm_rl allE impE)+ apply (drule subsetD, assumption, blast) done
lemma lemma3: "[∀y<x. ∀z<a. z<y | (∃Y ∈ F(y). f(z)<=Y) ⟶ (∃! Y. Y ∈ F(y) ∧ f(z)<=Y); ∀i j. i≤j ⟶ F(i) ⊆ F(j); i<x; j<x; z<a; V ∈ F(i); f(z)<=V; W ∈ F(j); f(z)<=W] ==> V = W" apply (rule_tac j=j in Ord_linear_le [OF lt_Ord lt_Ord], assumption+) apply (erule lemma3_1 [symmetric], assumption+) apply (erule lemma3_1, assumption+) done
lemma lemma4: "[∀y<x. F(y) ⊆ X ∧ (∀x<a. x < y | (∃Y ∈ F(y). h(x) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(x) ⊆ Y)); x < a] ==>∀y<x. ∀z<a. z < y | (∃Y ∈ F(y). h(z) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(z) ⊆ Y)" apply (intro oallI impI) apply (drule ospec, assumption, clarify) apply (blast elim!: oallE ) done
lemma lemma5: "[∀y<x. F(y) ⊆ X ∧ (∀x<a. x < y | (∃Y ∈ F(y). h(x) ⊆ Y) ⟶ (∃! Y. Y ∈ F(y) ∧ h(x) ⊆ Y)); x < a; Limit(x); ∀i j. i≤j ⟶ F(i) ⊆ F(j)] ==> (∪x<x. F(x)) ⊆ X ∧ (∀xa<a. xa < x | (∃x ∈∪x<x. F(x). h(xa) ⊆ x) ⟶ (∃! Y. Y ∈ (∪x<x. F(x)) ∧ h(xa) ⊆ Y))" apply (rule conjI) apply (rule subsetI) apply (erule OUN_E) apply (drule ospec, assumption, fast) apply (drule lemma4, assumption) apply (rule oallI) apply (rule impI) apply (erule disjE) apply (frule ospec, erule Limit_has_succ, assumption) apply (drule_tac A = a and x = xa in ospec, assumption) apply (erule impE, rule le_refl [THEN disjI1], erule lt_Ord) apply (blast intro: lemma3 Limit_has_succ) apply (blast intro: lemma3) done
(* ********************************************************************** *) (* case of successor ordinal *) (* ********************************************************************** *)
(* ********************************************************************** *) (* Lemmas needed to prove ex_next_set, which means that for any successor *) (* ordinal there is a set satisfying certain properties *) (* ********************************************************************** *)
lemma ex_subset_eqpoll: "[A≈a; ¬ Finite(a); Ord(a); m ∈ nat]==>∃X ∈ Pow(A). X≈m" apply (rule lepoll_imp_eqpoll_subset [of m A, THEN exE]) apply (rule lepoll_trans, rule leI [THEN le_imp_lepoll]) apply (blast intro: lt_trans2 [OF ltI nat_le_infinite_Ord] Ord_nat) apply (erule eqpoll_sym [THEN eqpoll_imp_lepoll]) apply (fast elim!: eqpoll_sym) done
lemma subset_Un_disjoint: "[A ⊆ B ∪ C; A ∩ C = 0]==> A ⊆ B" by blast
lemma Int_empty: "[X ∈ Pow(A - ∪(B) -C); T ∈ B; F ⊆ T]==> F ∩ X = 0" by blast
(* ********************************************************************** *) (* equipollent subset (and finite) is the whole set *) (* ********************************************************************** *)
lemma subset_imp_eq_lemma: "m ∈ nat ==>∀A B. A ⊆ B ∧ m < A ∧ B < m ⟶ A=B" apply (induct_tac "m") apply (fast dest!: lepoll_0_is_0) apply (intro allI impI) apply (elim conjE) apply (rule succ_lepoll_imp_not_empty [THEN not_emptyE], assumption) apply (frule subsetD [THEN Diff_sing_lepoll], assumption+) apply (frule lepoll_Diff_sing) apply (erule allE impE)+ apply (rule conjI) prefer2apply fast apply fast apply (blast elim: equalityE) done
lemma subset_imp_eq: "[A ⊆ B; m < A; B < m; m ∈ nat]==> A=B" by (blast dest!: subset_imp_eq_lemma)
(* ********************************************************************** *) (* Lemma ex_next_Ord states that for any successor *) (* ordinal there is a number of the set satisfying certain properties *) (* ********************************************************************** *)
(* ********************************************************************** *) (* The main part of the proof: inductive proof of the property of T_gamma *) (* lemma main_induct *) (* ********************************************************************** *)
(* ********************************************************************** *) (* Lemma to simplify the inductive proof *) (* - the desired property is a consequence of the inductive assumption *) (* ********************************************************************** *)
lemma lemma_simp_induct: "[∀b. b<a ⟶ F(b) ⊆ S ∧ (∀x<a. (x<b | (∃Y ∈ F(b). f`x ⊆ Y)) ⟶ (∃! Y. Y ∈ F(b) ∧ f`x ⊆ Y)); f ∈ a->f``(a); Limit(a); ∀i j. i≤j ⟶ F(i) ⊆ F(j)] ==> (∪j<a. F(j)) ⊆ S ∧ (∀x ∈ f``a. ∃! Y. Y ∈ (∪j<a. F(j)) ∧ x ⊆ Y)" apply (rule conjI) apply (rule subsetI) apply (erule OUN_E, blast) apply (rule ballI) apply (erule imageE) apply (drule ltI, erule Limit_is_Ord) apply (drule Limit_has_succ, assumption) apply (frule_tac x1="succ(xa)"in spec [THEN mp], assumption) apply (erule conjE) apply (drule ospec) (** LEVEL 10 **) apply (erule leI [THEN succ_leE]) apply (erule impE) apply (fast elim!: leI [THEN succ_leE, THEN lt_Ord, THEN le_refl]) apply (drule apply_equality, assumption) apply (elim conjE ex1E) (** LEVEL 15 **) apply (rule ex1I, blast) apply (elim conjE OUN_E) apply (erule_tac i="succ(xa)"and j=aa in Ord_linear_le [OF lt_Ord lt_Ord], assumption) prefer2 apply (drule spec [THEN spec, THEN mp, THEN subsetD], assumption+, blast) (** LEVEL 20 **) apply (drule_tac x1=aa in spec [THEN mp], assumption) apply (frule succ_leE) apply (drule spec [THEN spec, THEN mp, THEN subsetD], assumption+, blast) 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.