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.19.tar.gz (60.8 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.19-cp313-cp313-win_amd64.whl (396.7 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Hashes for suma_ulsa-0.1.19.tar.gz
Algorithm Hash digest
SHA256 69aff6eaf48e0bc717f803383fb5bfa1b6db5ba65a33523c8d669bdac3c6c252
MD5 4887976fac60fa0b06473219e0f52e5e
BLAKE2b-256 ba088b3ef07ea398b911c9c75d9c2ca7abcbeae57ac98bdad4338f680cefecbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for suma_ulsa-0.1.19-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 01d99f23725dfac7d0c175bc146f2821aa23004f55442c2fe7dfbad4fe309770
MD5 eaf2a4070a9d1e76a6cf9fc8661b1e65
BLAKE2b-256 5609e5c5b31a259236f82f7121b93b88dc970125d54b999391e83f68d645276e

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