Изабель: несовместимые функции для типа данных - PullRequest
1 голос
/ 18 июня 2020

Следующая теория Изабель:

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 », ни вложенным рекурсивным путем Сам

Кто-нибудь знает значение этих сообщений об ошибках? Есть подсказки, как их решить?

...