src/HOL/Ring_and_Field.thy
changeset 14770 fe9504ba63d5
parent 14754 a080eeeaec14
child 14940 b9ab8babd8b3
equal deleted inserted replaced
14769:b698d0b243dc 14770:fe9504ba63d5
     1 (*  Title:   HOL/Ring_and_Field.thy
     1 (*  Title:   HOL/Ring_and_Field.thy
     2     ID:      $Id$
     2     ID:      $Id$
     3     Author:  Gertrud Bauer and Markus Wenzel, TU Muenchen
     3     Author:  Gertrud Bauer, Steven Obua, Lawrence C Paulson and Markus Wenzel
     4              Lawrence C Paulson, University of Cambridge
       
     5              Revised and splitted into Ring_and_Field.thy and Group.thy 
       
     6              by Steven Obua, TU Muenchen, in May 2004
       
     7     License: GPL (GNU GENERAL PUBLIC LICENSE)
     4     License: GPL (GNU GENERAL PUBLIC LICENSE)
     8 *)
     5 *)
     9 
     6 
    10 header {* (Ordered) Rings and Fields *}
     7 header {* (Ordered) Rings and Fields *}
    11 
     8 
    17   \item \emph{Lattice Theory} by Garret Birkhoff, American Mathematical Society 1979 
    14   \item \emph{Lattice Theory} by Garret Birkhoff, American Mathematical Society 1979 
    18   \item \emph{Partially Ordered Algebraic Systems}, Pergamon Press 1963
    15   \item \emph{Partially Ordered Algebraic Systems}, Pergamon Press 1963
    19   \end{itemize}
    16   \end{itemize}
    20   Most of the used notions can also be looked up in 
    17   Most of the used notions can also be looked up in 
    21   \begin{itemize}
    18   \begin{itemize}
    22   \item \emph{www.mathworld.com} by Eric Weisstein et. al.
    19   \item \url{http://www.mathworld.com} by Eric Weisstein et. al.
    23   \item \emph{Algebra I} by van der Waerden, Springer.
    20   \item \emph{Algebra I} by van der Waerden, Springer.
    24   \end{itemize}
    21   \end{itemize}
    25 *}
    22 *}
    26 
    23 
    27 axclass semiring \<subseteq> ab_semigroup_add, semigroup_mult
    24 axclass semiring \<subseteq> ab_semigroup_add, semigroup_mult
   413 
   410 
   414 lemma not_one_less_zero [simp]: "~ (1::'a::ordered_semidom) < 0"
   411 lemma not_one_less_zero [simp]: "~ (1::'a::ordered_semidom) < 0"
   415 by (simp add: linorder_not_less) 
   412 by (simp add: linorder_not_less) 
   416 
   413 
   417 subsection{*More Monotonicity*}
   414 subsection{*More Monotonicity*}
   418 
       
   419 lemma mult_left_mono_neg:
       
   420      "[|b \<le> a; c \<le> 0|] ==> c * a \<le> c * (b::'a::pordered_ring)"
       
   421 apply (drule mult_left_mono [of _ _ "-c"]) 
       
   422 apply (simp_all add: minus_mult_left [symmetric]) 
       
   423 done
       
   424 
       
   425 lemma mult_right_mono_neg:
       
   426      "[|b \<le> a; c \<le> 0|] ==> a * c \<le> b * (c::'a::pordered_ring)"
       
   427 apply (drule mult_right_mono [of _ _ "-c"]) 
       
   428 apply (simp_all add: minus_mult_right [symmetric]) 
       
   429 done  
       
   430 
   415 
   431 text{*Strict monotonicity in both arguments*}
   416 text{*Strict monotonicity in both arguments*}
   432 lemma mult_strict_mono:
   417 lemma mult_strict_mono:
   433      "[|a<b; c<d; 0<b; 0\<le>c|] ==> a * c < b * (d::'a::ordered_semiring_strict)"
   418      "[|a<b; c<d; 0<b; 0\<le>c|] ==> a * c < b * (d::'a::ordered_semiring_strict)"
   434 apply (case_tac "c=0")
   419 apply (case_tac "c=0")
   541   left_distrib right_distrib left_diff_distrib right_diff_distrib
   526   left_distrib right_distrib left_diff_distrib right_diff_distrib
   542   add_ac
   527   add_ac
   543   add_diff_eq diff_add_eq diff_diff_eq diff_diff_eq2
   528   add_diff_eq diff_add_eq diff_diff_eq diff_diff_eq2
   544   diff_eq_eq eq_diff_eq
   529   diff_eq_eq eq_diff_eq
   545     
   530     
   546 thm ring_eq_simps
   531 
   547 subsection {* Fields *}
   532 subsection {* Fields *}
   548 
   533 
   549 lemma right_inverse [simp]:
   534 lemma right_inverse [simp]:
   550       assumes not0: "a \<noteq> 0" shows "a * inverse (a::'a::field) = 1"
   535       assumes not0: "a \<noteq> 0" shows "a * inverse (a::'a::field) = 1"
   551 proof -
   536 proof -