j'ai une preuve en Coq où l'une des hypothèses est:Impossible de réécrire sous-terme en Coq
H : m = pred q * n + (r + n)
et j'ai un lemme prouvé qui stipule:
Lemma suma_conmutativa: forall m, forall n, m + n = n + m.
Où + est la notation pour une fonction appelée Suma que je définissais:
Fixpoint suma (m:nat) (n:nat) : nat :=
match m with
| 0 => n
| S k => S (suma k n)
end.
Notation "m + n" := (suma m n).
pour une raison quelconque lorsque je tente de réécrire suma_conmutativa with r n in H
je reçois l'erreur suivante: Cependant, il existe clairement un sous-terme correspondant à r + n dans H. Pourquoi Coq ne peut-il pas le trouver?
Merci.
Il semble que ce soit un problème avec Notation parce que si H était m = pred q * n + (suma r n) alors apparemment il serait capable de le réécrire. –
Oui, êtes-vous sûr que le + dans votre expression est votre «suma»? Essayez 'Notations d'impression non modifiées '(ou équivalent dans votre IDE) pour être sûr. – Vinz