在自动定理证明(证明搜索)中,我组合了以下类型的变换器
t :: Claim -> IO (Maybe (Claim, Proof -> Proof))
这样:当t c
返回时Just (c', f)
,则c'
隐含c
,并且从计算的证明中c
获得证明。p'
c'
f p'
这是一个镜头,不知何故?(如果是,有什么帮助?)
还有一个更一般的情况(对于几个或零个子目标)
ts :: Claim -> IO (Maybe ([Claim], [Proof] -> Proof))
这IO
部分很重要,因为这些转换器做了大量工作(调用外部进程),我可能想强制超时。