[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: [mizar] I am trying to figure out...



Cytowanie freek <freek@cs.ru.nl>:
Mizar does not allow for meaningless types like

   an empty non empty set
   an element of the empty set
   a function from a non empty set into the empty set

I disagree that they're meaningless!  They're just empty.
A rose by any other name ...
Is the empty _set_ a meaningless _set?_  No, of course it
isn't.  And likewise an empty type is not a meaningless type.

The empty set has quite precise meaning. And what is

  the empty non empty set?

In Coq I can do

Why we should mimic Coq?


      x is element of A

and    x in A?

For the same reasons that one now has types in Mizar:

    1. to have the system automatically infer that certain
       predicates hold (using the types in definitions
       and registrations)

    2. to disambiguate overloaded syntax


OK It is a valid argument.

However we need arguments to change it, not to keep it
as it is. I do not claim that it is not possible that we
eventually find such arguments.

For me the argument is that the types can have much more
natural defintions.  Now, often when I want to define a
type, Mizar won't allow me to write what should be there,
and then I just give up.


You can always use a permissive definition. Like we do with

  Element of ...
or
  Function of ..., ...

So, actually it is a technicality.


The problem is that it is difficult to anticipate the
consequences of changing the approach.


I ment something like this:

In checker to get the contradiction between a universal formula we
remove quatifiers and substitute for bound variables free variables.

Than we try to find a substitution for free variables that contradicts the other premises.

If we allow for types with the empty denotation, then we should additionally check if all free variables have non empty types. Quite unnnatural, isn't it?

In general we cannot infer

      for x being theta holds alfa
      -------------------------------
            alfa

when x does not occur in alfa

I guess that in Coq such inferences are not allowed in general.

It means that we cannot remove fictitious quantifiers.


We've had this discussion before, I'm sure.  My excuses
for being triggered.


No problem, we get better understanding the different approaches. I appreciate it.

Regards,
Andrzej