过滤器:{A:Set}->(A->Bool)->列表A->List A 过滤器p[]=[] 使用px过滤p(x::xs) …|true=x::filter p xs …|false=筛选pxs 模块证明{A:Set}(P:List A->Set),其中 证明:(p:A->Bool)(xs:List A)->p(filter pxs) 证明p[]=? 0 用px证明p(x::xs) …|true=? 1 …|false=? 2
过滤器:{A:Set}->(A->Bool)->列表A->List A 过滤器p[]=[] 使用px过滤p(x::xs) …|true=x::filter p xs …|false=筛选pxs 模块证明{A:Set}(P:List A->Set),其中 证明:(p:A->Bool)(xs:List A)->p(filter pxs) 证明p[]=? 0 用px证明p(x::xs) …|true=? 1 …|false=? 2