| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Constructor explanations are used to access and query the semantic (constructor) level of the Mizar formulas. See section 4.1.1 Constructors and user symbols, for more on constructors.
Constructor information can help a lot, if you are not sure, how Mizar resolves some overloaded symbols. Constructors are also more useful for searching, than the text-level (vocabulary) symbols.
| 9.1 How Constructor explanations work | ||
| 9.2 Getting Constructor explanations | ||
| 9.3 Using Constructor explanations |
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Since the translation of the Mizar article to constructor level is nontrivial, we use Mizar itself to get access to that level, and take that information from an intermediate file produced by Mizar during verification.
This has some drawbacks:
We solve the second problem by attaching the constructor information
to the formulas in editing buffer as text property immediately
after verifying. Places with this property are then clickable
with <S-down-mouse-3> (mizar-show-constrs-other-window),
which displays the constructor information for that place
(translated according to variable mizar-expl-kind)
in buffer *Constructors list* in other window.
That way, the constructor information usually
remains relevant even after most editing operations.
Putting the constructor info into the editing buffer can slow down the verifying functions in Emacs, but for articles of average size the slowdown is not significant. Fot large articles, the "@proof" construct, See section 5.1 Proof checking, can help to prevent using this feature at large.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mizar-show-constrs-other-window
To use Constructor explanations, set the Verbosity in the menu
to any value different from "none". This influences the value
of the variables mizar-do-expl and mizar-expl-kind.
If you are new to this, better also check the option
Underline explanation points, so that you know where to look
for the clickable spots. You have to run Mizar first, for the
explanation points to appear, See section 9.1 How Constructor explanations work.
'by' items as properties after verifier run.
The constructor representation can then be displayed
(according to the value of `mizar-expl-kind') and queried.
The default value is nil.
mizar-do-expl' is non-nil.
Possible values are now
'sorted for sorted list of constructors in absolute notation.
'constructors for list of constructors in absolute notation,
'mmlquery behaves as 'sorted, but constructors are inserted
directly into the mmlquery input buffer.
The mmlquery interpreter has to be installed for this,
see `mmlquery-program-name'.
'translate for expanded formula in absolute notation,
'raw for the internal Mizar representation,
'expanded for expansion of clusters,
The values 'raw and 'expanded are for debugging only, do
not use them to get constructor explanatios.
The default value is sorted.
mizar-do-expl' is non-nil.
The default value is nil.
mizar-expl-kind', and shown in the buffer *Constructors list*
or mmlquery if `mizar-expl-kind' is 'mmlquery.
The variable `mizar-do-expl' should be non-nil.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Once you get a constructor explanation of a given formula in the buffer *Constructors list*, you can use it to get various useful information.
Available operations now include
The MMlQuery abstracts (GABs) are now the preferred browsing methods, however they are not yet distributed with Mizar. They are downloadable from Grezgorz Bancerek's site http://merak.pb.bialystok.pl/mmlquery/downloads/. The detailed description is at http://kti.mff.cuni.cz/~urban/integration.pdf.
The following special keybindings are available in the buffer *Constructors list*.
mizar-mouse-cstr-tag
mizar-kbd-cstr-tag
mizar-mouse-ask-query
mizar-kbd-ask-query
mizar-ask-advisor
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |