Isabelle 如何映射映射的键和值?
我需要定义一个函数,将有限映射的键和值映射到一组键值对中:Isabelle 如何映射映射的键和值?,isabelle,Isabelle,我需要定义一个函数,将有限映射的键和值映射到一组键值对中: theory Test imports Main "~~/src/HOL/Library/Finite_Map" begin definition denorm :: "('a, 'b) fmap ⇒ ('a × 'b) fset" where "denorm m ≡ " end 问题是我不能通过递归定义这个函数,因为fmap不是归纳数据类型,它没有任何构造函数 我猜fmap在内部表示为成对的列表。是否可以将fmap转换为
theory Test
imports Main "~~/src/HOL/Library/Finite_Map"
begin
definition denorm :: "('a, 'b) fmap ⇒ ('a × 'b) fset" where
"denorm m ≡ "
end
问题是我不能通过递归定义这个函数,因为fmap
不是归纳数据类型,它没有任何构造函数
我猜
fmap
在内部表示为成对的列表。是否可以将fmap
转换为列表?我需要列表函数的fmap\u的逆函数。一种可能的方法是合成图像、域和查找:表达式
λ m. (λ k. (k, the (fmlookup m k))) |`| fmdom m
具有所需的类型
('a, 'b) fmap ⇒ ('a × 'b) fset
并且应该为mapm
计算所需的集合。一种可能的方法是合成图像、域和查找:表达式
λ m. (λ k. (k, the (fmlookup m k))) |`| fmdom m
具有所需的类型
('a, 'b) fmap ⇒ ('a × 'b) fset
并应计算地图的所需集m
此函数已存在:
fset_of_fmap :: "('a, 'b) fmap ⇒ ('a × 'b) fset"
此功能已经存在:
fset_of_fmap :: "('a, 'b) fmap ⇒ ('a × 'b) fset"
我在《伊莎贝尔2016-1》中找不到它。也许是在最新的不稳定版本中?是的,我在2017年添加了它,其中第一个候选版本是可用的。我在Isabelle 2016-1中找不到它。也许是最新的不稳定版本?是的,我为2017年添加了它,第一个候选版本已经发布。