mmj2 Release 20121225 Proposals
Several
changes to mmj2 ranging from small to large are under consideration as
part of a December 25, 2012 (tenative) software release:
1. Enhancements to the Step Selector Search feature to accomplish the following goals:
- Improve the quality of the Step Selector Search results.
Objectively speaking, this means that assertion the user wants will
appear higher up in the search results than in the current system...statistically speaking.
- Provide a general search facility for Metamath assertions
which is useful to both mmj2 users and metamath.exe users. Even the
most hardcore metamath.exe users will want to keep a parallel mmj2
session running just to perform mmj2 searches.
- Provide a Search Options dialog for entry of all search-related preferences and parameters. Specifically, these will enable
mmj2 Proof Assistant
users to tailor the search criteria for a designated proof step; to
perform general ("global") searches not tied to a specific theorem/proof step; and
to refine a search using its result set as the input search domain for the
next search.
- Provide an "Extended Search" feature that will seek to supply
missing hypotheses for unifiable assertions in the search results list using previous steps in the
Proof Worksheet and/or assertions in the database requiring zero
hypotheses.
- Provide
an "Auto-Select" option to the Step Selector Search that automatically
selects the first search result item that fulfills the
user's search criteria and which logically
completes the designated proof step; it then automatically updates the
Proof Worksheet and
continues the Unification process.
- Modify the Step Selector Search dialog to visually indicate or
highlight search result items that fulfill the
user's search criteria and logically
complete the designated
proof step. Regrettably, the current dialog output format does not distinguish these search results from the rest. In addition, the
output display sort sequence should, unless the user specifies otherwise,
position these search result items at the beginning of the list!
For more information, see: Search Options and #4 below, Changes to the Step Selector Search dialog window.
2. Provide persistent storage of mmj2 GUI preferences.
In the current system, the user's GUI preferences such as font size,
color, window size and placement, etc., can only be changed permanently
by updating or entering mmj2 RunParm commands. Changes made using the
Proof Assistant menu items revert to their starting values when the
Proof Assistant is exited. Since all of us...all intelligent beings in the Metaverse...find
mmj2 RunParms.txt file usage to be awkward, tedious
and deplorable, this enhancement is long overdue. To remedy this
situation a new GUIPreferences.txt file will be created and the Proof
Assistant GUI and associated windows will be modified to record state
changes in it (the the About window, the Help window and the Request
Messages window -- which duplicates the contents of the error message
pane on the Proof Assistant -- will not be upgraded to record their
state parameters because the cost/benefit ratio is very unfavorable.)
For details, see: Persistent Storage Of GUI Preferences.
3. Changes to the Proof Assistant GUI (main) window
- Do not attempt cursor positioning for distinct variable errors.
- Revise the documentation in
mmj2/doc/IncompleteStepCursorPositioning.html
to indicate that option "AsIs
" means the cursor will remain on the same proof step -- not that the row/column position of the cursor will be unchanged.
- Modify RunParm "
ProofAsstUnifySearchExclude
" to use the "*
"
statement label wildcard symbol (meaning that 0 or more of any
characters in this position is a match), which Metamath.exe uses in the
MINIMIZE_WITH
command: "MINIMIZE_WITH * /BRIEF /EXCLUDE 3*,*OLD,ee*
".
- Remove Unify menu options
Set Step Selector Max Results
and Set Step Selector Show Substitutions
-- these options will be entered on the new Search Options window.
- Retain the Unify menu and right-mouse menu item Step Selector Search but add
Reuse Step Selector Search
and Search Options
to these menus. The original choice, Step Selector Search, will
initiate a new search using no search data criteria and the current
search preferences on the Search Options window;
Reuse Step Selector Search will initiate a search using the existing
search data criteria and search preferences; and the Search Options
choice will display the Search Options window. The first two choices
initiate proof-step specific searches while the last choice can be
proof-step specific or "global" depending on whether the cursor was
positioned on a derivation proof step when the choice was made.
- Dragging (adjusting) the right border on the Proof Assistant GUI window will automatically update the
ProofAsstFormulaRightCol
which sets the (TMFF) proof formatting right margin. The adjusted setting will be retained for future use via the Persistent Storage Of GUI Preferences enhancement. In
the existing code changing the size of the Proof Assistant window has
no affect on proof formatting, but with this fix every factor related
to the size of proof text (font, font size, bold/plain), and the size
of the window will be stored in "persistent storage" so that once the
user gets the Proof Assistant screen adjusted to perfection the
settings are retained permanently.
4. Changes to the Step Selector Search Dialog window
- The "Hide Dialog" button will be replaced with two new buttons: "Goto Proof Asst." and "Goto Search Options".
This change provides accessibility to the other two key Proof Assistant
windows in the situation where the user has positioned the windows so
that they overlap, partly or completely. The "Goto xxxx" action simply
puts the destination window on top -- it does not hide or minimize the
original (source) window. In the situation where the user has a small
screen, like a tablet, this behavior is important. In a different
situation where the user has a large screen capable of displaying all
of the windows simultaneously, the user can simply "mouse" or "alt-tab"
to the desired window (to give it the input focus.)
- The characters "
(!!!)
" will be displayed prefixing the label of each search result item that satisfies the
user search criteria and logically
completes
the designated
proof step. These search results will appear at the beginning of the
list (unless an alternative output sort sequence is requested on the
Search Options window -- though at this time every possible sort
sequence has Score
as the major sort key, so these search results will appear first in every case, assuming any exist.)
- The characters "
(---)
" will be displayed prefixing the label of each search result item that fails to satisfy the
user search criteria and is present in the search results only because Search Proximity Scoring was requested. These search results will appear at the end of the list (unless
an alternative output sort sequence is requested on the Search Options
window -- though at this time every possible sort sequence has Score
as the major sort key, so these search results will appear last in every case, assuming any exist.)
- The descriptive Metamath Comment for each search result item's assertion will be displayed if the search criteria included a search of Metamath Comments. The Comment data will be displayed as a 3rd line of text following the conclusion line of the search result.