stringtranslate.com

Lean (asistente de pruebas)

Lean es un asistente de pruebas y un lenguaje de programación funcional . [1] Se basa en el cálculo de construcciones con tipos inductivos . Es un proyecto de código abierto alojado en GitHub . Fue desarrollado principalmente por Leonardo de Moura mientras trabajaba para Microsoft Research y ahora Amazon Web Services , y ha tenido importantes contribuciones de otros coautores y colaboradores durante su historia. El desarrollo actualmente cuenta con el apoyo de la organización sin fines de lucro Lean Focused Research Organization (FRO) .

Historia

Lean fue lanzado por Leonardo de Moura en Microsoft Research en 2013. [2] Las versiones iniciales del lenguaje, posteriormente conocidas como Lean 1 y 2, eran experimentales y contenían características tales como soporte para fundamentos basados ​​en la teoría de tipos de homotopía que luego fueron abandonados.

Lean 3 (publicada por primera vez el 20 de enero de 2017) fue la primera versión moderadamente estable de Lean. Se implementó principalmente en C++ con algunas características escritas en Lean. Después de la versión 3.4.2, Lean 3 llegó al final de su vida útil oficialmente mientras comenzaba el desarrollo de Lean 4. En este período intermedio, los miembros de la comunidad Lean desarrollaron y publicaron versiones no oficiales hasta la 3.51.1.

En 2021, se lanzó Lean 4, que fue una reimplementación del demostrador de teoremas Lean capaz de producir código C que luego se compila, lo que permite el desarrollo de una automatización eficiente específica del dominio. [3] Lean 4 también contiene un sistema de macros y procedimientos mejorados de síntesis de clases de tipos y gestión de memoria con respecto a la versión anterior. Otro beneficio en comparación con Lean 3 es la capacidad de evitar tocar el código C++ para modificar el frontend y otras partes clave del sistema central, ya que ahora están todas implementadas en Lean y están disponibles para que el usuario final las anule según sea necesario. [ cita requerida ]

Lean 4 no es compatible con versiones anteriores de Lean 3. [4]

En 2023, se formó Lean FRO, con los objetivos de mejorar la escalabilidad y usabilidad del lenguaje e implementar la automatización de pruebas . [5]

Descripción general

Bibliotecas

El paquete Lean oficial incluye una biblioteca estándar llamada baterías , que implementa estructuras de datos comunes que pueden usarse tanto para la investigación matemática como para el desarrollo de software más convencional. [6]

En 2017, comenzó un proyecto mantenido por la comunidad para desarrollar una biblioteca Lean, mathlib , con el objetivo de digitalizar la mayor cantidad posible de matemáticas puras en una gran biblioteca cohesiva, hasta llegar a las matemáticas de nivel de investigación. [7] [8] A septiembre de 2024, mathlib había formalizado más de 165 000 teoremas y 85 000 definiciones en Lean. [9]

Integración de editores

Lean se integra con: [10]

La interfaz se realiza a través de una extensión de cliente y un servidor de protocolo de servidor de lenguaje .

Tiene soporte nativo para símbolos Unicode , que pueden escribirse usando secuencias similares a LaTeX , como "\times" para "×". Lean también puede compilarse en JavaScript y accederse a él en un navegador web y tiene un amplio soporte para metaprogramación .

Ejemplos (Lean 4)

Los números naturales pueden definirse como de tipo inductivo . Esta definición se basa en los axiomas de Peano y establece que todo número natural es cero o sucesor de algún otro número natural.

inductivo  Nat  :  Tipo |  cero  :  Nat |  succ  :  Nat   Nat

La suma de números naturales se puede definir de forma recursiva , utilizando la coincidencia de patrones .

def  Nat.add  :  Nat   Nat   Nat |  n ,  Nat.cero  =>  n  -- n + 0 = n |  n ,  Nat.succ  m  =>  Nat.succ  ( Nat.add  n  m )  -- n + succ(m) = succ(n + m)

Esta es una prueba simple de para dos proposiciones y (donde es la conjunción y la implicación ) en Lean usando el modo táctico:

teorema  and_swap  ( p  q  :  Prop )  :  p   q   q   p  :=  por  intro  h  -- suponga p ∧ q con prueba h, el objetivo es q ∧ p  aplicar  And.intro  -- el objetivo se divide en dos subobjetivos, uno es q y el otro es p  ·  exact  h.right  -- el primer subobjetivo es exactamente la parte derecha de h : p ∧ q  ·  exact  h.left  -- el segundo subobjetivo es exactamente la parte izquierda de h : p ∧ q

Esta misma prueba en modo término:

teorema  and_swap  ( p  q  :  Prop )  :  p   q   q   p  :=  fun  hp ,  hq  =>  hq ,  hp 

Uso

Matemáticas

Lean ha recibido la atención de matemáticos como Thomas Hales , [11] Kevin Buzzard , [12] y Heather Macbeth. [13] Hales lo está utilizando para su proyecto, Formal Abstracts. [14] Buzzard lo utiliza para el proyecto Xena. [15] Uno de los objetivos del Proyecto Xena es reescribir todos los teoremas y pruebas en el plan de estudios de matemáticas de pregrado del Imperial College de Londres en Lean. Macbeth está utilizando Lean para enseñar a los estudiantes los fundamentos de la prueba matemática con retroalimentación instantánea. [16]

