src/HOL/HOL.thy
changeset 19233 77ca20b0ed77
parent 19174 df9de25e87b3
child 19347 e2e709f3f955
equal deleted inserted replaced
19232:1f5b5dc3f48a 19233:77ca20b0ed77
   196 axclass plus < type
   196 axclass plus < type
   197 axclass minus < type
   197 axclass minus < type
   198 axclass times < type
   198 axclass times < type
   199 axclass inverse < type
   199 axclass inverse < type
   200 
   200 
       
   201 consts
       
   202   plus             :: "['a::plus, 'a]  => 'a"       (infixl "+" 65)
       
   203   uminus           :: "'a::minus => 'a"             ("- _" [81] 80)
       
   204   minus            :: "['a::minus, 'a] => 'a"       (infixl "-" 65)
       
   205   abs              :: "'a::minus => 'a"
       
   206   times            :: "['a::times, 'a] => 'a"       (infixl "*" 70)
       
   207   inverse          :: "'a::inverse => 'a"
       
   208   divide           :: "['a::inverse, 'a] => 'a"     (infixl "'/" 70)
       
   209 
   201 global
   210 global
   202 
   211 
   203 consts
   212 consts
   204   "0"           :: "'a::zero"                       ("0")
   213   "0"           :: "'a::zero"                       ("0")
   205   "1"           :: "'a::one"                        ("1")
   214   "1"           :: "'a::one"                        ("1")
   206   "+"           :: "['a::plus, 'a]  => 'a"          (infixl 65)
       
   207   -             :: "['a::minus, 'a] => 'a"          (infixl 65)
       
   208   uminus        :: "['a::minus] => 'a"              ("- _" [81] 80)
       
   209   *             :: "['a::times, 'a] => 'a"          (infixl 70)
       
   210 
   215 
   211 syntax
   216 syntax
   212   "_index1"  :: index    ("\<^sub>1")
   217   "_index1"  :: index    ("\<^sub>1")
   213 translations
   218 translations
   214   (index) "\<^sub>1" => (index) "\<^bsub>\<struct>\<^esub>"
   219   (index) "\<^sub>1" => (index) "\<^bsub>\<struct>\<^esub>"
   220     fun tr' c = (c, fn show_sorts => fn T => fn ts =>
   225     fun tr' c = (c, fn show_sorts => fn T => fn ts =>
   221       if T = dummyT orelse not (! show_types) andalso can Term.dest_Type T then raise Match
   226       if T = dummyT orelse not (! show_types) andalso can Term.dest_Type T then raise Match
   222       else Syntax.const Syntax.constrainC $ Syntax.const c $ Syntax.term_of_typ show_sorts T);
   227       else Syntax.const Syntax.constrainC $ Syntax.const c $ Syntax.term_of_typ show_sorts T);
   223   in [tr' "0", tr' "1"] end;
   228   in [tr' "0", tr' "1"] end;
   224 *} -- {* show types that are presumably too general *}
   229 *} -- {* show types that are presumably too general *}
   225 
       
   226 
       
   227 consts
       
   228   abs           :: "'a::minus => 'a"
       
   229   inverse       :: "'a::inverse => 'a"
       
   230   divide        :: "['a::inverse, 'a] => 'a"        (infixl "'/" 70)
       
   231 
   230 
   232 syntax (xsymbols)
   231 syntax (xsymbols)
   233   abs :: "'a::minus => 'a"    ("\<bar>_\<bar>")
   232   abs :: "'a::minus => 'a"    ("\<bar>_\<bar>")
   234 syntax (HTML output)
   233 syntax (HTML output)
   235   abs :: "'a::minus => 'a"    ("\<bar>_\<bar>")
   234   abs :: "'a::minus => 'a"    ("\<bar>_\<bar>")
  1406   False "HOL.False"
  1405   False "HOL.False"
  1407   "op =" "HOL.op_eq"
  1406   "op =" "HOL.op_eq"
  1408   "op -->" "HOL.op_implies"
  1407   "op -->" "HOL.op_implies"
  1409   "op &" "HOL.op_and"
  1408   "op &" "HOL.op_and"
  1410   "op |" "HOL.op_or"
  1409   "op |" "HOL.op_or"
  1411   "op +" "HOL.op_add"
       
  1412   "op -" "HOL.op_minus"
       
  1413   "op *" "HOL.op_times"
       
  1414   Not "HOL.not"
  1410   Not "HOL.not"
  1415   uminus "HOL.uminus"
       
  1416   arbitrary "HOL.arbitrary"
  1411   arbitrary "HOL.arbitrary"
  1417 
  1412 
  1418 code_syntax_const
  1413 code_syntax_const
  1419   "op =" (* an intermediate solution for polymorphic equality *)
  1414   "op =" (* an intermediate solution for polymorphic equality *)
  1420     ml (infixl 6 "=")
  1415     ml (infixl 6 "=")