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 |