如何从定义的选项中提取具体值

时间:2015-12-17 10:49:47

标签: isabelle

当您拨打mapName(identifier)时,它是可能的,它返回的内容不是'rangeType option',因为它是一个有限的地图(有限域和范围),你确定标识符存在于地图中?

1 个答案:

答案 0 :(得分:0)

在回答你的问题之前,让我们制作一些"部分功能"我们正在谈论精确。

(显式)部分函数在Isabelle / HOL中具有类型'a => 'b option。然后,对于每个给定的x :: 'a,这样的部分函数f :: 'a => 'b option会导致None(意味着f未定义x)或Some y :: 'b optionf时实际定义了x

现在,如果对于某些输入x您知道(在Isabelle / HOL中应该表示您有证明它),f x已定义,您可以使用selector-function {{ 1}}选项类型。因此,只要the : 'a option => 'af x = Some y the (f x)就会产生y

请注意,原则上也可以拨打the None。在这种情况下,我们遇到了Isabelle / HOL中可用的不同类型的部分功能。 the None的结果仍然是'b类型,但它是我们可以虚拟证明的那种类型'b的任意值(因此"未定义")什么都没有。