我想在Isabelle中做一个定义,它返回一个map函数的所有对。 我在Z
中有以下定义\begin{schema}[X, Y, Z]
allPairs: (X \pfun (Y \rel Z)) \fun (Y \rel Z)
where
\<forall f: (X \<pfun (Y \rel Z)) @
allPairs f == \<bigcup{x:X | x \in \dom f @ fx}
\end{schema}
因此我想制作一个带有类型元素的定义
在isabelle中(X \<rightharpoonup> ((Y * Z) set)))
或(X \<rightharpoonup> (Y \<rightharpoonup> Z))
,并为两者返回((Y * Z) set)
。
到目前为止,我有以下内容
definition allPairs ::
"('X \<rightharpoonup ('Y * 'Z) set) => ('Y * 'Z) set"
where
"allPairs f == ⋃{yz. yz ∈ ran f}"