Код ниже отражает мой вопрос.
Мое намерение состоит в том, чтобы создать P
из Vec N (suc n)
из P
из Vec N (n + 1)
. Мой опыт использования subst
пропозиционального равенства говорит мне, что это должен быть способ сделать это.
open import Relation.Binary.HeterogeneousEquality
postulate
n : ℕ
xs : Vec ℕ (n + 1)
ys : Vec ℕ (suc n)
eq : xs ≅ ys
data P : ∀ {n} → Vec ℕ n → Set where
lemma : P xs → P ys
lemma h = subst (λ i → P i) eq h
Очевидно, что лемма не проверяет тип, потому что (n + 1) и (su c n ) не одно и то же Nat.
Правильно ли я использую HeterogeneEquality? Если нет, то как правильно заменить Vec N (n+1)
на Vec N (suc n)
?