3
Я хочу доказатьДокажи м ≤ п -> к ≤ л -> т + к ≤ п + в Agda
{m n k l : ℕ} -> m ≤ n -> k ≤ l -> m + k ≤ n + l
в Agda. я могу доказать 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
?
Я мог бы понять ваш ответ! Спасибо! – mmsss
Для любого, кто задается вопросом: он работает, потому что '_ + _' определяется индукцией по его первому аргументу и сопоставлению шаблонов на доказательстве' m ≤ n', показывает главный конструктор 'm' (и' n' во втором случае), что позволяет вычислять 'm + k' и' n + l'. – gallais