src/Doc/Implementation/Logic.thy
changeset 61572 ddb3ac3fef45
parent 61503 28e788ca2c5d
child 61656 cfabbc083977
equal deleted inserted replaced
61571:9c50eb3bff50 61572:ddb3ac3fef45
    17   \<open>\<Longrightarrow>\<close> for implication (proofs depending on proofs).
    17   \<open>\<Longrightarrow>\<close> for implication (proofs depending on proofs).
    18 
    18 
    19   Derivations are relative to a logical theory, which declares type
    19   Derivations are relative to a logical theory, which declares type
    20   constructors, constants, and axioms.  Theory declarations support
    20   constructors, constants, and axioms.  Theory declarations support
    21   schematic polymorphism, which is strictly speaking outside the
    21   schematic polymorphism, which is strictly speaking outside the
    22   logic.\footnote{This is the deeper logical reason, why the theory
    22   logic.\<^footnote>\<open>This is the deeper logical reason, why the theory
    23   context \<open>\<Theta>\<close> is separate from the proof context \<open>\<Gamma>\<close>
    23   context \<open>\<Theta>\<close> is separate from the proof context \<open>\<Gamma>\<close>
    24   of the core calculus: type constructors, term constants, and facts
    24   of the core calculus: type constructors, term constants, and facts
    25   (proof constants) may involve arbitrary type schemes, but the type
    25   (proof constants) may involve arbitrary type schemes, but the type
    26   of a locally fixed term parameter is also fixed!}
    26   of a locally fixed term parameter is also fixed!\<close>
    27 \<close>
    27 \<close>
    28 
    28 
    29 
    29 
    30 section \<open>Types \label{sec:types}\<close>
    30 section \<open>Types \label{sec:types}\<close>
    31 
    31 
   529 
   529 
   530   Observe that locally fixed parameters (as in \<open>\<And>\<hyphen>intro\<close>) need not be recorded in the hypotheses, because
   530   Observe that locally fixed parameters (as in \<open>\<And>\<hyphen>intro\<close>) need not be recorded in the hypotheses, because
   531   the simple syntactic types of Pure are always inhabitable.
   531   the simple syntactic types of Pure are always inhabitable.
   532   ``Assumptions'' \<open>x :: \<tau>\<close> for type-membership are only
   532   ``Assumptions'' \<open>x :: \<tau>\<close> for type-membership are only
   533   present as long as some \<open>x\<^sub>\<tau>\<close> occurs in the statement
   533   present as long as some \<open>x\<^sub>\<tau>\<close> occurs in the statement
   534   body.\footnote{This is the key difference to ``\<open>\<lambda>HOL\<close>'' in
   534   body.\<^footnote>\<open>This is the key difference to ``\<open>\<lambda>HOL\<close>'' in
   535   the PTS framework @{cite "Barendregt-Geuvers:2001"}, where hypotheses
   535   the PTS framework @{cite "Barendregt-Geuvers:2001"}, where hypotheses
   536   \<open>x : A\<close> are treated uniformly for propositions and types.}
   536   \<open>x : A\<close> are treated uniformly for propositions and types.\<close>
   537 
   537 
   538   \<^medskip>
   538   \<^medskip>
   539   The axiomatization of a theory is implicitly closed by
   539   The axiomatization of a theory is implicitly closed by
   540   forming all instances of type and term variables: \<open>\<turnstile>
   540   forming all instances of type and term variables: \<open>\<turnstile>
   541   A\<vartheta>\<close> holds for any substitution instance of an axiom
   541   A\<vartheta>\<close> holds for any substitution instance of an axiom