metamath(1)

๐ŸŒธ NAME ๐ŸŒธ

metamath โ€” formal proof verifier and proof assistant ๐Ÿซถ


โœจ SYNOPSIS โœจ

metamath [ commands | file ]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

okay so metamath is a formal proof verifier and a proof assistant for the Metamath language. it's giving math girlboss, no cap ๐Ÿงฎโœจ

you can boot it up two ways: feed it a series of commands, or hand it a data base file โ€” and once it's up, you can explore that thing interactively. literally so fun.

for the deets on the Metamath language and the command-line interface, just type help right into the command prompt ๐Ÿ’… or read the Metamath book [1], which should have been installed along with the package โ€” so check ur local filesystem bestie, it's probably right there.


๐Ÿฆ‹ LANGUAGE ๐Ÿฆ‹

a Metamath database is literally just a sequence of three kinds of tokens, separated by white space (and "white space" here means any sequence of one or more white space characters, periodt).

the token categories:

  • keyword tokens โ€” the set is exactly: ${, $}, $c, $v, $f, $e, $d, $a, $p, $., $=, $(, $), $[, and $]
  • label tokens โ€” any combination of letters, digits, and the characters hyphen, underscore, and period. the label of an assertion is what you use to refer to it in a proof ๐Ÿ‘‘
  • math symbol tokens โ€” any combination of the 93 printable ascii(7) characters other than $
โš ๏ธ the latter four keywords โ€” $(, $), $[, and $] โ€” are called auxiliary or preprocessing keywords. iykyk.
๐ŸŒˆ all tokens are case-sensitive. do not play with that.

๐Ÿ’œ the statements, one by one ๐Ÿ’œ

  • $( comment $) โ€” comments. they get ignored, they're just there for the aesthetic ๐Ÿ™ˆ
  • $[ file $] โ€” include the contents of a file. like a lil import, slay.
  • ${ statements $} โ€” a scoped block of statements. a math symbol becomes active when it's declared and stays active until the end of the block it was declared in. main character energy: it's only on stage for its own scene โœจ
  • $v symbols $. โ€” declare symbols as variables. a variable may not be declared a second time while it's 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. no reruns, babe ๐Ÿ’€
  • label $f constant variable $. โ€” a variable-type hypothesis, aka specifying the nature or type of a variable (like 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. and there may not be two active $f statements containing the same variable. sorry, no duplicates ๐Ÿšซ
  • label $e constant symbols $. โ€” a logical hypothesis, expressing a logical truth (like assume x is prime) that must be established in order for an assertion requiring it to also be true. it's giving conditional ๐ŸŽ€
  • $d variables $. โ€” disjoint variable restriction. for distinct active variables, it forbids the substitution of one variable with another. keep them separated bestie โœŒ๏ธ
  • label $a constant symbols $. โ€” axiomatic assertion. the OGs, the unproven foundations ๐Ÿ‘‘
  • 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. do it that way, fr fr.

๐ŸŽ€ FILES ๐ŸŽ€

  • /usr/share/metamath โ€” data base files for several formal theories. ur starter pack ๐Ÿ“

๐Ÿ’ซ SEE ALSO ๐Ÿ’ซ

  • [1] Norman Megill: Metamath, A Computer Language for Pure Mathematics.

and that's the whole page bestie!! brought to you by Metamath, dated 2018-02-04, living in the User Manuals section as page metamath(1) โ€” obsessed with her honestly ๐Ÿ’–โœจ bye!!