src/Doc/IsarImplementation/Logic.thy
changeset 53071 1958a5e65ea5
parent 53015 a1119cf551e8
child 53200 09e8c42dbb06
equal deleted inserted replaced
53061:417cb0f713e0 53071:1958a5e65ea5
   879   uniformly, similar to a type-theoretic framework.
   879   uniformly, similar to a type-theoretic framework.
   880 
   880 
   881   The @{text "TYPE"} constructor is the canonical representative of
   881   The @{text "TYPE"} constructor is the canonical representative of
   882   the unspecified type @{text "\<alpha> itself"}; it essentially injects the
   882   the unspecified type @{text "\<alpha> itself"}; it essentially injects the
   883   language of types into that of terms.  There is specific notation
   883   language of types into that of terms.  There is specific notation
   884   @{text "TYPE(\<tau>)"} for @{text "TYPE\<^bsub>\<tau>
   884   @{text "TYPE(\<tau>)"} for @{text "TYPE\<^bsub>\<tau> itself\<^esub>"}.
   885  itself\<^esub>"}.
       
   886   Although being devoid of any particular meaning, the term @{text
   885   Although being devoid of any particular meaning, the term @{text
   887   "TYPE(\<tau>)"} accounts for the type @{text "\<tau>"} within the term
   886   "TYPE(\<tau>)"} accounts for the type @{text "\<tau>"} within the term
   888   language.  In particular, @{text "TYPE(\<alpha>)"} may be used as formal
   887   language.  In particular, @{text "TYPE(\<alpha>)"} may be used as formal
   889   argument in primitive definitions, in order to circumvent hidden
   888   argument in primitive definitions, in order to circumvent hidden
   890   polymorphism (cf.\ \secref{sec:terms}).  For example, @{text "c
   889   polymorphism (cf.\ \secref{sec:terms}).  For example, @{text "c