src/HOL/Hahn_Banach/Vector_Space.thy
changeset 57512 cc97b347b301
parent 55018 2a526bd279ed
child 58744 c434e37f290e
equal deleted inserted replaced
57511:de51a86fc903 57512:cc97b347b301
   207   assumes x: "x \<in> V" and y: "y \<in> V" and z: "z \<in> V"
   207   assumes x: "x \<in> V" and y: "y \<in> V" and z: "z \<in> V"
   208   shows "(x + y = x + z) = (y = z)"
   208   shows "(x + y = x + z) = (y = z)"
   209 proof
   209 proof
   210   from y have "y = 0 + y" by simp
   210   from y have "y = 0 + y" by simp
   211   also from x y have "\<dots> = (- x + x) + y" by simp
   211   also from x y have "\<dots> = (- x + x) + y" by simp
   212   also from x y have "\<dots> = - x + (x + y)" by (simp add: add_assoc)
   212   also from x y have "\<dots> = - x + (x + y)" by (simp add: add.assoc)
   213   also assume "x + y = x + z"
   213   also assume "x + y = x + z"
   214   also from x z have "- x + (x + z) = - x + x + z" by (simp add: add_assoc)
   214   also from x z have "- x + (x + z) = - x + x + z" by (simp add: add.assoc)
   215   also from x z have "\<dots> = z" by simp
   215   also from x z have "\<dots> = z" by simp
   216   finally show "y = z" .
   216   finally show "y = z" .
   217 next
   217 next
   218   assume "y = z"
   218   assume "y = z"
   219   then show "x + y = x + z" by (simp only:)
   219   then show "x + y = x + z" by (simp only:)
   226   "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> x' \<in> V \<Longrightarrow> y' \<in> V \<Longrightarrow> z \<in> V
   226   "x \<in> V \<Longrightarrow> y \<in> V \<Longrightarrow> x' \<in> V \<Longrightarrow> y' \<in> V \<Longrightarrow> z \<in> V
   227     \<Longrightarrow> x + y = x' + y' \<Longrightarrow> x + (y + z) = x' + (y' + z)"
   227     \<Longrightarrow> x + y = x' + y' \<Longrightarrow> x + (y + z) = x' + (y' + z)"
   228   by (simp only: add_assoc [symmetric])
   228   by (simp only: add_assoc [symmetric])
   229 
   229 
   230 lemma mult_left_commute: "x \<in> V \<Longrightarrow> a \<cdot> b \<cdot> x = b \<cdot> a \<cdot> x"
   230 lemma mult_left_commute: "x \<in> V \<Longrightarrow> a \<cdot> b \<cdot> x = b \<cdot> a \<cdot> x"
   231   by (simp add: mult_commute mult_assoc2)
   231   by (simp add: mult.commute mult_assoc2)
   232 
   232 
   233 lemma mult_zero_uniq:
   233 lemma mult_zero_uniq:
   234   assumes x: "x \<in> V"  "x \<noteq> 0" and ax: "a \<cdot> x = 0"
   234   assumes x: "x \<in> V"  "x \<noteq> 0" and ax: "a \<cdot> x = 0"
   235   shows "a = 0"
   235   shows "a = 0"
   236 proof (rule classical)
   236 proof (rule classical)