[POPLmark] The purpose of challenge problems?

Jesper Bengtson jesperb at it.uu.se
Tue Jun 6 04:51:38 EDT 2006


Benjamin Pierce wrote:

>Continuing a previous discussion... :-)
>
>  
>
>>It's struck me that there's been a bit of a disconnect in the last
>>week's discussion of new challenge problems.  I think the issue is  
>>that
>>we are not in agreement as to their purpose.  So I'd like to ask the
>>question, what is the purpose to a new challenge problem?
>>    
>>
>
>For me, there are two main motivations for thinking about new  
>challenge problems:
>
>1) Several people (Randy Pollack, for example) have made the point  
>that, in some sense, the POPLMark challenge as it stands may be too  
>*easy*.  Although it's got non-trivial binding problems and some  
>slightly intricate inductive proofs, there may be other binding  
>situations (dependent records have been mentioned as an example,  
>IIRC) that will stress terms-with-binding representation strategies  
>significantly harder than Fsub does.  Since representation of binding  
>keeps appearing as a key issue in formalizing POPL-like proofs, this  
>would be nice to know more about.
>
>2) Looking beyond variable binding, one might wonder how various  
>proof assistants fare on a broad range of tasks that come up in POPL- 
>ish reasoning.  Inductive proofs are the bread and butter, which is  
>why the original POPLMark  Challenge focused there, but one also  
>wants to know that one's assistant will be good for co-induction,  
>logical relations arguments, combinatorial reasoning involving  
>significant numerical manipulations, algebra, etc., etc.
>
>Of the two, (1) is both more immediate and better delimited, so  
>perhaps it is good to focus there.  But it would be even nicer to  
>identify problems with aspects of both 1 and 2 -- this was the reason  
>for thinking about things like pi-calculus.
>
>  
>
I have just finished formalising the pi-calculus in Isabelle using 
nominal logic. I have proven so far that strong equivalence is a 
congruence and that it preserves the rules for structural congruence, 
i.e. if two processes are structurally congruent then they are also 
strongly equivalent (and strongly bisimilar). Similar work has been done 
in Coq and Isabelle/HOL.

Bisimulation is defined coinductively but the core of all bisimulation 
proofs is done on a simulation level. Once simulation in one direction 
is proven, a coinductive argument can be applied and the symetric 
version of the bisimulation proof can be inferred automatically.

The sources can be found at http://www.it.uu.se/katalog/jesperb/pi.html

It is a bit difficult to find small well contained challenge problems 
for the pi-calculus. My next challenge will be proving that weak 
equivalence is a congruence and see how well my theories for strong 
equivalence apply here. Another challenge is including support for 
defining processes recursively so that the theorem prover can be used 
for actual model checking. Modelling the polyadic pi-calculus where 
lists of bound names can be sent and received across channels could also 
be a challenge.

Best regards

/Jesper


More information about the Poplmark mailing list