undef 和 list 的串联是 undef - 证明 Haskell
Concatenation of undef and list is undef - proof Haskell
如何证明以下对于每个列表 xs 都是正确的:
undefined ++ xs = undefined
没什么好证明的。有一个简单的规则(无法解释或分解成更小的规则),即 case
语句试图将 undefined
与构造函数匹配会导致 undefined
。一旦你接受这个规则,我们就可以观察
undefined ++ ys
= { by definition of ++ }
case undefined of
[] -> ys
x:xs -> x : (xs ++ ys)
= { case that matches undefined against a constructor }
undefined
如何证明以下对于每个列表 xs 都是正确的:
undefined ++ xs = undefined
没什么好证明的。有一个简单的规则(无法解释或分解成更小的规则),即 case
语句试图将 undefined
与构造函数匹配会导致 undefined
。一旦你接受这个规则,我们就可以观察
undefined ++ ys
= { by definition of ++ }
case undefined of
[] -> ys
x:xs -> x : (xs ++ ys)
= { case that matches undefined against a constructor }
undefined