equal
deleted
inserted
replaced
575 show ?case |
575 show ?case |
576 by metis |
576 by metis |
577 qed |
577 qed |
578 |
578 |
579 |
579 |
580 lemma eq_id_iff[simp]: "(\<forall>x. f x = x) \<longleftrightarrow> f = id" |
580 lemma eq_id_iff: "(\<forall>x. f x = x) \<longleftrightarrow> f = id" |
581 by auto |
581 by auto |
582 |
582 |
583 lemma det_linear_rows_setsum_lemma: |
583 lemma det_linear_rows_setsum_lemma: |
584 assumes fS: "finite S" |
584 assumes fS: "finite S" |
585 and fT: "finite T" |
585 and fT: "finite T" |
590 proof (induct T arbitrary: a c set: finite) |
590 proof (induct T arbitrary: a c set: finite) |
591 case empty |
591 case empty |
592 have th0: "\<And>x y. (\<chi> i. if i \<in> {} then x i else y i) = (\<chi> i. y i)" |
592 have th0: "\<And>x y. (\<chi> i. if i \<in> {} then x i else y i) = (\<chi> i. y i)" |
593 by vector |
593 by vector |
594 from empty.prems show ?case |
594 from empty.prems show ?case |
595 unfolding th0 by simp |
595 unfolding th0 by (simp add: eq_id_iff) |
596 next |
596 next |
597 case (insert z T a c) |
597 case (insert z T a c) |
598 let ?F = "\<lambda>T. {f. (\<forall>i \<in> T. f i \<in> S) \<and> (\<forall>i. i \<notin> T \<longrightarrow> f i = i)}" |
598 let ?F = "\<lambda>T. {f. (\<forall>i \<in> T. f i \<in> S) \<and> (\<forall>i. i \<notin> T \<longrightarrow> f i = i)}" |
599 let ?h = "\<lambda>(y,g) i. if i = z then y else g i" |
599 let ?h = "\<lambda>(y,g) i. if i = z then y else g i" |
600 let ?k = "\<lambda>h. (h(z),(\<lambda>i. if i = z then i else h i))" |
600 let ?k = "\<lambda>h. (h(z),(\<lambda>i. if i = z then i else h i))" |