Presentation is loading. Please wait.

Presentation is loading. Please wait.

Presentation for Proof Assistant course by Nadya Kalabishka

Similar presentations


Presentation on theme: "Presentation for Proof Assistant course by Nadya Kalabishka"— Presentation transcript:

1 Presentation for Proof Assistant course by Nadya Kalabishka
MetaMath Presentation for Proof Assistant course by Nadya Kalabishka

2 Plan Introduction Metamath program Other works connected to Metamath
Metamath language Demo Metamath music page Material about Metamath

3 Introduction What is Metamath? Why is it called Metamath?
Metamath is a tiny language that can express theorems in abstract mathematics, accompanied by proofs that can be verified by a computer program. It’s a proof checker. It has no specific logic embedded and can simply be regarded as a device to apply inference rules to formulas. Why is it called Metamath? It means "metavariable math."

4 Introduction Who is the developer of metamath program?
Norman Megill of Massachusetts Institute of Technology. Why metamath program was written? One of the seminal ideas that lead Megill to design Metamath was the desire to precisely determine the correctness of some proofs.

5 Metamath program Metamath comes along with two main databases set.mm and ql.mm. Three Internet interfaces ( The Metamath Proof Explorer, the Hilbert Space Explorer and the Quantum Logic Explorer ) are provided to explore these two databases in a human friendly way. set.mm stores theorems concerning ZFC theory. The underlying logic is classical propositional calculus and classical predicate calculus with equality. Its contain about 8000 (As of March 2008) fully formal proofs of mathematical theorems. set.mm has been maintained for more than ten years now (the first proofs in set.mm are dated August 1993). It is mainly a work by Norman Megill but there are also proofs made by other participants. Zermelo–Fraenkel set theory with the axiom of choice, commonly abbreviated ZFC, is the standard form of axiomatic set theory and as such is the most common foundation of mathematics.

6 Metamath program ql.mm develops a set of quantum logic theorems.
Reading set.mm we may have sometimes the impression that the ambition of its author is essentially to add all the mathematics one theorem after the other. ql.mm develops a set of quantum logic theorems. The Metamath program (version May-2009), which is an ANSI C program with a command-line interface. It was used to build and verify the proofs in the Metamath Proof Explorer.

7 Metamath program Hilbert Space Explorer
The Hilbert Space Explorer presents more than 1,000 theorems pertaining to the Hilbert space theory. Those theorems are included in set.mm. They are not shown in the Metamath Proof Explorer because they had been developed by adding extra-axioms to the standard ZFC axioms of set.mm. This adding (justified by historical opportunity reasons) is theoretically useless since the concept of Hilbert space can be designed with the standard ZFC axioms.

8 Metamath program Quantum Logic Explorer In practice it looks like...
Quantum logic theorems can be found in the database ql.mm. The Quantum Logic Explorer is an internet interface to this database. In practice it looks like... In quantum mechanics, quantum logic is a set of rules for reasoning about propositions which takes the principles of quantum theory into account. This research area and its name originated in the 1936 paper by Garrett Birkhoff and John von Neumann, who were attempting to reconcile the apparent inconsistency of classical boolean logic with the facts concerning the measurement of complementary variables in quantum mechanics, such as position and momentum.

9 Other works connected to Metamath
Proof checkers: Using the design ideas implemented in Metamath, Raph Levien has implemented what might be the smallest proof checker in the world, mmverify.py, at only 500 lines of Python code. Ghilbert is a similar language based on mmverify.py.

10 Other works connected to Metamath
Proof checkers: Using Levien seminal works, many other implementations of the Metamath design principles have been implemented for a broad variety of languages. Juha Arpiainen has implemented his own proof checker in Common Lisp called Bourbaki and Marnix Klooster has coded a proof checker in Haskell called Hmm.

11 Metamath language The Metamath language is based on a very small number of tokens. There are two tokens to declare the symbols of the logic: declare the constants ($c) declare the variables ($v). Syntactic rules and axioms are declared using the $a token, and inference rules are declared using the $a for the conclusion and the $e for the premises. Finally, $p is used to declare a theorem and its proof. A $f statement must contain exactly two math symbols,a constant followed by a variable. The $e, $a, and $p statements each start with a constant followed by, in general, an arbitrary sequence of math symbols. Metamath does not know what a “term” or a “wff” is. In Metamath, the specification of the ways in which we can combine symbols to obtain terms and wffs are like little axioms in themselves. These auxiliary axioms are expressed in the same notation as the “real” axioms, and Metamath does not distinguish between the two.

12 Metamath language Proof:
A proof is a sequence of statement labels. The label sequence in a proof specifies a construction in reverse Polish notation (RPN). Its works like hand-held calculators. In the calculator analogy, a hypothesis label is like a number and an assertion label is like an operation. RPN process involve the concept of a stack, which is a set of temporary memory locations that hold results.

13 Metamath language Proof:
When Metamath encounters a hypothesis label it places or pushes the math symbol sequence of the hypothesis onto the stack. Finally, Metamath removes or pops the matched hypotheses from the stack and pushes the substituted assertion onto the stack.

14 Demo Very easy example: Let’s prove that t = t: Theorem scheme:
The axioms of our theory: (A1) (t = r -> (t = s -> r = s)) (A2) (t + 0) = t We also will use a theorem that if P and (P->Q) then Q (Modus Ponens)

15 Demo Proof: (t + 0) = t (by axiom A2)
((t + 0) = t -> ((t + 0) = t -> t = t)) (by axiom A1) ((t + 0) = t -> t = t) (by MP applied to steps 2 and 3) t = t (by MP applied to steps 1 and 4) Each ($a)assertion is a set of hypotheses.This hypoteses must satisfied the assertion to be used in a proof. These are called the “mandatory hypotheses” of the assertion. Tze $a term 0, have no mandatory hypotethes because it contains no variables and has no $e hypothesis. $e hypotheses are always mandatory and $f hypotheses are mandatory when they share their variable with the assertion or its $e hypotheses. For example, the mandatory hypotheses of assertion tpl $a term (t+r) are tt and tr. The assertion mp has mandatory hypotheses wp, wq, min, and maj.

16 Material about Metamath
MetaMath home page: Wiki:


Download ppt "Presentation for Proof Assistant course by Nadya Kalabishka"

Similar presentations


Ads by Google