equal
deleted
inserted
replaced
1287 then have ufvf: "cbox (uf X) (vf X) = X" |
1287 then have ufvf: "cbox (uf X) (vf X) = X" |
1288 using uvz by blast |
1288 using uvz by blast |
1289 have "prj1 (vf X - uf X) ^ DIM('M) = (\<Prod>i::'M \<in> Basis. prj1 (vf X - uf X))" |
1289 have "prj1 (vf X - uf X) ^ DIM('M) = (\<Prod>i::'M \<in> Basis. prj1 (vf X - uf X))" |
1290 by (rule prod_constant [symmetric]) |
1290 by (rule prod_constant [symmetric]) |
1291 also have "\<dots> = (\<Prod>i\<in>Basis. vf X \<bullet> i - uf X \<bullet> i)" |
1291 also have "\<dots> = (\<Prod>i\<in>Basis. vf X \<bullet> i - uf X \<bullet> i)" |
1292 using prj1_idem [OF \<open>X \<in> \<D>\<close>] by (auto simp: algebra_simps intro: prod.cong) |
1292 apply (rule prod.cong [OF refl]) |
|
1293 by (simp add: \<open>X \<in> \<D>\<close> inner_diff_left prj1_idem) |
1293 finally have prj1_eq: "prj1 (vf X - uf X) ^ DIM('M) = (\<Prod>i\<in>Basis. vf X \<bullet> i - uf X \<bullet> i)" . |
1294 finally have prj1_eq: "prj1 (vf X - uf X) ^ DIM('M) = (\<Prod>i\<in>Basis. vf X \<bullet> i - uf X \<bullet> i)" . |
1294 have "uf X \<in> cbox (uf X) (vf X)" "vf X \<in> cbox (uf X) (vf X)" |
1295 have "uf X \<in> cbox (uf X) (vf X)" "vf X \<in> cbox (uf X) (vf X)" |
1295 using uvz [OF \<open>X \<in> \<D>\<close>] by (force simp: mem_box)+ |
1296 using uvz [OF \<open>X \<in> \<D>\<close>] by (force simp: mem_box)+ |
1296 moreover have "cbox (uf X) (vf X) \<subseteq> ball (zf X) (1/2)" |
1297 moreover have "cbox (uf X) (vf X) \<subseteq> ball (zf X) (1/2)" |
1297 by (meson R12 order_trans subset_ball uvz [OF \<open>X \<in> \<D>\<close>]) |
1298 by (meson R12 order_trans subset_ball uvz [OF \<open>X \<in> \<D>\<close>]) |