http://deni-ok.livejournal.com/ ([identity profile] deni-ok.livejournal.com) wrote in [personal profile] deniok 2014-01-08 05:17 pm (UTC)

data _≡_ {A : Set} : A → A → Set where
  refl : ∀ x → x ≡ x

data _≐_ {A : Set} (x : A) : A → Set where
  refl' : x ≐ x

lem1 : {A : Set} (x y : A) →  x ≡ y → x ≐ y
lem1 x .x (refl .x) = refl'

lem2 : {A : Set} (x y : A) →  x ≐ y → x ≡ y
lem2 x .x refl' = refl x

:)

Конфлюэнтность же никто не отменял. Тайпчекер приводит то, что требуется уравнять, к нормальной форме, тупо пользуясь definitional equality там, где это возможно, и сравнивает. В первом случае от делает это в трех местах
ex : (x : ℕ) → zero + suc x ≡ suc (zero + x)
ex x = refl (zero + zero + suc x)
, а во втором в двух. Но нормальная форма единственна (suc x), поэтому разницы нет.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting