[Agda] termination checking loop

mechvel at scico.botik.ru mechvel at scico.botik.ru
Sun Sep 29 14:57:54 CEST 2019


Dear Agda developers,

I have a module Foo.agda in which the last line for `foo' is erroneously 
set of kind  x = x.

foo mon {f} nn =
   begin-p
     f *pm mon                       =ₚ[ =ₚsym .. (*mp-comm mon f) ]
     mon *mp f                       =ₚ[ ... ]
     (mon *ₘ lmF) +mp (mon *mp fₜ)   =ₚ[ ... ]
     (lmF *ₘ mon) +mp (fₜ *pm mon)
   ∎p
   where
   lmF = lm f nn;   fₜ = tailPol f nn
   ...
   fₜ*m = fₜ*m    -- **

And the type checker of  Agda 2.6.0.1  seems to loop infinitely (> 30 
minutes, for large memory space).

1) If I replace this marked clause with the needed one, then Foo.agda is 
type-checked fast.
2) I tried to set a clause of kind  x = x  in several previous and 
similar places in Foo.agda,
    after `where` in "begin-p ... ∎p where".
    And it type-checks fast, reporting "Termination checking failed for 
the following functions: ...".

What might this mean?
As I recall, when the type checker loops infinitely, it is considered as 
a bug.

Regards,

------
Sergei


More information about the Agda mailing list