equal
deleted
inserted
replaced
7028 shows "dim(A \<union> B) = dim A + dim B" |
7028 shows "dim(A \<union> B) = dim A + dim B" |
7029 proof%unimportant - |
7029 proof%unimportant - |
7030 have 1: "\<And>x y. \<lbrakk>x \<in> span A; y \<in> B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7030 have 1: "\<And>x y. \<lbrakk>x \<in> span A; y \<in> B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7031 by (erule span_induct [OF _ subspace_hyperplane2]; simp add: assms) |
7031 by (erule span_induct [OF _ subspace_hyperplane2]; simp add: assms) |
7032 have "\<And>x y. \<lbrakk>x \<in> span A; y \<in> span B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7032 have "\<And>x y. \<lbrakk>x \<in> span A; y \<in> span B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7033 apply (erule span_induct [OF _ subspace_hyperplane]) |
7033 using 1 by (simp add: span_induct [OF _ subspace_hyperplane]) |
7034 using 1 by (simp add: ) |
|
7035 then have 0: "\<And>x y. \<lbrakk>x \<in> span A; y \<in> span B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7034 then have 0: "\<And>x y. \<lbrakk>x \<in> span A; y \<in> span B\<rbrakk> \<Longrightarrow> x \<bullet> y = 0" |
7036 by simp |
7035 by simp |
7037 have "dim(A \<union> B) = dim (span (A \<union> B))" |
7036 have "dim(A \<union> B) = dim (span (A \<union> B))" |
7038 by (simp add: dim_span) |
7037 by (simp add: dim_span) |
7039 also have "span (A \<union> B) = ((\<lambda>(a, b). a + b) ` (span A \<times> span B))" |
7038 also have "span (A \<union> B) = ((\<lambda>(a, b). a + b) ` (span A \<times> span B))" |