[Agda] Stymied by a proof irrelevance requirement

Jacques Carette carette at mcmaster.ca
Tue Apr 2 03:36:26 CEST 2013


On 13-04-01 09:07 PM, Wolfram Kahl wrote:
> You need a dependent variant of cong₂ that is ``missing'' from
> Relation.Binary.PropositionalEquality:
>
> cong₂D  :  {a b c : Level} {A : Set a} {B : A → Set b} {C : Set c} (f : (x : A) → B x → C)
>            →  {x₁ x₂ : A} {y₁ : B x₁} {y₂ : B x₂}
>            →  (x₁≡x₂ : x₁ ≡ x₂) → y₁ ≡ subst B (sym x₁≡x₂) y₂ → f x₁ y₁ ≡ f x₂ y₂
> cong₂D f refl refl = refl

Thanks Wolfram, that was indeed exactly what I needed.  I had knew I had 
to use a variant of cong₂ here, as well as proof-irrelevance, but this 
exact use of 'subst' may well have eluded me for quite some time.

Also, might it be a good idea to "upgrade" the standard library's cong₂ 
to this dependent version?

Jacques


More information about the Agda mailing list