/[mojave]/metaprl/refiner/reflib/rformat.ml
ViewVC logotype

Log of /metaprl/refiner/reflib/rformat.ml

Parent Directory Parent Directory | Revision Log Revision Log


Sticky Revision:
(Current path doesn't exist after revision 5667)

Revision 3591 - (view) (download) (annotate) - [select for diffs]
Modified Sun Apr 28 19:51:58 2002 UTC (19 years, 1 month ago) by nogin
File length: 48010 byte(s)
Diff to previous 3584
- Added an option to be have "THEORIES=all" in mk/config
(instead of THEORIES="long list of theories").
I will change all my nightly scripts to use THEORIES=all.

- Added mc to the default list of TEXTHEORIES. Added a file all-bodies.tex
that would automatically contain \inputs corresponding to TEXTHEORIES.
(Before this change we had to update all-theories.tex by hands whenever TEXTHEORIES
was changed).

- Minor fixes in some display forms.

- Removed theories/caml that never had anything useful.

- Removed a few files from theories/ocaml_doc that seemed to be there by accident
(Jason, can you confirm?).


Revision 3584 - (view) (download) (annotate) - [select for diffs]
Modified Thu Apr 25 15:28:40 2002 UTC (19 years, 2 months ago) by nogin
File length: 47885 byte(s)
Diff to previous 3519
- Added the comment module to the theories.pdf ("make latex").

- Added a hack allowing to override a theory display with another theory's
display. This is necessary for bootstrapping reasons - it allows one
to get a reasonable output of a theory (e.g. Comment) that is defined before
all essential display forms (e.g. the Summary ones) are there.

- Added debugging code to make it easier to find dforms that cause
zone begin/end mismatch (and used it to get rid of all
the "Unballanced buffer" warnings in "make latex").

- Minor dforms&comments updates.


Revision 3519 - (view) (download) (annotate) - [select for diffs]
Modified Tue Feb 26 20:21:12 2002 UTC (19 years, 3 months ago) by nogin
File length: 48236 byte(s)
Diff to previous 3396
String_util cleanup:

- Removed some duplicated and unused string code.
- Removed couple of functions from string_util that were added
to the stdlib String module in recent versions of Ocaml


Revision 3396 - (view) (download) (annotate) - [select for diffs]
Modified Fri Sep 21 14:22:55 2001 UTC (19 years, 9 months ago) by nogin
File length: 48242 byte(s)
Diff to previous 3254
- Added proper escaping of <, > and & in html Rformat output
- Goal and Subgoal window updates are now done in separate threads
- Updated some homepages URLs in mp-people.html


Revision 3254 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jun 7 19:14:04 2001 UTC (20 years ago) by nogin
File length: 48122 byte(s)
Diff to previous 3240
- For symbolic keywords, use tt instead of bf
- Use tt for non-math < and > to make sure that are displayed properly.


Revision 3240 - (view) (download) (annotate) - [select for diffs]
Modified Mon May 28 22:16:27 2001 UTC (20 years ago) by nogin
File length: 47672 byte(s)
Diff to previous 3235
Use terminal width for output in a more consistent manner.


Revision 3235 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 20 23:04:08 2001 UTC (20 years, 1 month ago) by nogin
File length: 47545 byte(s)
Diff to previous 3213
Display form fixes.

- TeX: all object-level terms (theorem statements, etc) are now typeset
in math mode.

- Tex: variable names are now parsed to detect indeces. In particular,
  'a1 will now be printed as a_{1} and 'a1_2 will be printed as a_{1,2}.

- Tex: `|' symbol in display forms is now always handled correctly.

- Numerous small fixes.


Revision 3213 - (view) (download) (annotate) - [select for diffs]
Modified Sun May 6 22:31:55 2001 UTC (20 years, 1 month ago) by nogin
File length: 46874 byte(s)
Diff to previous 3082
- Rformat now will use no more than 1/3 of the total width on the left tabs.

- I've added the short_string_of_term function to Simple_print that creates
a string of the length at most 120. More importantly, it aborts printing
as soone as it hits the margin, so no matter how big the term is, it should
work fast.

- debug_dform debugging now uses the short_string_of_term, so it will now
hopefully produce managable output even on big terms.


Revision 3082 - (view) (download) (annotate) - [select for diffs]
Modified Sun Oct 8 16:38:54 2000 UTC (20 years, 8 months ago) by jyh
File length: 43981 byte(s)
Diff to previous 3074
Fixed the problem with leftward-moving margins, for example:
   pushm[5] pushm[3]

The choice I made is similar to Carl's recommendation.
If the offset is negative, the current margin string is
always truncated and replaced with the new margin string.
However, an error message is printed if the overlap does not
match.


Revision 3074 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 24 00:46:18 2000 UTC (20 years, 9 months ago) by jyh
File length: 42614 byte(s)
Diff to previous 3057
Update Itt_logic/implies_df to a nested dform (so it displays recursive
implications correctly).  Also, fixed a bug in rformat.ml that was causing
the formatter to calculate the left margin correctly.

I also forgot to mention two new things earlier.  I added the
cbreak [s1:s; s2:s] display form, which adds a break if the next text
element would overlow the right margin.  This is useful in text formatting.
The s1 and s2 are optional; cbreak <--> cbreak[""; " "].  Also, there
is now a display form pushm[str:s], which adds the text in every
indentatio, rather than whitespace.  This is useful for comment formatting,
where the comment lines are indented with the " * " string.


Revision 3057 - (view) (download) (annotate) - [select for diffs]
Modified Sun Sep 10 18:26:37 2000 UTC (20 years, 9 months ago) by jyh
File length: 42677 byte(s)
Diff to previous 2828
This jumbo update is a documentation update.  There are no
logical changes.  I did two things:

1. First, comments that begin with the sequence "(*!" are
   interpreted as structured comments.  The contents are parsed
   as terms, and the comments will display in the editor window.
   The comments may contain arbitrary text, as usual, and they
   can also contain explicit terms.  The syntax for terms is:

   @opname[p1, ..., pn]{t1; ...; tm}

   or there is an alternate syntax:

   @begin[opname, p1, ..., pn]
   arg
   @end[opname]

   Text sequences count as a single term.  So, for instance, the
   term @bf{Hello world} display the "Hello world" text in a bold
   font.

   The "doc" term is used for text that is considered to be
   documentation.  There is a set of LaTeX-like terms that you can
   use to produce good-looking documentation.  These are all
   documented in the theories/tactic/comment.ml module.  The exact
   syntax of structured comments is defined in the
   mllib/comment_parse.mll file.  You can also look at any of the
   module in the theories/itt directory if you want to see examples.

   You can generate a pritable version of documentation with the
   print_theory command in the editor.  For example, the command

   # print_theory "itt_equal";;

   produces a file called output.tex that can be formatted with
   your favorite version of latex2e.  You can also generate a
   manule of all the theories by running "make tex" in the
   editor/ml directory.  Or you can run "make" in the
   doc/latex/theories directory.

   The files are hyperlinked, and they contain a table of contents
   and an index.  The preferred reader is acrobat, and the preferred
   formatter is pdflatex.

2. Second, I documented the tactic, base, itt, and czf theories.

3. Oh, and I also added a spelling checker:)  You can turn on the
   spelling checker with the -debug spell option or MP_DEBUG=spell.
   If prlc thinks that your files contain spelling mistakes, it will
   print them out and abort.  You can fix this problem by 1) fixing
   the spelling error, 2) adding the words withing a @spelling{words}
   term in a comment, or adding the words to you .ispell_english
   directory.

   For example, we could either do this:

   @begin[spelling]
   Aleksey Nogin
   @end[spelling]

   Or we could just add Alexey to either $cwd/.ispell_english, or
   ~/.ispell_english.

   The spell checker uses /usr/dict/words as a database, which it
   compiles to a hashtable in /tmp/metaprl-spell-$USER.dat.  Don't
   worry about the tmp file, it is generated automatically.


Revision 2828 - (view) (download) (annotate) - [select for diffs]
Modified Tue Oct 26 22:14:51 1999 UTC (21 years, 7 months ago) by nogin
File length: 38910 byte(s)
Diff to previous 2822
Renamed break -> hbreak (dforms construction) to be more consistent.


Revision 2822 - (view) (download) (annotate) - [select for diffs]
Modified Fri Oct 22 01:07:59 1999 UTC (21 years, 8 months ago) by nogin
File length: 38904 byte(s)
Diff to previous 2811
Added new function to mp_debug
let show_loading s = if !debug_load then Printf.eprintf s eflush

and replaced all usages of debug_load with show_loading


Revision 2811 - (view) (download) (annotate) - [select for diffs]
Modified Fri Sep 3 23:41:50 1999 UTC (21 years, 9 months ago) by jyh
File length: 38932 byte(s)
Diff to previous 2808
Rules are automatically added to mptop toploop.  This just means
that you can use a rule directly in a tactic without having to wrap
it.  Rules require addresses, so they are still hard to use, but
at least they are accessible.


Revision 2808 - (view) (download) (annotate) - [select for diffs]
Modified Wed Aug 25 19:09:25 1999 UTC (21 years, 10 months ago) by jyh
File length: 38755 byte(s)
Diff to previous 2753
I added a TeX mode for display.  This was a quick hack, and it
it _not_ the way it should be done long term.  We should be able
to do the formatting and indentation with boxes, etc.

I added SIL.  This theory is an incomplete semantics of a
"simple imperative language."


Revision 2753 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jun 25 00:19:15 1999 UTC (22 years ago) by jyh
File length: 34494 byte(s)
Diff to previous 2743
These are some minor changes to make things work better.  Changed
meaning of ThinOption in elim_resource: it now means to thin the hyp
by default, unless overridden by thinningT false.

Fixed some proof operations.  Added "move_to_assum" command to take
the current subgoal and make it an extra assumption of the entire
proof (it may not work at the moment).

ls now takes a _string_ argument.  Use ls "u";; to display only the
unproved rules in the current module.

Proved many membership variants of the standard type constructors,
but there are a few more to go.  When you are defining theories, I
believe you should use membership, not equality.  After all, equality
is derivable from membership, and membership is a lot easier.

Still to go: ASCII format proof files; save proofs _without_ extracts
by default.  The expand () function does not reexpand proofs correctly.
A few problems with proof navigation.


Revision 2743 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 23 04:50:29 1999 UTC (22 years ago) by jyh
File length: 34595 byte(s)
Diff to previous 2522
This is a major release; I bumped the release number to 0.6.
WARNING: There are major changes here, and there may be problems
   with this version that prevent you from using your old proof.
   Save your work before using this version.
NOTE: If you decide to try this out, and you find problems,
   please(!) send me email so I can fix it.

Changes:
   1. The proof structure is totally changed, so that the proof
      editor edits the raw proof extracts.  This means that you
      can view the actions of the refiner down to the primitive
      rule applications.  In the proof editor, you can use
      "down 0" (or "cd "0") to descend into the proof of a rule box.
      Primitive proofs are called "extracts", and are labeled with
      brackets (like [extract]).  To expand the extract, use the command
      "unfold ()".  You should be able to get all the way down to
      the primitive rule/rewrite applications.

      This also means that the format of the proof files (the .prlb
      files) has changed.  The old proof files are still valid,
      but this is a hack and will be deprecated in the next
      few months.  I haven't yet added Alexey's ASCII proof
      files, but that will come with the next release.

      As usual, the "undo ()" command undoes the last proof step,
      including "unfold ()".  The "nop ()" command, reset the undo
      stack.  I also added a "redo ()" command that undoes the
      last undo.

      There is a simple rule-box proof cache for collecting proofs
      as you edit them.  If cached proofs are available, you will
      see them in brackets (like [* # * *]) on the status line.
      I haven't yet:( added the commands to use cached proofs.

   2. Refiner changes.  I added two new features: the "cutT <term>"
      tactic cuts in a new assumption.  Also, you can apply
      rewrites directly on assumptions, with the "rwc" and
      "rwch" operations, that take a clause argument.  Basically,
      this means that instead of folding the goal, you can unfold
      the assumption.  I believe this is sound; let me know if
      you think otherwise!

   3. Resource changes.  I added resource automation, built on
      the basic resource parsing Alexey added.  Ratherthan writing
      resource code for every rule, you can annotate most rules
      to generate the resource code directly.  You can see lots of
      examples in the Itt theory.  Basically, there are three useful
      resources annotations:
         intro_resource []: adds the rule as an introduction in dT
         intro_resource [SelectOption i]: adds to selT i dT
         elim_resource []: adds as an elimination rule to dT.
            This normally tries to thin the hyp that was eliminated.
         elim_resource [ThinOption]: don't thin the hyp

      Rules should be annotated with labels on their clauses,
      like [wf], [main], [assertion], etc.  This means that in
      most tactic aplcations, you no longer need to have the
      thenLT [addHiddenLabel "main"; ...] part.

      N.B.  This is the most likey parts of this release to
      cause problems, because I deleted most old resource code.

      Also, you can still write standard resource code, but there
      is no longer a d_resource--it has been broken into two parts:
      the intro_resource for application to goals, and elim_resource
      for application to hyps.

   4. The proof editor is multi-threaded, so you can work on multiple
      proofs simultaneously.  In the normal Emacs editor, this is
      no help for you.  But there is a new Java editor with the
      standard point-and-click interface, and it views the proof
      in HTML, with multiple windows etc.  The beautiful thing is
      that you can use display forms to add commands to edit windows.
      The sad thing is that I built it on NT, Java 1.2 is required,
      and I haven't tried the blackdown.org Java release on Linux.
      This editor is pending some bug fixes from Sun to get the
      fonts right (they call this a standard release?).

      In any case, here are the direct implications.  The display
      forms have an "html" mode.  The display form formatting in
      the module Rformat has been completely redone, but display
      _should_ be the same as it was before.

      It is likely that I will add an HTML dump, so we can send
      uneditable proofs around by email or on the web.  Check out
      the file theories/base/summary.ml to see some example HTML
      display forms.

      The other issue: your MetaPRL process starts a web server on
      YOUR local machine using YOUR process id on the "next" available
      TCP port, and it serves files only from the search path that you pass
      MetaPRL.  I realize that this has security implications.  This
      is necessary to get browser access to the working MetaPRL proof.
      Is this crazy?  Let me know your beliefs, religious or
      otherwise.

   5. There are numerous minor changes.  I redid parts of the WeakMemo,
      Term_header_constr, and TermHash.  The theories/tactic directory
      has been split into tactic/boot (which is not compiled by MetaPRL),
      and theories/tactic (which is).

Jason


Revision 2522 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 11 19:14:25 1998 UTC (22 years, 6 months ago) by nogin
File length: 26194 byte(s)
Diff to previous 2494
Fixed some "this expression should have type unit" Ocaml-2.01 warnings


Revision 2494 - (view) (download) (annotate) - [select for diffs]
Modified Tue Oct 13 01:14:08 1998 UTC (22 years, 8 months ago) by jyh
File length: 26178 byte(s)
Diff to previous 2456
I changed all the obvious places of Nuprl-Light, NL, nl, or any
other instance to MetaPRL, MP, or mp, etc.  The docs may be broken
but I'll fix them soon.  As usual, let me know if anything breaks.


Revision 2456 - (view) (download) (annotate) - [select for diffs]
Modified Sat Sep 5 22:31:37 1998 UTC (22 years, 9 months ago) by jyh
File length: 26182 byte(s)
Diff to previous 2443
Added license headers to each of the files in preparation for
the first major release.  The license is GNU public license; if
any of you have problems with that, let me know right away.  When
you add new code, you should credit yourself as the author.  When
you modify code, you should add a "Modified by:" to the header,
and possibly a short summary of your changes.

I tried to get the Author lists as correct as I remember, but there
are more than 550 files(!) and I may have made some mistakes. Please
add yourself if I didn't do it right.


Revision 2443 - (view) (download) (annotate) - [select for diffs]
Modified Mon Aug 24 13:43:48 1998 UTC (22 years, 10 months ago) by jyh
File length: 25023 byte(s)
Diff to previous 2336
Slightly better Ensemble scheduling.
Native-code compiler has trouble marshaling functions--
its probably a problem with the marshaler.

Added Nl_num, a ML-only implementation of bignums.
This is slower than the C version used by OCaml, but
we can marshal the Nl_nums.  Most of the files changed
are just replacements of Num.* with Nl_num.*.


Revision 2336 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jul 21 22:47:13 1998 UTC (22 years, 11 months ago) by jyh
File length: 25020 byte(s)
Diff to previous 2307
Added NL toploop so that we can compile NL native code.


Revision 2307 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 6 17:55:31 1998 UTC (22 years, 11 months ago) by nogin
File length: 25017 byte(s)
Diff to previous 2251
Removed $Log messages from all NL files.


Revision 2251 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jun 16 16:26:27 1998 UTC (23 years ago) by jyh
File length: 26782 byte(s)
Diff to previous 2224
Added itt_test.


Revision 2224 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jun 12 13:47:49 1998 UTC (23 years ago) by jyh
File length: 26608 byte(s)
Diff to previous 2209
D tactic works, added itt_bool.


Revision 2209 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 1 13:57:13 1998 UTC (23 years ago) by jyh
File length: 26173 byte(s)
Diff to previous 2191
Proving twice one is two.


Revision 2191 - (view) (download) (annotate) - [select for diffs]
Added Thu May 28 15:02:46 1998 UTC (23 years ago) by jyh
File length: 26145 byte(s)
Partitioned refiner into subdirectories.


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.26