Mizar (software): Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Dmitrii Kouznetsov
(Undo revision 100630506 by Dmitrii Kouznetsov (Talk))
imported>Dmitrii Kouznetsov
m (formatting)
Line 21: Line 21:


This program can be interpreted with command "mizf", for example,
This program can be interpreted with command "mizf", for example,
  mizf something
  mizf something
or
or
  mizf something.miz
  mizf something.miz
The misar program is assumed to consist of lines.
The misar program is assumed to consist of lines.
The interpreter either accepts or not accepts each line.
The interpreter either accepts or not accepts each line.
Line 35: Line 31:
as proven.
as proven.
If the mizar program is not accepted, then the
If the mizar program is not accepted, then the
marked lines are expected to be corrected and/or supplied with an additional proof.
marked lines are expected to be corrected and/or supplied with an additional proof.


==Mizar libraries==
==Mizar libraries==
Line 60: Line 56:


Here is an example of the mizar program that checks that 1+1=2 and 1/2-1/3=1/6:
Here is an example of the mizar program that checks that 1+1=2 and 1/2-1/3=1/6:
  environ
  environ
  vocabularies ARYTM_1, RELAT_1, ARYTM_3, REAL_1;
  vocabularies ARYTM_1, RELAT_1, ARYTM_3, REAL_1;
Line 70: Line 65:
  1+1=2;
  1+1=2;
  1/2-1/3=1/6;
  1/2-1/3=1/6;
All the capital names refer to the libraries that are loaded at the installation of the
All the capital names refer to the libraries that are loaded at the installation of the
system. In order to be able to compare numbers more libraries should be found and listed at the
system. In order to be able to compare numbers more libraries should be found and listed at the

Revision as of 00:49, 29 January 2010

Mizar is computer category that includes the language for writing formalized mathematical definitions and the [mathematical proof|proofs]] and the high level software that reads the language and either accepts or rejects the proof, and the library of definitions and proved theorems which can be referenced and used in new articles.

The Mizar software is available for free [1]; the distribution for various operational systems can be downloaded.

History

The Mizar bebun in 1973 as an attempt to emulate some native language of the mathematics from very beginning, starting with the most basic mathematical objects. It was created by Andrzej Trybulec and is maintained at Białystok University, Poland, the University of Alberta, Canada, and Shinshu University, Japan.

Language and the interpretation

The mizar programs are written as plain ascii files. The standard extension "miz" is recommended (but not required); so, a program maybe named as something.miz

This program can be interpreted with command "mizf", for example,

mizf something

or

mizf something.miz

The misar program is assumed to consist of lines. The interpreter either accepts or not accepts each line. The accepted lines are considered to be proven. The mizar software modifies the input file, marking there all lines that are not accepted. If all the lines are accepted, then all the theorems formulated in the program are considered as proven. If the mizar program is not accepted, then the marked lines are expected to be corrected and/or supplied with an additional proof.

Mizar libraries

The Mizar distribution includes the Mizar Mathematical Library (MML) consisting of definitions and theorems which can be referred to in newly written articles. These new articles, after having been reviewed and checked automatically, can be published in the associated Journal of Formalized Mathematics [2]

For the beginning of year 2010, the Mizar Mathematical Library (version 4.130.1076) includes 1073 articles written by 226 authors and 49548 theorems, 9487 definitions, 785 schemes, 8973 registrations, 6831 symbols and continues growing.

Example of the mizar program

The mizar libraries are built up on the base of extremely primitive mathematical objects with minimum of predetermined notation. This is the main difference from the Mathematica or Maple.

For any practical application, a lot of library definitions should be loaded before. The appropriate search for the appropriate libraries with compatible notations forms the most heavy and difficult part of the job in writing of any mizar program.

Here is an example of the mizar program that checks that 1+1=2 and 1/2-1/3=1/6:

environ
vocabularies ARYTM_1, RELAT_1, ARYTM_3, REAL_1;
notations  ORDINAL1, XCMPLX_0, XREAL_0, XXREAL_0;
constructors NUMBERS, XCMPLX_0, XXREAL_0, XREAL_0;
registrations ORDINAL1,NUMBERS, XREAL_0;
requirements  BOOLE, SUBSET, NUMERALS,ARITHM;
begin
1+1=2;
1/2-1/3=1/6;

All the capital names refer to the libraries that are loaded at the installation of the system. In order to be able to compare numbers more libraries should be found and listed at the header of the program. In particular, an example of a program, that checks the relation 2>1 is not yet available.

In principle, the mizar user may define all the symbols necessary by him/her self using the kernel mizar notations, but the problem of compatibility of notations with other mizar programs that already are written and uploaded may arise; therefore the use of already written libraries is recommended.

Any source from the MML library can be considered as a complicated example of a mizar program.

References

  1. http://mizar.org/ Mizar Home Page
  2. http://fm.mizar.org/ Journal of Formalized Mathematics