Isabelle中的范围限制/域限制

时间:2016-02-08 12:54:46

标签: set range symbols restriction isabelle

我正在尝试将模式输入到Isabelle中,但是当我将范围限制或域限制添加到它不想解析的定理证明器中时。我在LaTeX中有以下架构:

\begin{schema}{VideoShop}
members: \power PERSON \\
rented: PERSON \rel TITLE \\
stockLevel: TITLE \pfun \nat
\where
\dom rented \subseteq members \\
\ran rented \subseteq \dom stockLevel \\
\forall t: \ran rented @ \# (rented \rres \{t\}) \leq stockLevel~t
\end{schema}

将此输入Isabelle时,我得到以下内容:

locale videoshop = 
fixes members :: "PERSON set"
and rented :: "(PERSON * TITLE) set"
and stockLevel :: "(TITLE * nat) set"
assumes "Domain rented \<subseteq> members" 
 and "Range rented \<subseteq> Domain stockLevel" 
 and "(\<forall> t. (t \<in> Range rented) \<and> (card (rented \<rhd> {t}) \<le> stockLevel t))"
begin
.....

除最后一个表达式\<forall> t.....

外,它都解析

我只是不明白如何在Isabelle中添加范围限制。

1 个答案:

答案 0 :(得分:1)

您的输入存在多个问题。

  1. 您在表达式中使用的符号

    (rented ⊳ {t})
    

    与任何运算符都没有关联,因此无法对其进行解析。我不太确定它应该是什么意思。从规范的高级概念中我猜测了所有出租特定标题的人#34;。这可以通过集合理解最容易地表达出来:

    {p. (p, t) ∈ rented}
    
  2. 您将有界通用量词转换为包含连词的量词。这可能不是您想要的,因为它表示&#34;对于所有tt的范围为rented 其他内容&#34 ;。伊莎贝尔有限量词的符号。

    ∀t ∈ Range rented. ...
    
  3. 您正尝试将stockLevel用作功能,但并非如此。从你的LaTeX输入我收集到它应该是一个部分功能。伊莎贝尔称这些为map。适当的类型是:

    TITLE ⇀ nat
    

    注意&#34;鱼叉&#34;符号而不是功能箭头。地图的域功能称为dom。第二个区域设置假设可以表示为:

    Range rented ⊆ dom stockLevel
    

    鉴于此,您可以将stockLevel用作TITLEnat option的函数。