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

Re: [mizar] automatic `Subset of' typing




Hi Jesse,

unfortunately, any Fraenkel (abstract, setof) term in Mizar is just "set", there is no intelligent typing implemented for them. There have been proposals to fix that or do more - see e.g. the thread started by Freek three years ago: http://mizar.uwb.edu.pl/forum/archive/0306/msg00003.html . As with quite a few other Mizar feature requests the situation is that the "motivated users" cannot change the implementation, while the "developers" do not have the time/motivation.

I don't know of any reasonable automated way how to get around it with the current implementation if you want to work with predicate comprehension/replacement (like A(x) below). If e.g. the domain of "x" is "small", it might be a bit better to translate the reasoning about unary predicates to reasoning about subsets of that domain, and thus get it all "first-order" (e.g. write "sum(f.:A)" for A being Subset of ...), and avoid Fraenkels completely. That way you might be able to type-automate a lot.

Best,
Josef


On Wed, 15 Nov 2006, Jesse Alama wrote:

I'm working on a mizar article in which I have defined an operation
`sum' on terms of type a := `Subset of {0,1}' and an operation, say f, each
of whose values has the type `Element of {0,1}'.  I'd like to have the
term

t := { f(x) : A(x) },

where A(x) is some formula, to have the type a, so that

sum({f(x) : A(x)})

is a well-formed term.  Currently, the last expression is not
well-formed; I get error 103 ("Unknown functor") underneath the last
character `m' of `sum'.  My guess (though of course I may be mistaken)
is that I get this error because t is not known, syntactically, to
have the type a.  On this assumption, my question is: is there a
simple way of getting t to have type a?  (I suppose that there's
another way to accomplish what I'm trying to do without requiring the
term in question to have the indicated type, but it seems to me that
somehow automatically assigning the term the type a is the most
natural way to solve the problem.)  Is there some part of the MML or
mizar language that I'm missing here, or would the parser need to be
modified to accomplish what I'm describing?

Any recommendations would be appreciated!

Thanks,

Jesse

--
Jesse Alama (alama@stanford.edu)