391 \item @{ML_functor TheoryDataFun}@{text "(spec)"} declares data for |
391 \item @{ML_functor TheoryDataFun}@{text "(spec)"} declares data for |
392 type @{ML_type theory} according to the specification provided as |
392 type @{ML_type theory} according to the specification provided as |
393 argument structure. The resulting structure provides data init and |
393 argument structure. The resulting structure provides data init and |
394 access operations as described above. |
394 access operations as described above. |
395 |
395 |
396 \item @{ML_functor ProofDataFun}@{text "(spec)"} is analogous for |
396 \item @{ML_functor ProofDataFun}@{text "(spec)"} is analogous to |
397 type @{ML_type Proof.context}. |
397 @{ML_functor TheoryDataFun} for type @{ML_type Proof.context}. |
398 |
398 |
399 \item @{ML_functor GenericDataFun}@{text "(spec)"} is analogous for |
399 \item @{ML_functor GenericDataFun}@{text "(spec)"} is analogous to |
400 type @{ML_type Context.generic}. |
400 @{ML_functor TheoryDataFun} for type @{ML_type Context.generic}. |
401 |
401 |
402 \end{description} |
402 \end{description} |
403 *} |
403 *} |
404 |
404 |
405 |
405 |
406 section {* Name spaces *} |
406 section {* Name spaces *} |
407 |
407 |
408 text {* |
408 text {* |
|
409 FIXME tune |
|
410 |
409 By general convention, each kind of formal entities (logical |
411 By general convention, each kind of formal entities (logical |
410 constant, type, type class, theorem, method etc.) lives in a |
412 constant, type, type class, theorem, method etc.) lives in a |
411 separate name space. It is usually clear from the syntactic context |
413 separate name space. It is usually clear from the syntactic context |
412 of a name, which kind of entity it refers to. For example, proof |
414 of a name, which kind of entity it refers to. For example, proof |
413 method @{text "foo"} vs.\ theorem @{text "foo"} vs.\ logical |
415 method @{text "foo"} vs.\ theorem @{text "foo"} vs.\ logical |
441 |
443 |
442 |
444 |
443 subsection {* Strings of symbols *} |
445 subsection {* Strings of symbols *} |
444 |
446 |
445 text {* |
447 text {* |
|
448 FIXME tune |
|
449 |
446 Isabelle strings consist of a sequence of |
450 Isabelle strings consist of a sequence of |
447 symbols\glossary{Symbol}{The smallest unit of text in Isabelle, |
451 symbols\glossary{Symbol}{The smallest unit of text in Isabelle, |
448 subsumes plain ASCII characters as well as an infinite collection of |
452 subsumes plain ASCII characters as well as an infinite collection of |
449 named symbols (for greek, math etc.).}, which are either packed as |
453 named symbols (for greek, math etc.).}, which are either packed as |
450 an actual @{text "string"}, or represented as a list. Each symbol |
454 an actual @{text "string"}, or represented as a list. Each symbol |
537 |
541 |
538 |
542 |
539 subsection {* Qualified names *} |
543 subsection {* Qualified names *} |
540 |
544 |
541 text {* |
545 text {* |
|
546 FIXME tune |
|
547 |
542 A \emph{qualified name} essentially consists of a non-empty list of |
548 A \emph{qualified name} essentially consists of a non-empty list of |
543 basic name components. The packad notation uses a dot as separator, |
549 basic name components. The packad notation uses a dot as separator, |
544 as in @{text "A.b"}, for example. The very last component is called |
550 as in @{text "A.b"}, for example. The very last component is called |
545 \emph{base} name, the remaining prefix \emph{qualifier} (which may |
551 \emph{base} name, the remaining prefix \emph{qualifier} (which may |
546 be empty). |
552 be empty). |