La ruta de aprendizaje

Un preámbulo práctico y nueve módulos teóricos, en orden de dependencia. La numeración de definiciones y teoremas coincide con la de la tesis, de modo que siempre puedes contrastar la guía con el documento original.

Preámbulo Lean desde cero

El lenguaje en la práctica: expresiones, tipos, funciones y pruebas construidas una a una, hasta leer un teorema real de la tesis.

  1. Lean es una calculadora que juzga
  2. fun: la función anónima
  3. Varias variables: currificación
  4. Tipos que se construyen
  5. Prop: cuando el tipo es una afirmación
  6. Demostrar es programar
  7. Tácticas: el modo interactivo
  8. Ya puedes leer la tesis

Nivel 0 ¿Por qué verificar?

El problema de confiar en las demostraciones, la historia de la formalización y qué promete un asistente de pruebas.

  1. El problema de la confianza
  2. Un siglo de formalización
  3. Qué es Lean y qué promete

Nivel 1 El cálculo lambda

El lenguaje universal de las funciones: términos, sustitución, α-conversión, β-reducción, formas normales y confluencia.

  1. Sintaxis: términos y variables libres
  2. Sustitución y α-conversión
  3. β-reducción
  4. Formas normales y no terminación
  5. Confluencia: Church–Rosser
  6. Hacia los tipos

Nivel 2 Tipos simples (λ→)

El cálculo lambda simplemente tipado: juicios, reglas de tipado, Church y Curry, decidibilidad.

  1. Juicios y contextos
  2. Las tres reglas de λ→
  3. Tipado à la Church y à la Curry
  4. Cuatro problemas decidibles

Nivel 3 Lógica y deducción natural

Demostrabilidad (⊢) y verdad (⊨): deducción natural, tablas de verdad, solidez y la completitud de Kalmár.

  1. Demostrabilidad: deducción natural
  2. Verdad: semántica de tablas
  3. Solidez: ⊢ implica ⊨
  4. Completitud: el argumento de Kalmár
  5. La perspectiva constructiva: BHK y NJ

Nivel 4 Curry–Howard

Proposiciones como tipos, pruebas como términos: el puente exacto entre la lógica y el cálculo lambda.

  1. El isomorfismo
  2. Conectivos como construcciones
  3. Normalización = evaluación

Nivel 5 El cubo-λ

Tres formas de dependencia (λ2, λω̲, λP) y su combinación en el Cálculo de Construcciones.

  1. λ2: polimorfismo
  2. λω̲: constructores de tipos
  3. λP: tipos dependientes
  4. El cubo completo
  5. Propiedades metateóricas

Nivel 6 El CIC y Lean

Tipos inductivos, recursores y eliminadores: el cálculo que Lean implementa, y las tácticas como constructores de términos.

  1. El CoC puro y sus límites
  2. Tipos inductivos
  3. Recursores y eliminación
  4. Prop, Type y universos
  5. Tácticas: metaprogramas sobre el CIC

Nivel 7 Completitud en Lean (experto)

La formalización completa del teorema de completitud: cada definición y cada lema, en matemática y en Lean, lado a lado.

  1. Panorama y estrategia
  2. Syntax.lean: fórmulas y semántica
  3. NaturalDeduction.lean: el cálculo
  4. Reglas estructurales y derivadas
  5. Corrección y consistencia
  6. El lema de Kalmár constructivo
  7. Descarga y completitud
  8. La auditoría de axiomas

Nivel 8 Quicksort verificado (experto)

La corrección de un algoritmo con el mismo método: especificación, terminación, permutación y ordenamiento.

  1. Qué significa «correcto»
  2. El algoritmo y su terminación
  3. Corrección I: permutación
  4. Corrección II: ordenamiento
  5. Ejemplos y auditoría