Go to file
Greg Shuflin 1ab1e012c3 Initial commit 2022-05-03 20:09:32 -07:00
LICENSE.TXT Initial commit 2022-05-03 20:09:32 -07:00
Makefile.am Initial commit 2022-05-03 20:09:32 -07:00
README.TXT Initial commit 2022-05-03 20:09:32 -07:00
__README.TXT Initial commit 2022-05-03 20:09:32 -07:00
big-unifier.mm Initial commit 2022-05-03 20:09:32 -07:00
configure.ac Initial commit 2022-05-03 20:09:32 -07:00
demo0.mm Initial commit 2022-05-03 20:09:32 -07:00
hol.mm Initial commit 2022-05-03 20:09:32 -07:00
iset.mm Initial commit 2022-05-03 20:09:32 -07:00
metamath.1 Initial commit 2022-05-03 20:09:32 -07:00
metamath.c Initial commit 2022-05-03 20:09:32 -07:00
metamath.exe Initial commit 2022-05-03 20:09:32 -07:00
miu.mm Initial commit 2022-05-03 20:09:32 -07:00
mmcmdl.c Initial commit 2022-05-03 20:09:32 -07:00
mmcmdl.h Initial commit 2022-05-03 20:09:32 -07:00
mmcmds.c Initial commit 2022-05-03 20:09:32 -07:00
mmcmds.h Initial commit 2022-05-03 20:09:32 -07:00
mmdata.c Initial commit 2022-05-03 20:09:32 -07:00
mmdata.h Initial commit 2022-05-03 20:09:32 -07:00
mmhlpa.c Initial commit 2022-05-03 20:09:32 -07:00
mmhlpa.h Initial commit 2022-05-03 20:09:32 -07:00
mmhlpb.c Initial commit 2022-05-03 20:09:32 -07:00
mmhlpb.h Initial commit 2022-05-03 20:09:32 -07:00
mminou.c Initial commit 2022-05-03 20:09:32 -07:00
mminou.h Initial commit 2022-05-03 20:09:32 -07:00
mmmaci.c Initial commit 2022-05-03 20:09:32 -07:00
mmmaci.h Initial commit 2022-05-03 20:09:32 -07:00
mmpars.c Initial commit 2022-05-03 20:09:32 -07:00
mmpars.h Initial commit 2022-05-03 20:09:32 -07:00
mmpfas.c Initial commit 2022-05-03 20:09:32 -07:00
mmpfas.h Initial commit 2022-05-03 20:09:32 -07:00
mmunif.c Initial commit 2022-05-03 20:09:32 -07:00
mmunif.h Initial commit 2022-05-03 20:09:32 -07:00
mmutil.c Initial commit 2022-05-03 20:09:32 -07:00
mmutil.h Initial commit 2022-05-03 20:09:32 -07:00
mmveri.c Initial commit 2022-05-03 20:09:32 -07:00
mmveri.h Initial commit 2022-05-03 20:09:32 -07:00
mmvstr.c Initial commit 2022-05-03 20:09:32 -07:00
mmvstr.h Initial commit 2022-05-03 20:09:32 -07:00
mmword.c Initial commit 2022-05-03 20:09:32 -07:00
mmword.h Initial commit 2022-05-03 20:09:32 -07:00
mmwtex.c Initial commit 2022-05-03 20:09:32 -07:00
mmwtex.h Initial commit 2022-05-03 20:09:32 -07:00
nf.mm Initial commit 2022-05-03 20:09:32 -07:00
peano.mm Initial commit 2022-05-03 20:09:32 -07:00
ql.mm Initial commit 2022-05-03 20:09:32 -07:00
set.mm Initial commit 2022-05-03 20:09:32 -07:00

README.TXT

This package contains the metamath program and several Metamath
databases.


Copyright
---------

The metamath program is copyright under the terms of the GNU GPL license
version 2 or later.  See the file LICENSE.TXT in this directory.

Individual databases (*.mm files) are either public domain or under
the GNU GPL, as indicated by comments in their headers.

See http://us.metamath.org/copyright.html for further license and
copyright information that applies to the content of this package.


Instructions
------------

For Windows, click on "metamath.exe" and type "read set.mm".

For Unix/Linux/Cygwin/MacOSX using the gcc compiler, compile with the
command "gcc m*.c -o metamath", then type "./metamath set.mm" to run.

