我想证明
{m n k l : ℕ} -> m ≤ n -> k ≤ l -> m + k ≤ n + l
在阿格达。
我可以通过以下代码证明m + k ≤ m + l
add≤ : {m n : ℕ} -> (k : ℕ) -> m ≤ n -> k + m ≤ k + n
add≤ zero exp = exp
add≤ (suc k) exp = s≤s (add≤ k exp)
由于我可以证明m + k ≤ m + l
,我想证明m + l ≤ n + l
。如果我能做到这一点,我将使用我已定义的≤-trans : Transitive _≤_
。
我可以用m + l ≤ n + l
证明m ≤ n, k ≤ l
吗?或者,我是否必须更改计划以使用≤-trans
?
答案 0 :(得分:2)
它只是
open import Data.Nat
open import Data.Nat.Properties
le : {m n k l : ℕ} -> m ≤ n -> k ≤ l -> m + k ≤ n + l
le {n = n} z≤n q = ≤-steps n q
le (s≤s p) q = s≤s (le p q)