двух классов определены, содержащие ту же самую функцию, но когда эти два класса используют в местности есть ошибка объединения:Изабель и класс перегрузки
theory Scratch
imports Main
begin
class c1 =
fixes getName :: "'a ⇒ string"
class c2 =
fixes getName :: "'a ⇒ string"
locale c12 =
fixes match :: "('a::c1) ⇒ ('b::c2) ⇒ bool"
assumes as : "match a b ⟶ (getName a) = (getName b)"
end
Ошибка объединения решается путем переименования (GetName б) (getName_b b) и использовать определение класса
class c2 =
fixes getName_b :: "'a ⇒ string"
Существует ли решение без переименования?
Here решение предоставляется, когда перегрузка необходима, когда типы данных являются параметрами.