src/HOL/Multivariate_Analysis/Determinants.thy
changeset 62408 86f27b264d3d
parent 61286 dcf7be51bf5d
child 62843 313d3b697c9a
equal deleted inserted replaced
62407:8383b126b0a9 62408:86f27b264d3d
   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))"