[Agda] Newbie questions after reading Dependently Typed Programming in Agda

Conor McBride conor at strictlypositive.org
Fri Oct 15 14:38:11 CEST 2010


On 15 Oct 2010, at 13:28, Thorsten Altenkirch wrote:

>
> On 15 Oct 2010, at 14:15, Nicolas Pouillard wrote:
>
>> elim-EmptyRec : ∀ {A : Set} → EmptyRec → A
>> elim-EmptyRec x = ?
>
> Good point. What about
>
> record EmptyRec : Set where
> constructor blub
> field
>   bla : EmptyRec
>
> elim-EmptyRec : ∀ {A : Set} → EmptyRec → A
> elim-EmptyRec (blub y) = elim-EmptyRec y

And drop eta, of course, otherwise that's

> somehow one would think that
>
> elim-EmptyRec y = elim-EmptyRec (EmptyRec.bla y)

in disguise.

>
> should work, but I think this can destroy normalisation.

Combining eta-expansion with strict constructor matching breaks
subject reduction.

Plus ça change

Conor



More information about the Agda mailing list