Lean (programovací jazyk)
Lean je čistě funkcionální programovací jazyk vyvinutý v Microsoft Research. Jedná se o jazyk navržený pro formalizaci matematických tvrzení, má proto induktivní a závislostní typy. Syntakticky vychází z jazyka ML.
Přirozená čísla se například v Leanu definují takto:
inductive Nat : Type where
| zero : Nat
| succ : Nat -> Nat
Tato definice vychází z Peanovy aritmetiky.
Typy v Leanu tvoří indexovanou hierarchii, aby nedošlo k Russellovu paradoxu. Jazyk obsahuje bohatou standardní knihovnu. Zdrojový kód se překládá do jazyka C a následně do strojového kódu. Správa paměti se provádí pomocí počítání referencí.
Lean má zvláštní typ Prop
pro výroky, který je v hierarchii typů pod typem Type
. Mezi jeho vlastnosti patří výroková extenzionalita a impredikativita.