reductions in Mizar

Artur Kornilowicz <[email protected]>
Newsgroups gmane.comp.mathematics.mizar
Message-ID <Pine.SOL.4.64.1201251525330.21407@math>
Hello,

in Mizar version 7.12.02, which will be issued officially soon,
a new mechanism, called reductions, has been implemented.

Reductions are an attempt to increase power of the Mizar checker.

Syntax is:

registration
   let x_1,...,x_n;
   reduce term1(x_1,...,x_n) to term2(x_1,...,x_n);
   reducibility
   proof
     thus term1(x_1,...,x_n) = term2(x_1,...,x_n);
   end;
end;

where term2 has to be a _subterm_ of term1. This restriction is a result 
of a Mizar principle, that the system does not generate new terms itself 
(with very few exceptions).

Correctness condition to be proved is "reducibility".

Examples of reductions are:

reduce X \/ {} to X

reduce union {} to {}


Reductions are treated by equalizer. Whenever system finds a term which 
can be matched to the 'term1', equivalence classes of 'term1' and its 
subterm 'term2' are joined.


An important restriction of usage reductions is that 'term1' has to occur 
explicitly in an equality. For example, having a reduction

registration
   let X be set;
   reduce X \/ {} to X;
   reducibility;
end;

a reasoning

now
   let X be set;
   X \/ {} = X;
end;

is accepted without any reference, while

now
   let X be set;
   set A = {};
   X \/ A = X;
             *4
end;

not.

The reason is that reductions are applied at the very beginning stage of 
building of the congruence closure performed by the equalizer.


Reductions are imported to a Mizar article through environment directive
"registrations".

Best regards
Artur
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.