par exemple ?
Les expressions proviennent de l'algèbre ordinaire du secondaire, mais se limitent à l'addition et à la multiplication arithmétiques (par exemple ), sans inverses, soustraction ou division. Les lettres sont des variables.
Si cela aide, nous pouvons interdire toute expression représentable avec des valeurs numériques autres que ; c'est-à-dire pas x 2 ni 3 x ni 4 :
- multilinéaire , pas de puissances autres que : x + x y ≡ x 1 + x 1 y 1 est OK, mais pas x 2 + x 3 y 4 , et rien de ce qui pourrait être représenté comme cela, comme dans une expansion complète pour résumer -des produits, par exemple pas x ( x + y ) ≡ x 2 + y ;
- tout un , pas de coefficients autres que : x + x y ≡ 1. x + 1. x y est OK, mais pas 2 x + 3 x y , et rien de ce qui pourrait être représenté comme cela, comme dans une expansion complète à somme des produits, par exemple pas a ( x + y ) + x ( a + b ) ≡ 2 a x + a y + b x ; et
- pas de constantes autres que : encore une fois, dans la somme des produits entièrement développée, par exemple pas ( a + 1 ) + ( b + 1 ) ≡ a + b + 2
Existe-t-il un algorithme efficace pour déterminer si deux expressions sont équivalentes?
Pour illustrer, voici un algorithme de force brute inefficace avec un temps exponentiel:
étendre complètement les deux expressions à la somme des produits , dont l'équivalence peut facilement être vérifiée (il suffit d'ignorer l'ordre, car les déplacements / associés peuvent être réorganisés).
ex.
a ( x + y ) + b ( x + y ) → a x + a y + b x + b y
Cela semble un problème bien connu - même les élèves du secondaire apprennent des moyens manuels de le résoudre. Il est également résolu par des vérificateurs / vérificateurs de théorèmes automatisés, mais ils se concentrent sur des aspects plus sophistiqués.
Voici un prouveur de théorème automatisé en ligne: http://tryacl2.org/ , qui montre l'équivalence en trouvant une séquence de trajet / associer / distribuer etc:
? --- 188 étapes
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
? --- 325 étapes
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
Ceci est ma première question ici, alors faites-moi savoir si j'ai choisi le mauvais endroit, les mauvaises balises, la mauvaise façon de décrire / demander, etc. Merci!
NB: cette question a été réécrite en réponse aux commentaires
Merci à tous les répondants! J'ai beaucoup appris.