Есть библиотека Isabelle / HOL, на которой я хочу построить новые определения и доказательства.Библиотека определяет locale2, на которой я хотел бы построить.Внутри locale2 есть интерпретация locale1.
Чтобы расширить locale2 в отдельной теории, я определяю locale3 = locale2.Однако внутри locale3 я не могу понять, как получить доступ к интерпретации locale2 для locale1.Как я могу это сделать?(Я вообще вообще об этом правильно говорю?)
Ниже приведен MWE.Это теория библиотеки с языком, который я хочу расширить:
theory ExistingLibrary
imports Main
begin
(* this is the locale with the function I want *)
locale locale1 = assumes True
begin
fun inc :: "nat ⇒ nat"
where "inc n = n + 1"
end
(* this is the locale that interprets the locale I want *)
locale locale2 = assumes True
begin
interpretation I: locale1
by unfold_locales auto
end
end
Это моя теория расширения.Моя попытка находится внизу, вызывая ошибку:
theory MyExtension
imports ExistingLibrary
begin
locale locale3 = locale2
begin
definition x :: nat
where "x = I.inc 7" (* Undefined constant: "I.inc" *)
end
end