Предположим, что у меня есть следующее выражение в Isabelle/HOL:Организация ограничений в Изабеллу, с тем чтобы моделировать систему
typedecl Person
typedecl Car
consts age :: "Person ⇒ int"
consts drives ::"(Person × Car) set"
consts owns ::"(Person × Car) set"
Это, как предполагается, модельное лицо и автомобилей типа с двумя отношениями между ними, называемых дисками и принадлежит, а также возрастное свойство Лица.
Я хотел бы заявить, что все, кто владеет автомобилем, несомненно, водить машину, и люди, которые водят машины больше, чем 17, так что ограничения:
(∀a. a ∈ owns ⟶ a ∈ drives)
(∀d ∈ drives. age (fst d) > 17)
Что такое лучший способ определить эти ограничения в Изабель, в том смысле, что я могу доказать некоторые свойства над моделью, если эти ограничения сохраняются?