Skip to main content

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

Versión Build Status License Python Rust

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 string
  • evaluar(**variables): Evalúa con valores específicos
  • tabla_verdad(): Genera tabla de verdad completa
  • es_tautologia(): Verifica si siempre es verdadera
  • es_tautologia(): Verifica si siempre es falsa
  • es_contingencia(): Verifica si depende de variables
  • simplificar(): Retorna expresión simplificada
  • equivalentes(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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

suma_ulsa-0.1.8.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

suma_ulsa-0.1.8-cp313-cp313-win_amd64.whl (251.3 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

Details for the file suma_ulsa-0.1.8.tar.gz.

File metadata

  • Download URL: suma_ulsa-0.1.8.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for suma_ulsa-0.1.8.tar.gz
Algorithm Hash digest
SHA256 50982b29e8d46d6596db38fae7454c2ccf8c2001d118d88630304fd8cf504158
MD5 4b8142aa9beb3e172d67685e1b41e264
BLAKE2b-256 1cf57f38ae27d8f04d12df25c8cb38e976d6e9b372aa0adfa6d7c2e5e88925f8

See more details on using hashes here.

File details

Details for the file suma_ulsa-0.1.8-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for suma_ulsa-0.1.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e3d3a2fd884c0da553c563516ba400d51fe6c78a9b53aa983e902915ad1028d0
MD5 8747acaa2b19ff5087ed1af2d5722166
BLAKE2b-256 f2e0e095d2716be7bf76ec5a91cde45f9e21ccbe1d0d1c01b6556c08385531ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page