Isabelle 中的 Map 和 Mapping 有什么区别?

What's the difference between Map and Mapping in Isabelle?

所以我上网,发现了这些:

https://isabelle.in.tum.de/library/HOL/HOL/Map.html(地图)

https://isabelle.in.tum.de/library/HOL/HOL-Library/Mapping.html(映射)

两个以“地图”一词开头的理论。我通读了好一阵子,但我无法真正辨别出它们之间的任何显着差异。有没有什么时候我应该使用前者而不是后者,反之亦然?

提前致谢!

Map.thy给大家一些偏函数的词汇,写成'a ⇀ 'b,是'a ⇒ 'b option.

的缩写

另一方面,Mapping 理论将其包装成一种新型的偏函数,这对代码生成很有用。如果您尝试导出涉及类型 'a ⇀ 'b 的部分函数的代码,您将在导出的代码中得到 'a ⇒ 'b option,这意味着例如诸如请求此类函数的域之类的事情将根本无法执行。

另一方面,使用 Mapping,您可以导出更合理的(有限)映射实现,例如关联列表或红黑树。

所以,简短的回答:不用担心 Mapping,除非(以及何时)您想要导出可执行代码。