src/HOL/HOL.thy
changeset 12338 de0f4a63baa5
parent 12281 3bd113b8f7a6
child 12354 5f5ee25513c5
equal deleted inserted replaced
12337:7c6a970f0808 12338:de0f4a63baa5
    11 
    11 
    12 subsection {* Primitive logic *}
    12 subsection {* Primitive logic *}
    13 
    13 
    14 subsubsection {* Core syntax *}
    14 subsubsection {* Core syntax *}
    15 
    15 
       
    16 classes type < logic
       
    17 defaultsort type
       
    18 
    16 global
    19 global
    17 
    20 
    18 classes "term" < logic
       
    19 defaultsort "term"
       
    20 
       
    21 typedecl bool
    21 typedecl bool
    22 
    22 
    23 arities
    23 arities
    24   bool :: "term"
    24   bool :: type
    25   fun :: ("term", "term") "term"
    25   fun :: (type, type) type
    26 
    26 
    27 judgment
    27 judgment
    28   Trueprop      :: "bool => prop"                   ("(_)" 5)
    28   Trueprop      :: "bool => prop"                   ("(_)" 5)
    29 
    29 
    30 consts
    30 consts
   143     definition syntactically *}
   143     definition syntactically *}
   144 
   144 
   145 
   145 
   146 subsubsection {* Generic algebraic operations *}
   146 subsubsection {* Generic algebraic operations *}
   147 
   147 
   148 axclass zero < "term"
   148 axclass zero < type
   149 axclass one < "term"
   149 axclass one < type
   150 axclass plus < "term"
   150 axclass plus < type
   151 axclass minus < "term"
   151 axclass minus < type
   152 axclass times < "term"
   152 axclass times < type
   153 axclass inverse < "term"
   153 axclass inverse < type
   154 
   154 
   155 global
   155 global
   156 
   156 
   157 consts
   157 consts
   158   "0"           :: "'a::zero"                       ("0")
   158   "0"           :: "'a::zero"                       ("0")
   526 
   526 
   527 
   527 
   528 subsection {* Order signatures and orders *}
   528 subsection {* Order signatures and orders *}
   529 
   529 
   530 axclass
   530 axclass
   531   ord < "term"
   531   ord < type
   532 
   532 
   533 syntax
   533 syntax
   534   "op <"        :: "['a::ord, 'a] => bool"             ("op <")
   534   "op <"        :: "['a::ord, 'a] => bool"             ("op <")
   535   "op <="       :: "['a::ord, 'a] => bool"             ("op <=")
   535   "op <="       :: "['a::ord, 'a] => bool"             ("op <=")
   536 
   536