One Second Solver / Algebry Inc.
Un motor de reglas puede resolver matemática simbólica paso a paso, como lo haría un profesor.
- Cuándo
- 2010–2017
- Con
- Java, motor de inferencias, App Store + Google Play, +8.000 usuarios
Mi primera empresa. Un computer algebra system completo, nacido en un salón de la Universidad Tecnológica de Panamá.
La decisión de diseño que lo definió todo: no calcular el resultado, sino
reproducir el razonamiento. Un motor de inferencias con reglas lógicas que
elegía el método como lo haría una persona frente al pizarrón, y mostraba cada
paso intermedio. Un CAS que devuelve x²/2 es una calculadora; uno que explica
por qué aplicó sustitución trigonométrica y no partes es un tutor.
El alcance real
Aritmética, pre-álgebra y álgebra. Ecuaciones e inecuaciones lineales y cuadráticas. División larga de polinomios. Demostración de identidades trigonométricas y productos notables. Límites por factorización, racionalización y L’Hôpital. Derivadas, incluida la derivada por definición. Integrales definidas, trigonométricas, por sustitución, por partes, por fracciones parciales, por sustitución trigonométrica y por series de Taylor. Ecuaciones diferenciales.
Además: reconocimiento de audio para dictar el problema, gráficas interactivas e historial de ejercicios.
Lo que demostró
Que un motor simbólico bien diseñado no necesita aprender de datos para ser útil — necesita que alguien codifique el razonamiento correctamente. Quince años después, esa distinción entre calcular y explicar es exactamente la que separa un LLM que responde de uno en el que puedes confiar.
Ganador de un concurso nacional de innovación en 2012 y del EO Global Student Entrepreneur Award Panamá en 2017, con el que representamos a Panamá en Frankfurt.
La regla, en código
La integración por partes no es una fórmula que se aplica: es una regla que primero tiene que decidir si aplica, y luego elegir bien el corte.
/** ∫ u dv = uv − ∫ v du. Sólo dispara si el integrando factoriza
* en algo que se deriva bien y algo que se integra bien. */
final class IntegracionPorPartes implements Regla {
@Override
public boolean aplica(Nodo integrando) {
return integrando.esProducto()
&& LIATE.clasificable(integrando.factores());
}
@Override
public Paso ejecutar(Nodo integrando, Variable x) {
// LIATE decide quién es u: logarítmica, inversa, algebraica,
// trigonométrica, exponencial. El orden importa. Elegir mal no
// da un resultado incorrecto: da una integral peor que la de
// partida, y el motor entra en bucle.
Particion p = LIATE.partir(integrando.factores());
Nodo du = Derivada.de(p.u(), x);
Nodo v = Integral.de(p.dv(), x);
return Paso.de(
Resta.de(Producto.de(p.u(), v), Integral.de(Producto.de(v, du), x)),
"Integración por partes con u = " + p.u() + ", dv = " + p.dv()
);
}
}
Cada Paso lleva su justificación en texto porque el producto no era el
resultado: era la explicación. Y las series de Taylor —
— son otra regla más del mismo motor, con su propia condición de disparo.
Fuentes
Escríbeme
Si estás pensando en hacer algo con IA y quieres hablarlo con alguien que ya lo puso en producción, escríbeme. Contesto yo.
hola@giron.ai