Hi Michael,

thanks for the explanation in details! Now I finally understand why the
two versions of `sup` can be proved equivalent, while the two "inf"
cannot.  Any way, I'll follow your idea and submit a fix of the
duplicated definitions of `inf` soon.

--Chun

Il 23/02/19 07:00, michael.norr...@data61.csiro.au ha scritto:
> It’s possible that both definitions will turn into applications of
> Hilbert choice applied to equivalent predicates. 
> 
>  
> 
> If inf1 s = @x. P x, and inf2 s = @x. Q x, but it happens that !x. P x
> <=> Q x, then it is indeed the case that inf1 = inf2, even on arguments
> where you’d prefer them not to be defined.  Equally though, it’s quite
> reasonable to imagine that they weren’t defined so conveniently, and you
> will just have
> 
>  
> 
>    s has-a-lower-bound ==> (inf1 s = inf2 s)
> 
>  
> 
> In this situation, I might prove the above, and then replace all the
> occurrences of one with the other under the expectation that the
> theorems about the one that is replaced are just as true of the other.
> 
>  
> 
> Michael
> 
>  
> 
> *From: *"Chun Tian (binghe)" <binghe.l...@gmail.com>
> *Date: *Thursday, 21 February 2019 at 20:52
> *To: *hol-info <hol-info@lists.sourceforge.net>
> *Subject: *[Hol-info] The equivalence of two definitions of "inf"
> (infimum) of real sets?
> 
>  
> 
> Hi,
> 
>  
> 
> (this is another (strange) question about undefined values in total
> functions)
> 
>  
> 
> currently there’re two definitions of “inf” (infimum) for real sets in
> HOL4, one is at “src/real/realScript.sml”:
> 
>    [*inf_def*]  Definition
> 
>       
> 
>       ⊢ ∀p. inf p = -sup (λr. p (-r))
> 
> The other is at “src/probability/iterateScript.sml”, ported from HOL Light:
> 
>  
> 
>    [*inf*]  Definition
> 
>       
> 
>       ⊢ ∀s.
> 
>             inf s =
> 
>             @a. (∀x. x ∈ s ⇒ a ≤ x) ∧ ∀b. (∀x. x ∈ s ⇒ b ≤ x) ⇒ b ≤ a
> 
> I believe they’re both correct definitions, as the related theorems
> derived from them all make senses. However, if I load “iterateTheory”,
> or “real_topologyTheory” which in turn uses “iterateTheory”, than all
> theorems about the “inf” defined at “realTheory” would be invalid, as
> they’re not for the latest “inf”.  Thus my goal is to merge the two
> definitions of “inf” and have a precise union of all theorems about them.
> 
>  
> 
> Usually this kind of definition merging is done by changing the later
> definition (in iterateTheory) into an equivalent theorem, i.e. to prove that
> 
>  
> 
> |- ∀s. inf s = @a. (∀x. x ∈ s ⇒ a ≤ x) ∧ ∀b. (∀x. x ∈ s ⇒ b ≤ x) ⇒ b ≤ a
> 
>  
> 
> given the definition: inf p = -sup (λr. p (-r))
> 
>  
> 
> But I *feel* this is impossible, because “inf” of real set is not
> defined on all real sets. If I temporarily use ``inf’`` as the
> alternative definition of “inf” in iterateTheory, the above equivalent
> theorem becomes:
> 
>  
> 
> |- ∀s. inf s = inf’ s
> 
>  
> 
> but for s = {}, or any real sets without a lower bound, either “inf s”
> or “inf’ s” is not defined, should above theorem still be proved?  If
> not, then I have to re-prove all “inf” theorems in iterateTheory using
> lemmas from realTheory. This is more difficult.
> 
>  
> 
> Regards,
> 
>  
> 
> Chun Tian
> 
>  
> 
> P. S. in extrealTheory, “sup” and “inf” are really total functions, thus
> much easier to work with, e.g. I can prove things like: (in at least one
> of my Math book, it said “inf {} = PosInf” must be specially defined,
> but this is actually not needed)
> 
>    [*sup_empty*]  Theorem
> 
>       
> 
>       ⊢ sup ∅ = NegInf
> 
>    [*inf_empty*]  Theorem
> 
>       
> 
>       ⊢ inf ∅ = PosInf
> 
>    [*inf_univ*]  Theorem
> 
>       
> 
>       ⊢ inf 𝕌(:extreal) = NegInf
> 
>    [*sup_univ*]  Theorem
> 
>       
> 
>       ⊢ sup 𝕌(:extreal) = PosInf
> 
>  
> 
> 
> 
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to