[Agda] Normalisation before termination checking

Nils Anders Danielsson nils.anders.danielsson at gmail.com
Tue Jul 22 21:26:24 CEST 2008


On Tue, Jul 22, 2008 at 8:06 PM, Anton Setzer <A.G.Setzer at swansea.ac.uk> wrote:
>
> Can you explain what the exact problem is? There might be a theoretical
> problem behind this, and making a quick adhoc fix might not be the
> right solution.

Let us say that you have two guarded definitions,

  a ~ c₁ e₁ (c₂ (e₂ i) a)
  b ~ c₁ e₁ (c₂ (e₂ j) b),

where c₁ and c₂ are codata constructors, and e₁ and e₂ are arbitrarily
large expressions not involving a and b. In this case you cannot
abstract out the common part of the definitions, because the resulting
code is not guarded:

  f x y = c₁ e₁ (c₂ (e₂ x) y)
  a ~ f i a
  b ~ f j b.

-- 
/NAD


More information about the Agda mailing list