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.15.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.15-cp313-cp313-win_amd64.whl (281.6 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

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

File metadata

  • Download URL: suma_ulsa-0.1.15.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.15.tar.gz
Algorithm Hash digest
SHA256 9493a5562177ba803d6a10c2f2a45751a8bb57a41eb50cfd7e295c77359963b2
MD5 9c51909cd1843f5c9745b13d0076ff96
BLAKE2b-256 d6d14be37d725452d13ddd9d397ec5b2ce5f8c85012d0ec7a9c06f3848af214f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for suma_ulsa-0.1.15-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8a3bc3ee3ff8b698fecba27c6b2db811ff004b7740b3784f1c942cf338aa8a29
MD5 a322e2570df4a821ec2034d196efda47
BLAKE2b-256 544bf7f4939e5b4c75a46b8b657449aaaeeef3c2e4d7be6db2447926f9c5e2c4

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