72 |
72 |
73 |
73 |
74 subsection {* Theory context \label{sec:context-theory} *} |
74 subsection {* Theory context \label{sec:context-theory} *} |
75 |
75 |
76 text {* |
76 text {* |
77 \glossary{Theory}{FIXME} |
|
78 |
|
79 A \emph{theory} is a data container with explicit named and unique |
77 A \emph{theory} is a data container with explicit named and unique |
80 identifier. Theories are related by a (nominal) sub-theory |
78 identifier. Theories are related by a (nominal) sub-theory |
81 relation, which corresponds to the dependency graph of the original |
79 relation, which corresponds to the dependency graph of the original |
82 construction; each theory is derived from a certain sub-graph of |
80 construction; each theory is derived from a certain sub-graph of |
83 ancestor theories. |
81 ancestor theories. |
199 |
197 |
200 |
198 |
201 subsection {* Proof context \label{sec:context-proof} *} |
199 subsection {* Proof context \label{sec:context-proof} *} |
202 |
200 |
203 text {* |
201 text {* |
204 \glossary{Proof context}{The static context of a structured proof, |
|
205 acts like a local ``theory'' of the current portion of Isar proof |
|
206 text, generalizes the idea of local hypotheses @{text "\<Gamma>"} in |
|
207 judgments @{text "\<Gamma> \<turnstile> \<phi>"} of natural deduction calculi. There is a |
|
208 generic notion of introducing and discharging hypotheses. |
|
209 Arbritrary auxiliary context data may be adjoined.} |
|
210 |
|
211 A proof context is a container for pure data with a back-reference |
202 A proof context is a container for pure data with a back-reference |
212 to the theory it belongs to. The @{text "init"} operation creates a |
203 to the theory it belongs to. The @{text "init"} operation creates a |
213 proof context from a given theory. Modifications to draft theories |
204 proof context from a given theory. Modifications to draft theories |
214 are propagated to the proof context as usual, but there is also an |
205 are propagated to the proof context as usual, but there is also an |
215 explicit @{text "transfer"} operation to force resynchronization |
206 explicit @{text "transfer"} operation to force resynchronization |
229 Proof contexts may be manipulated arbitrarily, although the common |
220 Proof contexts may be manipulated arbitrarily, although the common |
230 discipline is to follow block structure as a mental model: a given |
221 discipline is to follow block structure as a mental model: a given |
231 context is extended consecutively, and results are exported back |
222 context is extended consecutively, and results are exported back |
232 into the original context. Note that the Isar proof states model |
223 into the original context. Note that the Isar proof states model |
233 block-structured reasoning explicitly, using a stack of proof |
224 block-structured reasoning explicitly, using a stack of proof |
234 contexts internally, cf.\ \secref{sec:isar-proof-state}. |
225 contexts internally. |
235 *} |
226 *} |
236 |
227 |
237 text %mlref {* |
228 text %mlref {* |
238 \begin{mldecls} |
229 \begin{mldecls} |
239 @{index_ML_type Proof.context} \\ |
230 @{index_ML_type Proof.context} \\ |
416 |
407 |
417 |
408 |
418 subsection {* Strings of symbols *} |
409 subsection {* Strings of symbols *} |
419 |
410 |
420 text {* |
411 text {* |
421 \glossary{Symbol}{The smallest unit of text in Isabelle, subsumes |
|
422 plain ASCII characters as well as an infinite collection of named |
|
423 symbols (for greek, math etc.).} |
|
424 |
|
425 A \emph{symbol} constitutes the smallest textual unit in Isabelle |
412 A \emph{symbol} constitutes the smallest textual unit in Isabelle |
426 --- raw characters are normally not encountered at all. Isabelle |
413 --- raw characters are normally not encountered at all. Isabelle |
427 strings consist of a sequence of symbols, represented as a packed |
414 strings consist of a sequence of symbols, represented as a packed |
428 string or a list of strings. Each symbol is in itself a small |
415 string or a list of strings. Each symbol is in itself a small |
429 string, which has either one of the following forms: |
416 string, which has either one of the following forms: |
463 also process Unicode/UCS data in UTF-8 encoding. Unicode provides |
450 also process Unicode/UCS data in UTF-8 encoding. Unicode provides |
464 its own collection of mathematical symbols, but there is no built-in |
451 its own collection of mathematical symbols, but there is no built-in |
465 link to the standard collection of Isabelle. |
452 link to the standard collection of Isabelle. |
466 |
453 |
467 \medskip Output of Isabelle symbols depends on the print mode |
454 \medskip Output of Isabelle symbols depends on the print mode |
468 (\secref{FIXME}). For example, the standard {\LaTeX} setup of the |
455 (\secref{print-mode}). For example, the standard {\LaTeX} setup of |
469 Isabelle document preparation system would present |
456 the Isabelle document preparation system would present |
470 ``\verb,\,\verb,<alpha>,'' as @{text "\<alpha>"}, and |
457 ``\verb,\,\verb,<alpha>,'' as @{text "\<alpha>"}, and |
471 ``\verb,\,\verb,<^bold>,\verb,\,\verb,<alpha>,'' as @{text |
458 ``\verb,\,\verb,<^bold>,\verb,\,\verb,<alpha>,'' as @{text |
472 "\<^bold>\<alpha>"}. |
459 "\<^bold>\<alpha>"}. |
473 *} |
460 *} |
474 |
461 |