src/HOL/List.thy
changeset 63834 6a757f36997e
parent 63720 bcf2123d059a
child 63901 4ce989e962e0
equal deleted inserted replaced
63833:4aaeb9427c96 63834:6a757f36997e
  4659   have inj_Cons: "\<And>A. inj_on (\<lambda>(xs, n). n # xs) A"  by (rule inj_onI) auto
  4659   have inj_Cons: "\<And>A. inj_on (\<lambda>(xs, n). n # xs) A"  by (rule inj_onI) auto
  4660 
  4660 
  4661   from Suc have "k < card A" by simp
  4661   from Suc have "k < card A" by simp
  4662   moreover have "finite A" using assms by (simp add: card_ge_0_finite)
  4662   moreover have "finite A" using assms by (simp add: card_ge_0_finite)
  4663   moreover have "finite {xs. ?k_list k xs}"
  4663   moreover have "finite {xs. ?k_list k xs}"
  4664     using finite_lists_length_eq[OF \<open>finite A\<close>, of k]
  4664     by (rule finite_subset) (use finite_lists_length_eq[OF \<open>finite A\<close>, of k] in auto)
  4665     by - (rule finite_subset, auto)
       
  4666   moreover have "\<And>i j. i \<noteq> j \<longrightarrow> {i} \<times> (A - set i) \<inter> {j} \<times> (A - set j) = {}"
  4665   moreover have "\<And>i j. i \<noteq> j \<longrightarrow> {i} \<times> (A - set i) \<inter> {j} \<times> (A - set j) = {}"
  4667     by auto
  4666     by auto
  4668   moreover have "\<And>i. i \<in>Collect (?k_list k) \<Longrightarrow> card (A - set i) = card A - k"
  4667   moreover have "\<And>i. i \<in>Collect (?k_list k) \<Longrightarrow> card (A - set i) = card A - k"
  4669     by (simp add: card_Diff_subset distinct_card)
  4668     by (simp add: card_Diff_subset distinct_card)
  4670   moreover have "{xs. ?k_list (Suc k) xs} =
  4669   moreover have "{xs. ?k_list (Suc k) xs} =