Curso completo de Lógica Deóntica
La lógica deóntica traduce normas: lo que debe ocurrir, lo que está permitido y lo que está prohibido.
Por qué importa
Es muy útil para políticas, compliance, derecho, reglas institucionales y análisis de conflicto normativo.
Objetivos de aprendizaje
- Leer O, P y F como operadores normativos.
- Entender por qué lo obligatorio no implica que ya ocurra.
- Explorar serialidad y axioma D.
- Practicar derivaciones normativas sencillas.
Accesos rápidos
Panorama del curso
Esta guía reúne la cobertura completa del perfil: conceptos, operadores, comandos, ejemplos largos, límites reales del motor y un script integral descargable para seguir probando fuera de la página. Los bloques de código se pueden ejecutar inline y abrir en el editor desplegable para probar variaciones sin salir de la documentación.
Capacidades nuevas de este perfil
- La deóntica ahora adjunta advertencias de paradoja cuando reconoce Ross, Chisholm o el Buen Samaritano.
- La serialidad del frame aparece explícitamente en explicaciones y checks en modo verbose.
- Las trazas del tableau ayudan a enseñar por qué una obligación no implica el hecho actual.
Paradojas normativas visibles
Ross aparece marcado como paradoja y además deja ver comparación entre sistemas y traza del tableau.
logic deontic.standard
set verbose = on
check valid ([]P -> [](P | Q))Cobertura exacta del perfil
La deóntica estándar documenta obligación, permiso y prohibición sobre KD serial, y además reconoce patrones paradójicos como Ross, Chisholm y el Buen Samaritano.
Operadores normativos y axiomas
El perfil usa la sintaxis modal como notación base de O/P/F y deja visible la serialidad del frame.
- `[](P)` como obligación `O(P)`
- `<>(P)` como permiso `P(P)`
- `[](!P)` como prohibición `F(P)`
- Axioma K: `O(P -> Q) -> (O(P) -> O(Q))`
- Axioma D: `O(P) -> P(P)`
Paradojas y fórmulas normativas reconocidas
La cobertura nueva no es solo veredictos, sino patrones filosóficos detectables por nombre.
logic deontic.standard
set verbose = on
check valid ([](P) -> <>(P))
check valid ([](P -> Q) -> ([](P) -> [](Q)))
check valid ([](!P) -> !<>(P))
check valid ([]P -> [](P | Q))
explain ([]P -> [](P | Q))
explain ([]P & [](P -> Q) & (!P -> []!Q) & !P)
explain (P -> []<>P)
countermodel ([](P) -> P)
countermodel (<>(P) -> P)Ross y Chisholm son soportes reales del motor; el Buen Samaritano se reconoce por aproximación de patrón.
Conceptos fundamentales
1. Obligación
O(P) expresa que P debe ocurrir. En ST se representa sobre [] en el perfil deóntico.
2. Permisión
P(P) en la salida del motor expresa que P está permitido y suele modelarse con <>.
3. Prohibición
F(P) se interpreta como obligación de no P, es decir, [](!P).
4. Serialidad
La serialidad garantiza que desde cualquier mundo hay al menos un mundo normativamente accesible. De ahí sale el axioma D.
Operadores y formas expresivas
[](P)Obligación
P es obligatorio.
logic deontic.standard
check valid [](P) -> <>(P)<>(P)Permisión
P está permitido.
logic deontic.standard
check satisfiable <>(P) & <>(Q)[](!P)Prohibición
P está prohibido.
logic deontic.standard
check valid [](!P) -> !<>(P)Comandos que debes dominar
Obligación implica permiso
Ejercicio básico del sistema KD.
logic deontic.standard
check valid [](P) -> <>(P)No confundir deber con hecho
Mira por qué O(P) no implica P actual.
logic deontic.standard
check valid [](P) -> P
countermodel [](P) -> PDerivación normativa
Propaga un deber a otra consecuencia permitida.
logic deontic.standard
axiom norma : [](P -> Q)
axiom permiso = <>(P)
derive <>(Q) from {norma, permiso}ST como herramienta pedagógica en esta lógica
Esta sección no solo enseña la lógica, sino también cómo usar `ST` para explicarla mejor: con aliases semánticos, funciones reutilizables, condicionales, recorridos guiados y salidas legibles para clase, taller o autoestudio.
Norma comentada paso a paso
Muestra cómo una obligación puede enseñarse como guion ejecutable, sin confundir deber con hecho.
logic deontic.standard
let norma = "Si hay promesa, debe cumplirse" : [](P -> C)
let permiso = "Prometer sigue siendo posible" : <>(P)
fn revisarNorma(F) {
explain F
return F
}
revisarNorma(norma)
derive <>(C) from {norma, permiso}
if valid [](P) -> <>(P) {
print "toda obligación preserva permiso en KD"
}Diferenciar hecho y obligación
Usa un if para subrayar que el plano normativo no coincide con el plano factual.
logic deontic.standard
let deber = "Debe entregarse el informe" : [](E)
explain deber
if valid [](E) -> E {
print "deber y hecho colapsaron"
} else {
print "ST distingue correctamente lo obligatorio de lo actual"
}
check satisfiable [](E) & !ELecciones prácticas largas
Deber institucional
Ejemplo simple con entrega y aprobación.
logic deontic.standard
axiom norma : [](Entrega -> Registro)
axiom permiso = <>(Entrega)
derive <>(Registro) from {norma, permiso}Obligación incumplida
Una obligación puede coexistir con su incumplimiento factual.
logic deontic.standard
check satisfiable [](Entrega) & !EntregaErrores frecuentes al estudiar esta lógica
- Confundir norma con hecho.
- Pensar que prohibido significa simplemente falso.
- No distinguir el plano del deber del plano descriptivo.
Límites del motor y advertencias
- Máximo 200 nodos en el tableau.
- No modela todavía conflictos normativos profundos o lógica deóntica dyádica.
Cómo conecta con otras lógicas
- Comparte estructura con la lógica modal.
- Sirve como antesala para discusiones éticas, regulatorias y de agentes.