Во-первых, я уже просмотрел несколько связанных материалов, в том числе книгу HoTT и этот вопрос .
Но я все еще в замешательстве и желаюобъяснение, свободное от Агды, но непосредственно от его математической формулы.После удаления точечной нотации J-аксиома затем говорит вот так, чья сигнатура типа полностью совпадает с ответом на вопрос, который я упомянул выше:
J : forall {A : Set} {C : (x y : A) → (x ≡ y) → Set} →
(c : ∀ x → C x x refl) →
(x y : A) → (p : x ≡ y) → C x y p
, отмечая, что последняя строка просит наспредоставить х, у и р.Тогда почему
J c x x refl = c x
, (единственное отличие в том, что я удалил обозначение точки)?Или сказать, почему второй x написан в x, а не в y?
Я действительно обдумал этот вопрос и получил объяснение, но не могу убедиться, что я прав.Типовая сигнатура J находится в пропозициональном мире, но ее определение в оценочном мире.Мы строим класс пропозиционального равенства шаг за шагом, но все оценочные равные переменные могут быть мгновенно переписаны друг в друга, и когда мы используем J, у нас уже должен быть x, по существу равный y (поскольку мы собираемся предоставить путь для этого),Но если мои рассуждения имеют безупречный смысл, оглядываясь назад на этот вопрос, почему мы снова пишем
cong : ∀ { a b} { A : Set a } { B : Set b }
(f : A → B ) {m n} → m ≡ n → f m ≡ f n
cong f {x} {y} p = J {C = \x y p → f x ≡ f y}
(\_ → refl)
x y p
, где последняя строка дает x, y, p, но не x, x, p?