En 2021, un equipo de investigadores utilizó Lean para verificar la exactitud de una prueba de Peter Scholze en el área de las matemáticas condensadas . El proyecto ganó atención por formalizar un resultado en la vanguardia de la investigación matemática. [17] En 2023, Terence Tao utilizó Lean para formalizar una prueba de la conjetura polinomial de Freiman-Ruzsa (PFR), un resultado publicado por Tao y colaboradores en el mismo año. [18]

Inteligencia artificial

En 2022, OpenAI y Meta AI crearon de forma independiente modelos de IA para generar pruebas de varios problemas de olimpiadas de nivel secundario en Lean. [19] El modelo de Meta AI está disponible para uso público con el entorno Lean. [20]

En 2023, Vlad Tenev y Tudor Achim cofundaron la startup Harmonic, cuyo objetivo es reducir las alucinaciones de la IA generando y verificando código Lean. [21]

En 2024, Google DeepMind creó AlphaProof [22] , que demuestra afirmaciones matemáticas en Lean al nivel de un medallista de plata en la Olimpiada Internacional de Matemáticas. Este fue el primer sistema de IA que logró un desempeño digno de una medalla en los problemas de una olimpiada de matemáticas. [23]


Véase también

Referencias

  1. ^ Moura, Leonardo de; Ullrich, Sebastian (2021). Platzer, André; Sutcliffe, Geoff (eds.). "El demostrador de teoremas y lenguaje de programación Lean 4". Deducción automatizada – CADE 28 . Cham: Springer International Publishing: 625–635. doi : 10.1007/978-3-030-79876-5_37 . ISBN 978-3-030-79876-5.
  2. ^ "Acerca de". Lenguaje simplificado . Consultado el 13 de marzo de 2024 .
  3. ^ Moura, Leonardo de; Ullrich, Sebastian (2021). Platzer, André; Sutcliffe, Geoff (eds.). Deducción automatizada -- CADE 28. Springer International Publishing. págs. 625–635. doi :10.1007/978-3-030-79876-5_37. ISBN 978-3-030-79876-5. S2CID  235800962 . Consultado el 24 de marzo de 2023 .
  4. ^ "Cambios significativos con respecto a Lean 3". Manual Lean . Consultado el 24 de marzo de 2023 .
  5. ^ "Misión". Lean FRO . 2023-07-25 . Consultado el 2024-03-14 .
  6. ^ "baterías". GitHub . Consultado el 22 de septiembre de 2024 .
  7. ^ "Construyendo la biblioteca matemática del futuro". Revista Quanta . Archivado desde el original el 2 de octubre de 2020.
  8. ^ "Comunidad Lean". leanprover-community.github.io . Consultado el 24 de octubre de 2023 .
  9. ^ "Estadísticas de Mathlib". leanprover-community.github.io . Consultado el 22 de septiembre de 2024 .
  10. ^ "Instalación de Lean 4 en Linux". leanprover-community.github.io . Consultado el 24 de octubre de 2023 .
  11. ^ Hales, Thomas (18 de septiembre de 2018). "Una revisión del demostrador de teorema Lean". Jigger Wit . Archivado desde el original el 21 de noviembre de 2020.
  12. ^ Buzzard, Kevin. "¿El futuro de las matemáticas?" (PDF) . Consultado el 6 de octubre de 2020 .
  13. ^ Macbeth, Heather. "La mecánica de la demostración". hrmacbeth.github.io . Archivado desde el original el 5 de junio de 2024.
  14. ^ "Resúmenes formales". Github .
  15. ^ "¿Qué es el proyecto Xena?". Xena . 8 de mayo de 2019.
  16. ^ Roberts, Siobhan (2 de julio de 2023). "La IA también llega a las matemáticas". New York Times . Archivado desde el original el 1 de mayo de 2024.
  17. ^ Hartnett, Kevin (28 de julio de 2021). "Proof Assistant da el salto a las matemáticas de primera línea". Revista Quanta . Archivado desde el original el 2 de enero de 2022.
  18. ^ Sloman, Leila (6 de diciembre de 2023). "El 'Equipo A' de matemáticas demuestra un vínculo crítico entre la suma y los conjuntos". Revista Quanta . Consultado el 7 de diciembre de 2023 .
  19. ^ "Resolver (algunos) problemas formales de olimpiadas de matemáticas". OpenAI . 2 de febrero de 2022 . Consultado el 13 de marzo de 2024 .
  20. ^ "Enseñar razonamiento matemático avanzado a la IA". Meta AI . 3 de noviembre de 2022 . Consultado el 13 de marzo de 2024 .
  21. ^ Metz, Cade (23 de septiembre de 2024). "¿Las matemáticas son el camino hacia los chatbots que no inventan cosas?". New York Times . Archivado desde el original el 24 de septiembre de 2024.
  22. ^ "La IA logra el estándar de medalla de plata al resolver problemas de la Olimpiada Internacional de Matemáticas". Google DeepMind . 2024-05-14 . Consultado el 2024-07-25 .
  23. ^ Roberts, Siobhan (25 de julio de 2024). «Haganse a un lado, matemáticos, aquí viene AlphaProof». The New York Times . Archivado desde el original el 29 de julio de 2024.

Enlaces externos