doc-src/IsarRef/Thy/Spec.thy
changeset 28114 2637fb838f74
parent 28085 914183e229e9
child 28281 132456af0731
equal deleted inserted replaced
28113:f6e38928b77c 28114:2637fb838f74
   134 
   134 
   135 section {* Basic specification elements *}
   135 section {* Basic specification elements *}
   136 
   136 
   137 text {*
   137 text {*
   138   \begin{matharray}{rcll}
   138   \begin{matharray}{rcll}
   139     @{command_def "axiomatization"} & : & \isarkeep{local{\dsh}theory} & (axiomatic!)\\
   139     @{command_def "axiomatization"} & : & \isarkeep{theory} & (axiomatic!)\\
   140     @{command_def "definition"} & : & \isarkeep{local{\dsh}theory} \\
   140     @{command_def "definition"} & : & \isarkeep{local{\dsh}theory} \\
   141     @{attribute_def "defn"} & : & \isaratt \\
   141     @{attribute_def "defn"} & : & \isaratt \\
   142     @{command_def "abbreviation"} & : & \isarkeep{local{\dsh}theory} \\
   142     @{command_def "abbreviation"} & : & \isarkeep{local{\dsh}theory} \\
   143     @{command_def "print_abbrevs"}@{text "\<^sup>*"} & : & \isarkeep{theory~|~proof} \\
   143     @{command_def "print_abbrevs"}@{text "\<^sup>*"} & : & \isarkeep{theory~|~proof} \\
   144     @{command_def "notation"} & : & \isarkeep{local{\dsh}theory} \\
   144     @{command_def "notation"} & : & \isarkeep{local{\dsh}theory} \\
   176   simultaneously and states axiomatic properties for these.  The
   176   simultaneously and states axiomatic properties for these.  The
   177   constants are marked as being specified once and for all, which
   177   constants are marked as being specified once and for all, which
   178   prevents additional specifications being issued later on.
   178   prevents additional specifications being issued later on.
   179   
   179   
   180   Note that axiomatic specifications are only appropriate when
   180   Note that axiomatic specifications are only appropriate when
   181   declaring a new logical system.  Normal applications should only use
   181   declaring a new logical system; axiomatic specifications are
   182   definitional mechanisms!
   182   restricted to global theory contexts.  Normal applications should
       
   183   only use definitional mechanisms!
   183 
   184 
   184   \item [@{command "definition"}~@{text "c \<WHERE> eq"}] produces an
   185   \item [@{command "definition"}~@{text "c \<WHERE> eq"}] produces an
   185   internal definition @{text "c \<equiv> t"} according to the specification
   186   internal definition @{text "c \<equiv> t"} according to the specification
   186   given as @{text eq}, which is then turned into a proven fact.  The
   187   given as @{text eq}, which is then turned into a proven fact.  The
   187   given proposition may deviate from internal meta-level equality
   188   given proposition may deviate from internal meta-level equality