Hi,

thanks for your further comments.  But now I feel maybe it’s worth to attack 
the more difficult problem instead: porting the BNF_datatype [1] to HOL4.  Once 
this is done, not only I can use finite maps directly in the datatype 
definition, but also I could easily have infinite sums (:num -> CCS) in the CCS 
datatype.

Since I’ve already done with my thesis project, I have no other urgent 
HOL-related projects in hands at all. Maybe it’s a good time for me to slow 
down, restarting from Category Theory, then Isabelle, finally maybe I’ll be 
strong enough to bring HOL4 with the same strong datatype package as currently 
in Isabelle.     There’s another related concept called “nominal datatype”, I 
don’t know what is it, but it seems necessary for formalizing more powerful 
process algebra (pi-calculus, psi-calculus, etc.), I could investigate if it’s 
possible to have its feature merged into the BNF_datatype.

Anyway, this is long-term plan, I don’t make any promise. And thanks so much 
for all the help I got from HOL community!

Regards,

Chun Tian

[1] Traytel, D., Popescu, A.: Foundational, compositional (co) datatypes for 
higher-order logic: Category theory applied to theorem proving. 2012 27th 
Annual IEEE Symposium on Logic in Computer Science. 596–605 (2012).

> Il giorno 29 ott 2017, alle ore 23:27, michael.norr...@data61.csiro.au ha 
> scritto:
> 
> You would have to define every function in terms of “fix” and then come up 
> with a clause for the new constant using “Fix” as well (or prove a new 
> “axiom” for the type).  You would also need to prove new induction and cases 
> theorems.  But yes, this “cheap approach” might be doable.
> 
> Michael
> 
> On 28/10/17, 02:39, "Chun Tian" <binghe.l...@gmail.com> wrote:
> 
> 
>> Il giorno 27 ott 2017, alle ore 17:35, Chun Tian <binghe.l...@gmail.com> ha 
>> scritto:
>> 
>> Thanks for your comments.
>> 
>> If I quotient [1] the original CCS datatype into another one, I could expect 
>> to have the a “fix” constructor with a finite map, right?
>> 
>> On the the other side, what if I directly define another similar constant, 
>> say “Fix” in this form:
>> 
>> |- Fix fm X = fix (alist_to_fmap ls) X
> 
>    Sorry, it should be:
> 
>    |- Fix fm X = fix (fmap_to_alist fm) X
> 
>> 
>> And in all theorems I only use “Fix”. Is this possible (as a cheap solution) 
>> for resolving the “structural congruences” issue?
>> 
>> Regards,
>> 
>> Chun Tian
>> 
>> [1] Homeier, P.V.: Higher Order Quotients in Higher Order Logic. 
>> preparation; draft available at http://www cis …. (1969).
> 
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> hol-info mailing list
> hol-info@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/hol-info

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to