Je suis en train de prouver l'égalité suivante:forall égalité en Coq
Lemma Foo (A : Type) (n : nat) (gen : forall p : nat, p < S n -> A)
(ic0 : 0 < S n) (ic1 : 0 mod S n < S n):
gen (n - n) ic1 = gen 0 ic0.
Le n-n
est 0 par Nat.sub_diag
et 0 mod S n
est également 0 par Nat.mod_0_l
. Cependant, je ne pouvais pas facilement appliquer ces lemmes aux types. J'ai essayé astuce habituelle de remember/rewrite/subst
mais subst
pièce tombe en panne:
remember (gen (n-n)) as Q.
remember (n-n) as Q1.
rewrite Nat.sub_diag in HeqQ1.
subst.
post-scriptum Cette question peut utiliser un meilleur titre. Veuillez suggérer.
Je pense que la bibliothèque Coq pourrait avoir une preuve d'unicité de 'lt nm' quelque part - et sinon, je pense que je l'ai vu flotter quelques fois sur coq-club alors vous pourriez essayer de chercher dans les archives de la liste de diffusion . Ensuite, vous pouvez généraliser 'ic0' et' ic1', ce qui devrait permettre la réécriture. –
ne sais pas comment utiliser l'unicité ici. En passant, je suis d'accord pour utiliser l'inadéquation de preuve, si cela aide ... – krokodil