Quero entender a teoria dos tipos, mas primeiro preciso saber como aplicá-la. Poderia haver mais aplicações não óbvias da teoria dos tipos, além dos sistemas de tipos na programação? Poderia haver outras aplicações, digamos, em perfis de personalidade e afins?
type-theory
applied-theory
Tamad Lang
fonte
fonte
Respostas:
Você pode estar interessado no trabalho sobre o Ceptre , resultado da pesquisa de doutorado de Chris Martens , que usa a teoria dos tipos para contar histórias interativas. A seguir, é apresentado o resumo da tese :
fonte
Tem havido usos interessantes da teoria dos tipos na linguística. Veja, por exemplo, as obras linguísticas de Chung-chieh Shan ou Christian Rétoré .
A seguir, é apresentada a descrição do livro de Rétoré sobre gramáticas categoriais:
A citação a seguir está na introdução do capítulo do livro sobre Efeitos colaterais linguísticos de Shan :
fonte
Por causa da correspondência de Curry-Howard , os tipos podem ser interpretados como proposições e proposições como tipos.
Como resultado disso, a teoria de tipos é aplicável a literalmente qualquer campo que use lógica formal para suas provas. Isso pode ser verificação de circuitos, análise real, lógica simbólica, geometria etc.
Por exemplo, algumas ferramentas automáticas de verificação de provas funcionam usando esse princípio: elas verificam a validade da prova, verificando um termo específico em algum sistema de tipos. O verificador de prova LF é baseado nessa abordagem, assim como o HOL Light . Como um exemplo de aplicativo, o código de transporte de prova usou o LF para verificar as provas de segurança da memória do código não confiável. O benefício de usar esse tipo de verificador de provas é que a implementação pode ser muito simples e, portanto, podemos obter alta garantia de que a implementação está correta. Veja, por exemplo, o seguinte documento:
Damas fundamentais com pequenas testemunhas . Dinghao Wu, Andrew W. Appel, Aaron Stump. PPDP 2003.
fonte
Um artigo interessante que explica aplicações de tipos dependentes é o The Power of Pi , que mostra como o Agda pode ser usado para resolver problemas interessantes.
Outro bom exemplo é o uso de tipos dependentes para o controle de recursos. Um bom exemplo é a API de gerenciamento de arquivos do Effects of Idris . Por exemplo, a função para ler uma linha de um arquivo tem o seguinte tipo
que especifica que essa função é aplicável apenas se houver um arquivo aberto. A lista entre chaves indica quais efeitos estão disponíveis. Nesse caso, temos que essa função requer o efeito de ter um arquivo aberto para leitura.
Mais informações sobre a biblioteca Effect podem ser encontradas aqui .
Mais um aplicativo é o uso de tipos dependentes de simultaneidade, conforme relatado no artigo a seguir pelo criador do Idris.
fonte
Como mencionado na resposta de jmite, a lógica de ordem superior / teoria dos tipos na verificação de circuitos / hardware / eletrônica existe há décadas e agora é tão rotineira que nem sequer percebeu / considerou uma "aplicação" após um esforço de transferência aparentemente importante em década de 1990, embora ainda seja uma área ativa de pesquisa. também existe muita aplicação da Coq e sua lógica de tipo, em particular na verificação de circuitos / hardware / eletrônica, desde a lógica de gate de baixo nível até estruturas de nível / ordem / subsistemas de nível muito mais alto. aqui estão algumas referências principais
Lógica de ordem superior e verificação de hardware / Melham (1993!)
Provas do Teorema da Lógica de Ordem Superior e suas Aplicações / Claeson, Gordon
Construindo circuitos corretos: verificação de aspectos funcionais das especificações de hardware com tipos dependentes / Brady, Mckinna, Hammond
Circuitos de certificação em teoria de tipos / Grimal
Coquet: uma biblioteca Coq para verificação de hardware / Braibant
fonte