+ How to do Computer Algebra in Mizar

Problem description

Eventually, users will want to have things like inverse matrix for concrete 5x5 matrices quickly available in Mizar.

Solutions:

some suggestion occurred in yesterday's discussion with AdamNaumowicz:

Noaction:

current state: let the users follow the algorithms and prove that every step is correct for any computation.

Cons: very user unfriendly.

Modules wired into checker:

currently e.g. numbers are implemented this way, "+" being interpreted as the Pascal's "+" (for rational numbers).

Cons: no proof checking takes place for such computations, normal users cannot add their own algorithms, and are effectively handled as in NOACTION when a new need arises

Enhancement of MizarSchemes?

the MizarSchemes? already now are outside the standard first-order language, however, we feel save about them, because they are also proof-checked by Mizar. We could enhance them even more, to allow for a Turing-complete language inside them, proof-check them as schemes, and interpret their language in the Mizar implementation (like the MizarSchematizer? now interprets scheme inferences)

Cons: may seem too unrestricted to some purists, the implementation would cost a bit

More on this, now rather motivated by the ClusterImplementation: The cluster mechanism actually is a way how to program Mizar already now. Even though some Mizar people won't hear about it, it is actually very close to a partial Prolog implementation (functorial and conditional clusters being clauses, and their implementation a SLD derivation). The idea is to allow recursive predicate definitions (e.g. simply as Prolog programs, i.e. couple of clauses written in a cluster-like (sequent) notation), to check that e.g. given some initial conditions, these programs are finite (ending), and then use a cluster-like (more pollitically correct than Prolog-like) implementation to really do the computations in the checker. The recursively defined predicates would be handled by the system as any other predicates, the system should be able to expand the computations into a single-step proofs if the user wants it. I think there are systems (Coq?) that already implement recursive definitions, and we could have a look there for implementation ideas. -- JosefUrban - 05 Aug 2002

Automated generation of proofs

This is motivated by the work done for circuits. The proofs are generated by external programs (e.g. perl scripts) which translate the algorithms to low-level Mizar proofs based on MML theorems or schemes claiming the correctness of the basic computation steps.

Cons: length of the generated proofs (it may seem preferable to hide such proofs in the normal Mizar texts), the external proofs-generating language is not standardized in any way, nor the translation conventions and user interface (doing all of this may in practice lead to the enhancements-of-schemes solution)

-- JosefUrban - 29 Jul 2002

WebForm
TopicClassification FeatureBrainstorming
ProjectGroup?

ImplementationDate? N/A
Topic revision: r2 - 2002-08-05 - 18:13:00 - JosefUrban
 
Mizar TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback