diff -r 09aee7f5b447 -r 308baf6b450a src/HOL/Library/Ramsey.thy --- a/src/HOL/Library/Ramsey.thy Mon Dec 09 16:13:36 2019 +0000 +++ b/src/HOL/Library/Ramsey.thy Mon Dec 09 16:37:26 2019 +0000 @@ -602,20 +602,20 @@ qed -subsubsection \Partitions of a Set\ +subsubsection \Partition functions\ -definition part :: "nat \ nat \ 'a set \ ('a set \ nat) \ bool" +definition part_fn :: "nat \ nat \ 'a set \ ('a set \ nat) \ bool" \ \the function \<^term>\f\ partitions the \<^term>\r\-subsets of the typically infinite set \<^term>\Y\ into \<^term>\s\ distinct categories.\ - where "part r s Y f \ (\X \ nsets Y r. f X < s)" + where "part_fn r s Y f \ (f \ nsets Y r \ {..For induction, we decrease the value of \<^term>\r\ in partitions.\ -lemma part_Suc_imp_part: - "\infinite Y; part (Suc r) s Y f; y \ Y\ \ part r s (Y - {y}) (\u. f (insert y u))" - by (simp add: part_def nsets_def subset_Diff_insert) +lemma part_fn_Suc_imp_part_fn: + "\infinite Y; part_fn (Suc r) s Y f; y \ Y\ \ part_fn r s (Y - {y}) (\u. f (insert y u))" + by (simp add: part_fn_def nsets_def Pi_def subset_Diff_insert) -lemma part_subset: "part r s YY f \ Y \ YY \ part r s Y f" - unfolding part_def nsets_def by blast +lemma part_fn_subset: "part_fn r s YY f \ Y \ YY \ part_fn r s Y f" + unfolding part_fn_def nsets_def by blast subsection \Ramsey's Theorem: Infinitary Version\ @@ -624,13 +624,13 @@ fixes s r :: nat and YY :: "'a set" and f :: "'a set \ nat" - assumes "infinite YY" "part r s YY f" + assumes "infinite YY" "part_fn r s YY f" shows "\Y' t'. Y' \ YY \ infinite Y' \ t' < s \ (\X. X \ Y' \ finite X \ card X = r \ f X = t')" using assms proof (induct r arbitrary: YY f) case 0 then show ?case - by (auto simp add: part_def card_eq_0_iff cong: conj_cong) + by (auto simp add: part_fn_def card_eq_0_iff cong: conj_cong) next case (Suc r) show ?case @@ -642,8 +642,8 @@ y \ YY \ y \ Y \ Y \ YY \ infinite Y \ t < s \ (\X. X\Y \ finite X \ card X = r \ (f \ insert y) X = t)" from Suc.prems have infYY': "infinite (YY - {yy})" by auto - from Suc.prems have partf': "part r s (YY - {yy}) (f \ insert yy)" - by (simp add: o_def part_Suc_imp_part yy) + from Suc.prems have partf': "part_fn r s (YY - {yy}) (f \ insert yy)" + by (simp add: o_def part_fn_Suc_imp_part_fn yy) have transr: "trans ?ramr" by (force simp add: trans_def) from Suc.hyps [OF infYY' partf'] obtain Y0 and t0 where "Y0 \ YY - {yy}" "infinite Y0" "t0 < s" @@ -656,8 +656,8 @@ with x obtain yx' where yx': "yx' \ Yx" by (blast dest: infinite_imp_nonempty) from fields x have infYx': "infinite (Yx - {yx'})" by auto - with fields x yx' Suc.prems have partfx': "part r s (Yx - {yx'}) (f \ insert yx')" - by (simp add: o_def part_Suc_imp_part part_subset [where YY=YY and Y=Yx]) + with fields x yx' Suc.prems have partfx': "part_fn r s (Yx - {yx'}) (f \ insert yx')" + by (simp add: o_def part_fn_Suc_imp_part_fn part_fn_subset [where YY=YY and Y=Yx]) from Suc.hyps [OF infYx' partfx'] obtain Y' and t' where Y': "Y' \ Yx - {yx'}" "infinite Y'" "t' < s" "X \ Y' \ finite X \ card X = r \ (f \ insert yx') X = t'" for X @@ -750,7 +750,7 @@ \X. X \ Z \ finite X \ card X = r \ f X < s\ \ \Y t. Y \ Z \ infinite Y \ t < s \ (\X. X \ Y \ finite X \ card X = r \ f X = t)" - by (blast intro: Ramsey_induction [unfolded part_def nsets_def]) + by (blast intro: Ramsey_induction [unfolded part_fn_def nsets_def]) corollary Ramsey2: