> So I think the key is to make sure that “undefined” thing really
undefined, such that whenever it appears, the proof cannot proceed any more

I think this is exactly what is impossible to do in HOL: it is a logic of
total functions.

On Wed, 20 Feb 2019 at 15:26, Chun Tian (binghe) <binghe.l...@gmail.com>
wrote:

> Well, as the purpose of optionTheory is to augment any type with one more
> value, for (at least) extreals, it would be equivalent to have that
> “undefined” thing defined as part of the datatype definition:
>
> val extreal_def = Datatype
>    `extreal = NegInf | PosInf | Normal real | Undefined`;
>
> However, once “Undefined” is actually defined, it’s then a disaster to
> affect almost all arithmetic laws. For a number which is either PosInf nor
> NegInf, now we can’t say it must be a (Normal x) any more, and many
> theorems will be broken.  To fix it, we have to treat this “Undefined” as
> something like those NaNs in IEEE 754 standard and define their orders and
> arithmetic laws, then all these work are unnecessary for formalization of
> pure math theorems.
>
> So I think the key is to make sure that “undefined” thing really
> undefined, such that whenever it appears, the proof cannot proceed any
> more, except for syntactic rewriting, which is inevitable in HOL.   Keeping
> ``0 / 0 = 0`` as before, could be another option, but I have concerns to
> convince mathematicians to accept this fact since I aim at precisely
> reproduce those pure math proofs under the “same” formal system with math
> books (except for the subtle differences between ZFC and HOL not affecting
> the math theories that I’m working with.)
>
> —Chun
>
> Il giorno 20 feb 2019, alle ore 13:16, Ramana Kumar <
> ramana.ku...@cl.cam.ac.uk> ha scritto:
>
> I'd say one of the stronger ways to get "undefined" is to add an element
> to your type representing undefinedness, e.g., make it (/) : real option ->
> real option -> real option, where NONE represents "undefined". But then you
> will have a lot of bookkeeping to deal with...
> I don't suggest this seriously in the case of division -- I would rather
> suggest accepting the usual treatment of these partial functions as a small
> price for the benefits of working in a logic of (only) total functions.
>
> On Wed, 20 Feb 2019 at 12:00, Lawrence Paulson <l...@cam.ac.uk> wrote:
>
>> None of these attempts make any sense. In HOL and similar systems
>> (including Isabelle/HOL), it’s *impossible* to arrange for x/0 to be
>> undefined in any strong sense. Fortunately, it’s consistent and harmless to
>> put x/0 = 0.
>>
>> Larry Paulson
>>
>>
>> > On 20 Feb 2019, at 05:48, hol-info-requ...@lists.sourceforge.net wrote:
>> >
>> > I run some experiments so to check if it is violating any fundamental
>> rule.
>> > So far it went good.
>>
>>
>>
>> _______________________________________________
>> hol-info mailing list
>> hol-info@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/hol-info
>>
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
>
>
>
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to