Единственное, что может происходить, это то, что у вас есть типы, которые содержат как «данные», так и «доказательства» (обычно, если вы пытаетесь создать типы уточнения с помощью sig
, или пользовательский индуктивный тип, который содержит термины проверки) и что ваши функции требуют доказательств пропозиционального равенства, которое обычно слишком сильно для таких зависимых типов.
Условия доказательства должны быть неактуальными: самый простой выход - решить эту цель, используя аксиому из ProofIrrelevance
(в stdlib).
Существуют способы без аксиом, но я считаю, что они требуют гораздо больше работы / опыта.