Lean (bevisassistent)


Lean Theorem Prover

Information
Udviklet af Microsoft Research
Første version 2013
Sidste version 3.4.2 (18. januar 2019)
Depositum https://github.com/leanprover/lean
Skrevet i C ++
Miljø I browseren eller på tværs af platformen
Sprog engelsk
Type Bevisassistent
Licens Apache 2.0
Internet side https://leanprover.github.io

Lean er en bevisassistent og et programmeringssprog . Det er baseret på princippet om beregning af konstruktioner med induktive typer .

Lean har en række bemærkelsesværdige funktioner, der adskiller den fra anden bevisassisterende software . Lean kan samles i JavaScript , hvilket gør det tilgængeligt i en webbrowser . Det understøtter indbygget Unicode- tegn til matematiske symboler, som kan indtastes ved hjælp af genveje, der minder om LaTeX- syntaks (f.eks. "×" opnås ved at skrive "\ times"). Det er også muligt at foretage metaprogrammering på det samme sprog som til konventionel brug. Således, hvis brugeren ønsker at skrive en funktion, der automatisk beviser bestemte sætninger, er det muligt at skrive i Lean en funktion, der genererer de ønskede bevis i Lean.

Lean fangede matematikernes Thomas Hales og Kevin Buzzards opmærksomhed . Hales bruger det til sit Formal Abstracts- projekt . Buzzard bruger det til Xena-projektet , hvis mål er at omskrive alle sætninger og bevis i Imperial College Londons Undergraduate Mathematics Program i Lean .

Eksempler

Her er hvordan naturlige tal defineres i Lean:

inductive nat : Type | zero : nat | succ : nat nat

Her er definitionen af ​​tilføjelse for hele tal:

definition add : nat nat nat | n zero := n | n (succ m) := succ(add n m)

Her er et simpelt bevis i Lean:

theorem and_swap : p q q p := assume h1 : p q, h1.right, h1.left

Her er det samme bevis ved hjælp af taktik:

theorem and_swap (p q : Prop) : p q q p := begin assume h : (p q), -- on suppose que p ∧ q est vrai cases h, -- on extrait les propositions individuelles de la conjonction split, -- on sépare le but à prouver en deux cas : prouver p et prouver q séparément repeat { assumption } end

Referencer

  1. Hales, “  En gennemgang af Lean Theorem Prover  ” (adgang 21. januar 2020 )
  2. Buzzard, “  Fremtiden for matematik?  » (Adgang til 21. januar 2020 )

eksterne links