Я новичок в Isabelle/HOL (хотя и не в HOL), поэтому решил начать обучение, работая над примерами в отличный "prog-prove" tutorial. Я застрял в контексте бесплатной грамматики (упражнение 3.5 на стр. 4
Предположим, что у меня есть следующее выражение в Isabelle/HOL: typedecl Person
typedecl Car
consts age :: "Person ⇒ int"
consts drives ::"(Person × Car) set"
consts owns ::"(Person × Car) set"
У меня есть следующий код в Isabelle: typedecl Person
consts age :: "Person ⇒ int"
lemma "⟦(∀p::Person. age p > 20);p ∈ Person⟧⟹ age p > 20"
apply (auto)
done
автоматического метод доказательст
У меня есть следующий код в Isabelle: typedecl type1
typedecl type2
consts
A::"type1 set"
B::"type2 set"
Когда я хочу использовать операцию объединения с А и В, как показано ниже: axiom
Вопрос относительно подтипов в Изабель очень длинный here. Так что мой простой вопрос в том, что как я могу определить тип B, чтобы быть подтипом А если я определяю, как показано ниже: typedecl A
Де