[Agda] Absurd question

Wolfram Kahl kahl at cas.mcmaster.ca
Fri May 24 18:51:56 CEST 2013


Martin,

  since more recently, you wrote:

> But they should have the same type, and this should be enough to
> get blah going.

, I still finish my old attempt at an answer to one aspect of your question:

On Fri, May 24, 2013 at 12:26:51AM +0100, Martin Escardo wrote:
> At the risk of polluting this list with too many messages, I make 
> explicit what I said below, in the previous message:
> 
> I have two closed terms dialogue-tree and dialogue-tree' with 
> (literally) the same closed type. The definition of one term uses \(), 
> and the definition of the other term uses y instead.

module Escardo where

open import Data.Fin using (Fin)
open import Relation.Binary.PropositionalEquality using (_≡_)

-- |dt| and |dt′| have the same closed type:

dt : Set
dt = Fin 1

dt′ : Set
dt′ = Fin 2

> But a certain definition (namely dialogue-tree-correct) type-checks if 
> one of its subterms is dialogue-tree', but doesn't if it is 
> dialogue-tree. But surely, because everything is closed, it shouldn't 
> matter which term we use (even a postulated term should do).

-- |dt-correct| type-checks:
dt-correct : Set
dt-correct = (x : Fin 1) (y : dt) → x ≡ y

-- |dt′-incorrect| does not type-check:
-- dt′-incorrect : Set
-- dt′-incorrect = (x : Fin 1) (y : dt′) → x ≡ y


Wolfram


More information about the Agda mailing list