Provided by: metamath_0.195-1_amd64 bug

NAME

       metamath - Formal proof verifier and proof assistant

SYNOPSIS

       metamath [ commands | file ]

DESCRIPTION

       metamath is a formal proof verifier and proof assistant for the Metamath language.  It can
       be initialized via a series of commands or with a  data  base  file,  which  can  then  be
       explored interactively.

       For details about the Metamath language and the command-line interface, type help into the
       command prompt, or read the Metamath book [1], which should have been installed along with
       the package.

LANGUAGE

       A  Metamath  database  consists  of a sequence of three kinds of tokens separated by white
       space (which is any sequence of one or more white space characters). The  set  of  keyword
       tokens is ${, $}, $c, $v, $f, $e, $d, $a, $p, $., $=, $(, $), $[, and $].  The latter four
       are called auxiliary or preprocessing keywords. A label token consists of any  combination
       of  letters,  digits,  and the characters hyphen, underscore, and period.  The label of an
       assertion is used to refer to it in a proof.  A math  symbol  token  may  consist  of  any
       combination  of  the  93 printable ascii(7) characters other than $.  All tokens are case-
       sensitive.

       $( comment $)
              Comments are ignored.

       $[ file $]
              Include the contents of a file.

       ${ statements $}
              Scoped block of statements. A math symbol becomes active when  declared  and  stays
              active until the end of the block in which it is declared.

       $v symbols $.
              Declare symbols as variables. A variable may not be declared a second time while it
              is active, but it may be declared again (as a variable,  but  not  as  a  constant)
              after it becomes inactive.

       $c symbols $.
              Declare  symbols  as  constants. A constant must be declared in the outermost block
              and may not be declared a second time.

       label $f constant variable $.
              Variable-type hypothesis to specify the nature or type of a variable (such as  `let
              x  be  an  integer.').  A  variable  must have its type specified in a $f statement
              before it may be used in a $e, $a, or $p statement. There may not be two active  $f
              statements containing the same variable.

       label $e constant symbols $.
              Logical  hypothesis,  expressing a logical truth (such as `assume x is prime') that
              must be established in order for an assertion requiring it to also be true.

       $d variables $.
              Disjoint variable restriction.  For  distinct  active  variables,  it  forbids  the
              substitution of one variable with another.

       label $a constant symbols $.
              Axiomatic assertion.

       label $p constant symbols $= proof $.
              Provable  assertion.  The  proof  is  a  sequence  of statement labels.  This label
              sequence serves as a  set  of  instructions  that  the  Metamath  program  uses  to
              construct  a  series  of  math  symbol  sequences. The construction must ultimately
              result in the math symbol sequence contained between the $p and $= keywords of  the
              $p  statement. For details, see section 4.3 in [1].  Proofs are most easily written
              using the interactive prompt in metamath.

FILES

       /usr/share/metamath
              Data base files for several formal theories.

SEE ALSO

       [1]   Norman   Megill:   Metamath,   A   Computer   Language    for    Pure    Mathematics
       ⟨http://us.metamath.org/downloads/metamath.pdf⟩.