[POPLmark] Submission

jevgenijs@dva.lv jevgenijs at dva.lv
Thu Aug 25 14:22:59 EDT 2005


Here attached submission for PoplMark challenges 1A, 2A 
with explicit (directly computable) evaluation relation 
and progress operator, so providing basis also for challenge 3
(without records).
Coq solution with de Bruijn nameless representation is based on 
previous submission of Jerome Vouillon with numerous simplifications.
The role of natural numbers clarified by providing interface 
(see module type T_Nat in sub_def.v) of all their properties used 
outside implementation module (no induction principles, additional 
recursion operators and even no order relation required).
This could help with modifications and translations to others representations.
Among most interesting findings there could be mentioned the usage of 
functions t_semi_P, t_semi_S and their properties t_semi_S_P, t_semi_S_2,
which allows removing case analysis on order relation for natural numbers.
Also some parts of paper proofs were simplified. 
For example lemmas on inversions of typing rules 
(T_Abs_inversion and T_Tabs_inversion) allows avoiding rather 
complicated reasoning for lemmas A.12, A.13, 
where existence of some types should be established by induction. 
All additional inductive definitions used in Jerome Vouillon's 
solution were removed, by introducing explicit operators. 
This results in somehow more lengthy proofs, but to my mind justified, 
since any inductive definitions with their properties are just extra 
assumptions (proven metatheoreticaly to be consistent).
It could became especially important for abstract solutions 
(which I am planning to work on), 
where we are explicitly indicate all required assumptions and 
any extra assumptions are diminishing quality of such solutions.
Evaluation relation (red) and reduction step (progr) are 
defined explicitly as Coq fixpoint operators, 
so basically providing solution for challenge 3 (without records).
One can easily extract them as Ocaml/Haskell programs or use 
'eval compute in' statement directly within Coq environment.
For the latest case slight modification of development required, 
since Coq canonic natural numbers are hidden within module M_T_Nat 
(see sub_def.v).
One can change opaque definition 'Module M_T_Nat:T_Nat' 
to transparent 'Module M_T_Nat<:T_Nat', 
but some proofs will also require changes since Coq will do more
automatic reductions for transparent definitions.
 
There could be also added verification of entered terms and verification 
programs extracted, similar to development of Bruno Barras for 
Calculus of Construction (see http://pauillac.inria.fr/~barras).  
Same development could be used as example of technique to translate 
name-carrying terms and to define their alpha-equivalence.  

In case there will be time (also need and response), 
I am planning to do something also with name-caring syntax, 
at least to show its correspondence with de Bruijn syntax and to provide 
explicit operators for alpha-equivalence 
(especially waiting for more details of Urban's and Tasson's approach 
(http://www.mathematik.uni-muenchen.de/~urban/nominal), possible will try to 
implement it with Coq).
Any cooperation is desirable; there is lot to do, but not having sufficient 
time.For immediate contribution one can try to improve implementation of module
M_T_Nat by exposing all used properties of natural numbers,
removing usage of omega and reducing compilation time 
(which now is too high, probably tactics used are proving same things many 
times). Suggestion for future work or comments are welcome.
Also, if there are some possibilities to host separate web site devoted 
to Coq solutions, I will be glad to contribute by either maintaining it or 
just by providing information.

Best Regards.
Jevgenijs Sallinens 
(PhD in mathematics, currently programmer) 
           



-------------------------------------------------
This mail sent through IMP: http://webmail.dva.lv/
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: compile.txt
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/compile-0001.txt
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: tactics.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/tactics-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sub_defs.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/sub_defs-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sub.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/sub-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: typ_defs.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/typ_defs-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: typ.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/typ-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: red_defs.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/red_defs-0001.ksh
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: red.v
Url: http://lists.seas.upenn.edu/pipermail/poplmark/attachments/20050825/09db451c/red-0001.ksh


More information about the Poplmark mailing list