As an alternative, if you have autoconf, automake, and a C compiler, you
can compile with the command "autoreconf -i && ./configure && make".
This "autoconf" approach automatically finds your compiler and its
options, and configure takes the usual options (e.g., "--prefix=/usr").
The resulting executable will typically be faster because it will check for
and enable available optimizations; tests found that the "improve"
command ran 28% faster on gcc when using an autoconf-generated "configure".
You can again type "./metamath set.mm" to run.  After "make" you may
install it elsewhere using "sudo make install" (note that this installs
".mm" files in the pkgdata directory, by default
"/usr/local/share/metamath/").  If you install it this way, you can then
run metamath as "metamath /usr/share/metamath/set.mm", copy set.mm
locally (cp /usr/share/metamath/set.mm . ; metamath set.mm), or run
metamath and type:  read "/usr/share/metamath/set.mm" (note that inside
metamath, filenames containing "/" must be quoted).


Man page
--------

There is a man page for the Metamath program on Linux systems.  It is
automatically installed if you use "autoreconf" as described above.  To
install it manually, copy the file metamath.1 to the appropriate folder,
using the command "sudo cp metamath.1 /usr/local/share/man/man1/" and
update the man database with the command "sudo mandb".  You can then
simply type "man metamath" to access the man page.


Optional enhancements
---------------------

For optimized performance under gcc, you can compile as follows:

  gcc m*.c -o metamath -O3 -funroll-loops -finline-functions \
     -fomit-frame-pointer -Wall -pedantic

If your compiler supports it, you can also add the option -DINLINE=inline
to achieve the 28% performance increase described above.


On Linux/MacOSX/Unix, the Metamath program will be more pleasant to use
if you run it inside of rlwrap http://utopia.knoware.nl/~hlub/rlwrap/
(checked 3-Jun-2015) which provides up-arrow command history and other
command-line editing features.  After you install rlwrap per its
instructions, invoke the Metamath program with "rlwrap ./metamath
set.mm".


In some Linux distributions (such as Debian Woody), if the Backspace
key doesn't delete characters typed after the "MM>" prompt, try adding
this line to your ~/.bash_profile file:

  stty echoe echok echoctl echoke

Using rlwrap as described above will also solve this problem.


Additional MacOSX information
-----------------------------

On MacOSX, select the Terminal application from Applications/Utilities
to get to the command line.  On recent versions of MacOSX, you need to
install gcc separately.  Typing "whereis gcc" will return "/usr/bin/gcc"
if it is installed.  The XCode package is typically used to install it,
but it can also be installed without XCode; see

  https://github.com/kennethreitz/osx-gcc-installer/ (checked 15-Feb-2014)


Optional rlwrap user interface enhancement
------------------------------------------

On Linux/MacOSX/Unix, the Metamath program will be more pleasant to use
if you run it inside of rlwrap:

  http://utopia.knoware.nl/~hlub/uck/rlwrap/ (checked 15-Feb-2014)

which provides up-arrow command history and other command-line editing
features.  After you install rlwrap per its instructions, invoke the
Metamath program with "rlwrap ./metamath set.mm".

(The Windows version of the Metamath program was compiled with lcc,
which has similar features built-in.)


Windows Compilation
-------------------

To reproduce the included metamath.exe for Windows, use lcc-win32
version 3.8, with the following command:

  lc -O m*.c -o metamath.exe


Further suggestions
-------------------

Once in the program, use the "help" command to guide you.  For more
information, see the Metamath book available at http://metamath.org .


To uninstall
------------

To uninstall, just delete the "metamath" directory - nothing else
(Registry, etc.) is touched in your system.

If you used autoconf's "make install" to install it in system locations,
you can use "make uninstall" to remove it.


List of databases
-----------------

The data base files included are:

  set.mm - logic and set theory database (see Ch. 3 of the Metamath book).
      The Metamath Proof Explorer pages were generated from this database.
  nf.mm - logic and set theory database for Quine's New Foundations set
      theory.
  iset.mm - intuitionistic logic and set theory database.
  hol.mm - higher order logic (simple type theory) database.
  ql.mm - quantum logic database.  The Quantum Logic Explorer pages were
      generated from this database.
  demo0.mm - demo of simple formal system (see Ch. 2 of the Metamath book)
  miu.mm - Hofstadter's MIU-system (see Appendix D of the Metamath book)
  big-unifier.mm - A unification stress test (see comments in the file).
  peano.mm - A nicely commented presentation of Peano arithmetic, written
      by Robert Solovay (unlike the ones above, this database is NOT public
      domain but is copyright under the terms of the GNU GPL license)