Mager | |
---|---|
Sorts | Bevisassistent |
Utvecklaren | Microsoft Research |
Skrivet i | C++ |
Operativ system | plattformsoberoende |
Gränssnittsspråk | engelsk |
Första upplagan | 2013 |
Hårdvaruplattform | plattformsoberoende |
senaste versionen | 4.0.0-m4 (23 mars 2022 ) |
Licens | Apache-licens 2.0 |
Hemsida | leanprover.github.io |
Lean är ett interaktivt verktyg för att bevisa teorem . Baserat på kalkylen för konstruktioner med induktiva typer. Det är öppen källkod värd på GitHub . Lean-projektet lanserades av Leonardo de Moura på Microsoft Research 2013 [1] .
Lean har ett gränssnitt som skiljer det från andra interaktiva teoremprovare. Lean kan kompileras till JavaScript och finns tillgängligt i en webbläsare . Den har inbyggt stöd för Unicode-tecken . (De kan skrivas med hjälp av LaTeX -liknande sekvenser, som "\times" för "×".) Lean har också omfattande metaprogrammeringsstöd .
Lean uppmärksammades av matematikerna Thomas Hales och Kevin Bazard. Hales använder det för sitt "formalabstracts"-projekt [2] . Bazard använder det för Xena-projektet [3] Ett av målen med Xena-projektet är att skriva om alla teorem och bevis i matematikläroplanen vid Imperial College London .
Inom ramen för Xena-projektet formaliseras ett komplext bevis från området för kondenserad matematik utvecklat av Peter Scholze [4] [5] [6] .
Definition av naturliga tal:
induktiv nat : Typ | noll : nat | succ : nat → natDefinition av additionsoperationen för naturliga tal:
definition lägg till : nat → nat → nat | n noll := n | n ( succ m ) := succ ( lägg till n m )Ett exempel på ett enkelt bevis.
sats och_byte : p ∧ q → q ∧ p := antag h1 : p ∧ q , ⟨ h1.höger , h1.vänster ⟩Detta är beviset:
theorem and_swap ( p q : Prop ) : p ∧ q → q ∧ p := börja anta h : ( p ∧ q ), -- anta att p ∧ q är sanna fall h , -- extrahera de individuella propositionerna från konjunktionen split , -- dela upp målkonjunktionen i två fall: bevisa p och bevisa q separat upprepa { antagande } slut ![]() |
---|