Tentando entender Lean como PL e TP visitando os sistemas lambda por tras.
Todo conteudo pode mudar ou estar incorreto. Não confie em nada.
Os sistemas nao serao abordados com rigor matematico. A ideia é desenvolver uma intuição de como cada um funciona, como se calcula nestes, e as "capacidades" que cada um contribui para o Lean.
Dois vieses: Lean como linguagem de programação funcional; lean como theorem prover.
- o que é um lambda sistema, relacao entre eles, quais veremos
- seguindo TTFP
- {terms,types} depending on {terms,types}
- curry howard
TODO: introduzir elementos sintaticos:
- comentarioss
- tipagem explicita implicita
- def
- fun, placeholder notation
- pattern match
- namespaces/sections
- structure where
- inductive where
- if/else
- if let
- variables
- automatic implicit args {} e @funcao fpil 1.7
- typeclasses
- named args (manual sign changes) TODO: identificar em que ponto temos tipos flecha, enum, prod, inductive
TODO:conectar cada ponto com sintaxe progfun lean e deducao nat qd aplicavel
TODO: citar referencias nos pontos
TODO: listar sintaxes relacionadas vies mat e.g. axiom theorem example
TODO: literal lean, exercicios c sorry