我问了一系列问题以达到我可以在 Isabelle 中定义以下简单模型的目的,但我仍然坚持得到我想要的东西。我尝试用一个例子非常简要地描述这个问题:
例子:
假设我有两个类Person和Car,Person 拥有汽车并驾驶汽车。所以我需要以下类型/集:
人
车
拥有 (*拥有将人的元素与汽车相关联*)
驱动器 (*驱动器也将人的元素与汽车相关联*)
问题:
我想在 Isabelle 中制定上述示例是一种提供以下灵活性的方式:
使我能够定义一些约束;例如:如果一个人拥有一辆车,他/她肯定会开车。我可以通过使用来自这里的友好答案来做到这一点。
让我能够定义一个新的集合/类型,即C,其元素是Car和owns元素的不相交并集。这是我坚持的第一个地方:Car和owns是不同的类型,那么我该如何合并它们?
能够在数(2)个中多次继续该过程;例如,定义一个新的类型/集合,即D ,它是C和驱动器的不相交并集。
在数字(2)和(3)中,我想保留新定义的集合/类型的元素的属性/特征;例如,如果我要为 Person定义一个属性age (请参见此处),我希望C的元素保留此属性,因为我可以访问C中类型为 Person 的元素的此属性。因此,如果 o1 是C中类型为owns的元素,我想访问与 o1 相关的源(即 Person)和目标(Car)。
我将不胜感激任何意见和建议。