[Agda] example with insertion to list

Sergei Meshveliani mechvel at botik.ru
Tue Feb 7 14:21:07 CET 2017


On Tue, 2017-02-07 at 15:20 +0300, Sergei Meshveliani wrote:
> Please,
> 
> can anybody fix the proof for  lemma2  in the attached code 
> (about 140 lines) ?
> 
> It is about a certain insertion of a natural into a decreasingly ordered
> list of naturals. Such a list is called  Pol.
> Insertion of  e  into  es  is according to _>_, and it is without
> copying, that is when  es  contains any  e' ≡ e,  the result is  es.
> 
> Insertion is called  mon+. 
> lemma1 and lemma2  are certain two very simple statements about
> insertion of  e  into  (e' ∷ es)  for  e < e'.
> 
> lemma1  is for the case of  es = [].  And it is proved trivially.
> 
> And a similar proof for  lemma2  is not type-checked (in Agda 2.5.2).
> Moreover, I do not find any proof to satisfy Agda.
> 
> Maybe, this is a bug in Agda?


In this code, the  Max  structure and inequality are brought there to
mon+ and extMon+  in order to prove termination. 
This complicates  mon+,  and proof search for its properties.
  
mon+  can be greatly simplified by introducing `insert' for insertion of
e  into  es  without providing a proof in recursion,
and then, by adding a proof for 
                      DecrOrdered es -> DecrOrdered (insert e es).

I hope, there  lemma2  will be easier to prove. 

Still:  what can be a proof for Agda for the original implementation of
mon+ ?

Regards,

------
Sergei



More information about the Agda mailing list