При использовании команды quotient_type я получаю следующее предупреждение: «Не определена функция карты для Example.A. Это позже вызовет проблемы».
Вот минимальный пример для запуска предупреждения (протестировано с Isabelle2017).
theory Example
imports
Main
begin
datatype 'a A = B "'a A" | C
(*for map: map *) (* uncommenting doesn't fix the warning*)
quotient_type 'a Q = "'a A" / "op ="
by (rule identity_equivp)
end
Итак, мои вопросы:
Что понимается под функцией карты в этом контексте (я знаю только концепцию функции карты в контексте функторов в функциональном программировании)?
Какое это имеет отношение к функциям отображения пакетов типов данных, например к функции, сгенерированной закомментированной строкой?
Какие проблемы возникнут позже?