Sistema Universitario de Métodos Académicos (SUMA) - librería Python con backend en Rust
Project description
SUMA — Sistema Universitario de Métodos Académicos
Librería académica para el aprendizaje y resolución rigurosa de métodos universitarios, con un enfoque práctico y accesible.
📚 Módulo de Álgebra Booleana
El módulo de álgebra booleana proporciona herramientas completas para trabajar con expresiones lógicas, tablas de verdad, simplificación y análisis de circuitos digitales.
🎯 Características Principales
- Expresiones Booleanas: soporte para operadores lógicos básicos y compuestos.
- Tablas de Verdad: generación automática y análisis de propiedades.
- Simplificación: reducción de expresiones usando métodos algebraicos.
- Validación: verificación de tautologías, contradicciones y equivalencias.
- Compatibilidad Python: API intuitiva para usuarios de Python.
🔧 Instalación (en desarrollo)
pip install suma_ulsa
Nota: Si usas este repositorio desde fuentes, sigue las instrucciones de "Instalación para desarrollo" más abajo.
💡 Uso Rápido
from suma_ulsa.boolean_algebra import BooleanExpr
# Crear y evaluar expresiones booleanas
expr = BooleanExpr("(A and B) or (not C)")
resultado = expr.evaluate({'A': True, 'B': False, 'C': True})
print(f"Resultado: {resultado}")
# Generar tabla de verdad completa
tabla = expr.truth_table()
print(tabla)
# Verificar propiedades
print(f"¿Es tautología? {expr.is_tautology()}")
print(f"¿Es contradicción? {expr.is_contradiction()}")
📖 Ejemplos Detallados
1. Expresiones Básicas
from suma_ulsa.boolean_algebra import BooleanExpr
# Expresión simple
expr1 = BooleanExpr("A and B")
print(expr1.evaluate({'A': True, 'B': True})) # True
# Expresión con múltiples operadores
expr2 = BooleanExpr("(A or B) and not C")
valores = {'A': True, 'B': False, 'C': True}
print(expr2.evaluate(valores)) # False
2. Tablas de Verdad
# Generar tabla de verdad
expr = BooleanExpr("A xor B")
tabla = expr.truth_table()
# La tabla muestra todas las combinaciones y resultados
print(tabla)
# Salida aproximada:
# | A | B | Result |
# |---|---|--------|
# | 0 | 0 | 0 |
# | 0 | 1 | 1 |
# | 1 | 0 | 1 |
# | 1 | 1 | 0 |
2.1 Metodos de la Tabla de Verdad
print("CSV:\n", tabla.to_csv())
print("JSON:", tabla.to_json())
print("Lazyframe:", tabla.to_lazyframe())
print("Polars Dataframe:", tabla.to_polars())
print("Dictionary:", tabla.to_column_dict())
print("List: ", tabla.to_list())
print("Named rows:", tabla.to_named_rows())
🏗️ API Principal
Clase Expression — métodos principales:
__init__(expr: str): Crea expresión desde stringevaluar(**variables): Evalúa con valores específicostabla_verdad(): Genera tabla de verdad completaes_tautologia(): Verifica si siempre es verdaderaes_tautologia(): Verifica si siempre es falsaes_contingencia(): Verifica si depende de variablessimplificar(): Retorna expresión simplificadaequivalentes(otra_expr): Compara equivalencia lógica
Operadores soportados
- AND:
and,&,∧ - OR:
or,|,∨ - NOT:
not,~,¬ - XOR:
xor,^,⊕ - IMPLICA:
implies,=>,→ - EQUIVALE:
iff,<=>,↔
🔬 Características Avanzadas
- Optimización de rendimiento: Implementado en Rust para máxima velocidad
- Manejo de errores: Mensajes descriptivos para expresiones inválidas
- Variables ilimitadas: Soporte para expresiones con múltiples variables
- Formas normales: Conversión a FNC y FND
- Mapas de Karnaugh: (Próximamente) Simplificación visual
🗓️ Próximos Módulos
| Módulo | Estado | Funcionalidades |
|---|---|---|
| Álgebra Booleana | ✅ Implementado | Expresiones, tablas de verdad, simplificación |
| Estructuras de Datos | 🔄 En desarrollo | Grafos, árboles, algoritmos de búsqueda |
| Finanzas Computacionales | 📅 Planeado | TVM, análisis de inversiones, préstamos |
| Métodos Numéricos | 📅 Planeado | Ecuaciones, derivación, integración |
🚀 Instalación para Desarrollo
# Clonar repositorio
git clone https://github.com/Void-CA/suma.git
cd suma
# Instalar en modo desarrollo
pip install -e .
# Ejecutar tests
cargo test
python -m pytest tests/
🤝 Contribuciones
Las contribuciones son bienvenidas. Áreas prioritarias:
- Nuevos módulos académicos
- Mejoras en álgebra booleana (Karnaugh, Quine-McCluskey)
- Documentación y ejemplos
- Tests y validación
📊 Estructura del Proyecto (resumen)
suma/
├── src/
│ ├── lib.rs
│ ├── core/ # Módulo core codificado en Rust
│ | ├── boolean_algebra/ # Módulo de álgebra booleana
│ | ├── ...
│ └── bindings/ # Bindings Python
├── suma_ulsa/ # Paquete Python
│ ├── __init__.py
│ └── boolean_algebra/
---
## 📄 Licencia
MIT License — ver `LICENSE` para detalles.
---
_Desarrollado por estudiantes, para estudiantes, con dedicación y rigor académico._
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file suma_ulsa-0.1.19.tar.gz.
File metadata
- Download URL: suma_ulsa-0.1.19.tar.gz
- Upload date:
- Size: 60.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69aff6eaf48e0bc717f803383fb5bfa1b6db5ba65a33523c8d669bdac3c6c252
|
|
| MD5 |
4887976fac60fa0b06473219e0f52e5e
|
|
| BLAKE2b-256 |
ba088b3ef07ea398b911c9c75d9c2ca7abcbeae57ac98bdad4338f680cefecbd
|
File details
Details for the file suma_ulsa-0.1.19-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: suma_ulsa-0.1.19-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 396.7 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01d99f23725dfac7d0c175bc146f2821aa23004f55442c2fe7dfbad4fe309770
|
|
| MD5 |
eaf2a4070a9d1e76a6cf9fc8661b1e65
|
|
| BLAKE2b-256 |
5609e5c5b31a259236f82f7121b93b88dc970125d54b999391e83f68d645276e
|