> In fact I'm not sure I appreciate partial functions such as supw
> returns a value not in the
> base set in case there is no solution. The reason is that I find
> idioms such as
>
> (R supw A) e. X
>
> counterintuitive. Its exact meaning is "A has a supremum". But the
> idiom looks like
> as if it means "the supremum is an element of X".
Well, to me they say the same thing. If the supw isn't an
element of the domain of discourse X, then it is not a valid
value. What else could not being in the domain of discourse
possibly mean?
Anyway, I propose a solution with the Undef function below.
> I think it would be better if we accepted the values of such functions
> is a collection of
> values. This collection would be empty in case the supremum doesn't
> exist. And it would
> be a singleton in case the supremum exists. Thus to write that a
> supremum exists we would
> write (R supw A) =/= (/). And in case the supremum exists one would
> extract it with a
> union S = U. (R supw A) and would use S then.
I think this would be too restrictive. It would mean we
can't, for example, have partial functions on sets of
ordinals, since (/) is an ordinal. In addition, not having
(/) in a base set is an unnatural restriction that isn't
required by the literature and would require an additional
restrictive condition on the base set of all structures.
One solution (but wrong IMO) is to have a partial function
evaluate to the universe V when it is undefined. Then there
will be no ambiguity, since it won't exist at all! Although
that may be theoretically elegant in some sense, practically
speaking it would make a lot of theorems very awkward.
Imagine if we had to prove "E! ..." every time we wanted
to use theorem 'fvex'.
What I propose is the function Undef - see df-undef in my
mathbox on
us2.metamath.org. I use it to return the
undefined value of the restricted iota function, which in
turn is used by my mathbox version of supremum, df-lub. If
the base set is X and S is a sup, we can say either "S e. X"
or "S =/= (Undef ` X)" to say that S is defined, according
to your preference. Hopefully this will satisfy your your
objection.
Over time, I may replace the current Poset and
supw with the PosetNEW and lub in my mathbox. I want to be
satisfied that the new df-struct is a useful approach,
though.
Note, by the way, that the current supw already returns
( Undef ` X ), just not explicitly. I think I am going to
put Undef and restricted iota functions in the main
set.mm
for general use in a few days, since I think they will be
generally useful (and are not dependent on the new df-struct
stuff). Then you can say "(R supw A) =/= ( Undef ` X )"
instead of "(R supw A) e. X", if you want.
Norm
http://us.metamath.org/email.html