Следующая теория Изабель:
theory Example
imports "HOL-Nominal.Nominal"
begin
atom_decl vrs
nominal_datatype ty =
A
| B "ty"
| C "ty"
nominal_primrec
cv dv :: "ty ⇒ vrs list"
where
"cv A = []"
| "cv (B T) = dv T"
| "cv (C T) = cv T"
| "dv A = []"
| "dv (B T) = cv T"
| "dv (C T) = dv T"
end
завершается ошибкой:
Nominal primre c ошибка определения: несовместимые функции для типа данных "Example.ty" in " cv (BT) = dv T "
Если удалить номинальность, вы получите ошибку:
« ty »не является ни взаимно рекурсивным с« ty », ни вложенным рекурсивным путем Сам
Кто-нибудь знает значение этих сообщений об ошибках? Есть подсказки, как их решить?