[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: [mizar] weak types
On Thu, 20 Nov 2003, Andrzej Trybulec wrote:
> > Just repeating the argument from previous post, this seems to me pretty
> > unnatural :-). If we defined predicate
> > "t is_natural_transformation_of F1,F2" in the corresponding way, your
> > definition just says:
> >
> > assume A1: ex t st t is_natural_transformation_of F1,F2;
> > mode natural_transformation of F1,F2 -> transformation of F1,F2 means
> > it is_natural_transformation_of F1,F2;
> > existence by A1;
> >
>
> Yeah, but it is a special case. If you look to the definition of transformation
> the guarding predicate is a bit simpler.
OK.
> > > when one proves that a transformation is a natural transformation, then one
> > > has to prove first the guard (the assumption in the definition)
> >
> > So before I am allowed to prove, that t is natural, I have to prove that
> > there is something natural. Thanks.
>
> It was shortcut of course. If I prove by the definitional expansion, then I should
> to state the guard. This does not
> means that I must to prove it, if you meant a Mizar proof. Sometimes the
> justification is quite obvious.
> And, after the theory is developed, we are not pressed to prove by the
> definitional expansion.
Being lazy, I just MMLQueried this last one. NATTRA_1:mode 2 is
"natural_transformation" and NATTRA_1:pred 2 is
"is_naturally_transformable_to":
at least(NATTRA_1:mode 2,NATTRA_1:pred 2) | [th or def]
46 element(s)
at least(NATTRA_1:mode 2) butnot(NATTRA_1:pred 2) | [th or def]
11 element(s)
I did not explore the possibility, that the guard may be buried deeper in
other notions.
> Of course I would like to have better argument than just claiming that it is only
> for "consider", what about
> generalization ("let"),
(not F1 is_naturally_transformable_to F2) implies
for t being natural_transformation of F1,F2 holds t <> t
proof
assume A1: not F1 is_naturally_transformable_to F2;
let t be natural_transformation of F1,F2;
F1 is_naturally_transformable_to F2; :: by the new def of natural_transformation
then contradiction by A1;
hence thesis;
end;
I don't see a problem with "let". If the type is empty, and you have local
constant of that type, you just get contradiction. That's why we
have to avoid "consider". Already now you can write things like
"assume c is circular & c is square".
The question is whether to allow "reconsidering" into weak types, and I
would be for that.
> widening the type (Czeslaw pointed to it),
Could you be more specific?
> and ,what is
> somewhat related to the widening, proving by the definitional expansion a
> qualifying sentence (the mother type might be non empty),
It is the same as e.g. for attributes or predicates, what should be the
problem?
> removing or ignoring the
> fictitious quantifiers.
We discussed that.
> And what about problems that I cannot anticipate just now.
If you cannot, then they are really hard to anticipate just now :-).
> A proof starting with
> let X be empty infinite set
> looks pretty nice.
How about:
let X be empty Element of {};
I hope my simple algorithm for producing answers to question of this kind
is already apparent.
> I guess you want to neglect the existential registration of
> clusters as well.
No, existential registration is important for "consider" at least, maybe
also for removing of fictitious variables. I just want to be allowed to
work with unregistered clusters (generally types), if it is useful.
I find it both more useful and more intuitive than permissive or "default"
type definitions.
I think I understand your real worry here:
It is now quite painful to work with permissive types, and almost
impossible to work with unregistered clusters, and it pushes the authors
to prove the existence condition, even if the effort is not worth it.
So this way, you are increasing the chance, that what is in MML, is not
complete nonsense.
I agree to some extent. But as I wrote, if someone wants to write garbage,
you will not prevent him by any means, e.g. the "is" suggested by Freek
can be trivially used instead. Being a victim of such restrictive
measures, which both make it hard to establish good type mechanism in some
cases, and distort the normal mathematical understanding in others, I find
it hard to support them.
Formalized mathematics is a sort of censorship, but if it is unreasonable,
you will only loose the real enthusiasts. Garbage producers will stay :-).
Josef