Есть ли способ применить гипотез к нашей цели в Coq?
Например:
Гипотеза:
1 subgoal
a : nat
l1 : list nat
l2 : list nat
H : Prefix (a :: l1) l2
IHl1 : Prefix l1 l2 -> sum l1 <= sum l2
Цель
______________________________________(1/1)
sum (a :: l1) <= sum l2
Я знаю, что если бы я мог: применить IHl1, я мог бы получить результат вроде Prefix (a :: l1) l2, и после этого я смогу сделать предположение! Но я не могу применить заявку, потому что это дает мне следующую ошибку: Ошибка: невозможно объединить «sum l1‹ = sum l2 »с« sum (a :: l1) ‹= sum l2».
Инструкции
Fixpoint
Fixpoint sum (l: list nat) : nat := match l with
| nil => 0
| a::t => a + sum t
end.
Лемма
Lemma parte2_1_c : forall l1 l2, Prefix l1 l2 -> sum l1 <= sum l2.
Proof.
intros.
induction l1.
simpl.
SearchAbout(_<=_).
apply le_0_n.
SearchAbout(sum).
(*must continue but do not know how to do it...*)
Итак ... Как я могу решить эту проблему?