当您拨打mapName(identifier)
时,它是可能的,它返回的内容不是'rangeType option
',因为它是一个有限的地图(有限域和范围),你确定标识符存在于地图中?
答案 0 :(得分:0)
在回答你的问题之前,让我们制作一些"部分功能"我们正在谈论精确。
(显式)部分函数在Isabelle / HOL中具有类型'a => 'b option
。然后,对于每个给定的x :: 'a
,这样的部分函数f :: 'a => 'b option
会导致None
(意味着f
未定义x
)或Some y :: 'b option
(f
时实际定义了x
。
现在,如果对于某些输入x
您知道(在Isabelle / HOL中应该表示您有证明它),f x
已定义,您可以使用selector-function {{ 1}}选项类型。因此,只要the : 'a option => 'a
,f x = Some y
the (f x)
就会产生y
。
请注意,原则上也可以拨打the None
。在这种情况下,我们遇到了Isabelle / HOL中可用的不同类型的部分功能。 the None
的结果仍然是'b
类型,但它是我们可以虚拟证明的那种类型'b
的任意值(因此"未定义")什么都没有。