伊莎贝尔的范围 restriction/domain 限制
range restriction/domain restriction in 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.....
我只是不明白如何给伊莎贝尔添加范围限制。
您的输入存在多个问题。
您在表达式
中使用的⊳
符号
(rented ⊳ {t})
未关联任何运算符,无法解析。我不太确定这是什么意思。从规范的高级概念来看,我猜测一些类似于 "all persons who rented a specific title" 的内容。这可以用集合理解最容易地表达:
{p. (p, t) ∈ rented}
您将有界全称量词翻译成包含连词的量词。这可能不是您想要的,因为它显示 "for all t
, t
is in the range of rented
and something else"。 Isabelle 有有界量词的符号。
∀t ∈ Range rented. ...
您正试图将 stockLevel
用作函数,但事实并非如此。从您的 LaTeX 输入中,我了解到它应该是一个部分函数。伊莎贝尔称这些为 map
。合适的类型是:
TITLE ⇀ nat
请注意 "harpoon" 符号而不是功能箭头。地图的域函数称为 dom
。第二个语言环境假设可以表示为:
Range rented ⊆ dom stockLevel
鉴于此,您可以将 stockLevel
用作从 TITLE
到 nat option
的函数。
我正在尝试将模式输入到 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.....
我只是不明白如何给伊莎贝尔添加范围限制。
您的输入存在多个问题。
您在表达式
中使用的⊳
符号(rented ⊳ {t})
未关联任何运算符,无法解析。我不太确定这是什么意思。从规范的高级概念来看,我猜测一些类似于 "all persons who rented a specific title" 的内容。这可以用集合理解最容易地表达:
{p. (p, t) ∈ rented}
您将有界全称量词翻译成包含连词的量词。这可能不是您想要的,因为它显示 "for all
t
,t
is in the range ofrented
and something else"。 Isabelle 有有界量词的符号。∀t ∈ Range rented. ...
您正试图将
stockLevel
用作函数,但事实并非如此。从您的 LaTeX 输入中,我了解到它应该是一个部分函数。伊莎贝尔称这些为map
。合适的类型是:TITLE ⇀ nat
请注意 "harpoon" 符号而不是功能箭头。地图的域函数称为
dom
。第二个语言环境假设可以表示为:Range rented ⊆ dom stockLevel
鉴于此,您可以将
stockLevel
用作从TITLE
到nat option
的函数。