Je ne sais pas si ça va te plaire, Nspirecas, mais comme je le pensais, il y a des erreurs de logique dans ta programmation... et cela aboutit à des erreurs du programme (qui plante) ou bien qui renvoie des résultats faux !
Par exemple, si on considère la suite u définie par
$mathjax$u(0)=2$mathjax$
et
$mathjax$\forall n\in \mathbb{N}, u(n+1)=3\,u(n)-2$mathjax$
.
Si on demande à ton programme de prouver que
$mathjax$\forall n\in \mathbb{N}, u(n)>3^n$mathjax$
, cela plante ! (sans doute à cause du bug évoqué plus haut)... mais même si ça ne plantait pas, cela renverrait un résultat faux, puisque la conclusion du programme serait : l'hérédité est fausse DONC la propriété est fausse.
En effet, le programma raisonne ainsi :
C'est vrai au rang 0 puisque
$mathjax$u(0)=2>3^0=1$mathjax$
Soit k tel que
$mathjax$u(k)>3^k$mathjax$
. Alors
$mathjax$u(k+1)=3\,u(k)-2>3\times3^k-2$mathjax$
... mais comme ceci n'est pas plus grand que
$mathjax$3^{k+1}$mathjax$
, il ne peut pas conclure.
Cependant, il répond tout de même que c'est faux.
Or la véritable conclusion devrait être : "Je n'ai pas réussi à prouver l'hérédité"... mais on ne sait pas si elle est vraie ou fausse.
Et dans le cas présent, la réponse est : c'est vrai, puisque en réalité,
$mathjax$\forall n\in\mathbb{N}, u(n)=3^n+1$mathjax$
Le pire dans tout cela, c'est que c'est un cas relativement simple...