ej. ?
Las expresiones son del álgebra ordinaria de la escuela secundaria, pero están restringidas a la suma y multiplicación aritmética (por ejemplo, ), sin inversos, restas o divisiones. Las letras son variables.
Si ayuda, podemos prohibir cualquier expresión representable con valores numéricos distintos de ; es decir, no x 2 ni 3 x ni 4 :
- multilineal , no hay potencias distintas a : x + x y ≡ x 1 + x 1 y 1 está bien, pero no x 2 + x 3 y 4 , y nada que pueda representarse como eso, como en una expansión completa para sumar -de-productos, por ejemplo, no x ( x + y ) ≡ x 2 + y ;
- todo uno , sin coeficientes que no sean : x + x y ≡ 1. x + 1. x y está bien, pero no 2 x + 3 x y , y no hay nada que pueda representarse como eso, como en una expansión completa para suma de productos, por ejemplo, no a ( x + y ) + x ( a + b ) ≡ 2 a x + a y + b x ; y
- sin constantes que no sean : nuevamente, en la suma de productos completamente expandida, por ejemplo, no ( a + 1 ) + ( b + 1 ) ≡ a + b + 2
¿Existe un algoritmo eficiente para determinar si dos expresiones son equivalentes?
Para ilustrar, aquí hay un algoritmo de fuerza bruta ineficiente con tiempo exponencial:
expanda ambas expresiones completamente a la suma de productos , que pueden verificarse fácilmente para determinar la equivalencia (simplemente ignore el orden, ya que el cambio / asociado puede reordenarse).
ej.
a ( x + y ) + b ( x + y ) → a x + a y + b x + b y
Este parece un problema bien conocido: incluso a los estudiantes de secundaria se les enseñan formas manuales de resolverlo. También se resuelve con probadores / verificadores de teoremas automatizados, pero se concentran en aspectos más sofisticados.
Aquí hay un probador de teoremas automatizado en línea que funciona: http://tryacl2.org/ , que muestra la equivalencia al encontrar una secuencia de conmutar / asociar / distribuir, etc.
? --- 188 pasos
(thm (= (+ (* x y) x y) (+ x (* y (+ x 1))) ))
? --- 325 pasos
(thm (= (+ y (* x (+ y 1))) (+ x (* y (+ x 1))) ))
Esta es mi primera pregunta aquí, así que avíseme si he elegido el lugar incorrecto, las etiquetas incorrectas, la forma incorrecta de describir / preguntar, etc. ¡Gracias!
NB: esta pregunta se ha reescrito en respuesta a los comentarios ¡
Gracias a todos los que respondieron! He aprendido mucho