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.16.tar.gz (57.9 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.16-cp313-cp313-win_amd64.whl (281.9 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

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

File metadata

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

File hashes

Hashes for suma_ulsa-0.1.16.tar.gz
Algorithm Hash digest
SHA256 2a75d1b3acaf894bf69bfd5068dd5a498ad642cc96b65900e75a599ecb81f1b0
MD5 db5edb4215b7251578a4d97ffcd197b5
BLAKE2b-256 d508549f9b58d5d46cb60e85e385bf91fda1175adaf56c40c55178833af7a9bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for suma_ulsa-0.1.16-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5c6873e06df4875729047d996ca1a10e30056fbe93102fe033668ffdd374e726
MD5 24dc0da615f06c7cbd56440b71d82954
BLAKE2b-256 209c3f4369092cf16c55ef0884a03c31c964cf614283a6283f0da7d966dcb61a

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