Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Isabelle 如何从定义的选项中提取具体值_Isabelle - Fatal编程技术网

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

Isabelle 如何从定义的选项中提取具体值,isabelle,Isabelle,如果您调用,比如说,mapName(identifier),它返回的内容不是“rangeType option”,因为它是一个有限的映射(有限域和范围),并且您确定该标识符存在于映射中?在回答您的问题之前,让我们先确定“部分函数”的类型我们说的是精确的 (明确地)部分函数在Isabelle/HOL中具有类型'a=>'b选项。然后,对于每个给定的x::'a这样的部分函数f:'a=>'b选项要么导致None(意思是f没有在x上定义)要么某些y:'b选项(只要f实际上是在x上定义的) 现在,如果对于某

如果您调用,比如说,
mapName(identifier)
,它返回的内容不是“
rangeType option
”,因为它是一个有限的映射(有限域和范围),并且您确定该标识符存在于映射中?在回答您的问题之前,让我们先确定“部分函数”的类型我们说的是精确的

(明确地)部分函数在Isabelle/HOL中具有类型
'a=>'b选项
。然后,对于每个给定的
x::'a
这样的部分函数
f:'a=>'b选项
要么导致
None
(意思是
f
没有在
x
上定义)要么
某些y:'b选项
(只要
f
实际上是在
x
上定义的)

现在,如果对于某些输入
x
,您知道(在Isabelle/HOL中,这应该意味着您有一个证明)定义了
fx
,您可以使用选项类型的选择器函数
a option=>a
。因此,每当
fx=y时,
fx
就会产生
y


请注意,原则上也可以调用
None
。在这种情况下,我们会遇到另一种在Isabelle/HOL中可用的部分函数。
的结果仍然是
'b
类型,但它是任意的(因此是“未定义的”)该类型的值
'b
我们几乎无法证明任何东西。

如果你有一个
'a=>'b类型的map
map\u name
选项
,并且知道
map\u name id
将导致
某些
x
类型
'b
的一些
x
,然后您可以使用::'a option=>'a
立即提取
x
,也就是说,
映射名x
将产生
x
。这正是我需要的。谢谢你,克里斯!好的,那么我将把我的评论变成一个答案,这样这个问题就可以标记为已回答,供以后的访问者使用。