Is there a way in Coq in to prove a statement for integer numbers and the transfer statement in a semi-automatic way to naturals?
For a concret example, take the following lemma:
Lemma cancellation:
forall a b c: nat, a > 0 -> a * b = a * c -> b = c.
The statement is actually true in Z. In this case, it is easier to prove, because one can use subtraction to get a * (b - c) = 0
and then simplify a
. But subtraction for naturals is capped, hence this would not work.
Assume I can prove this for integers. Is there some tactic that one could use to derive the statement for naturals as well?