Pergunta

Se eu entendi corretamente (principalmente da existência do applyTactic função), é possível escrever as suas próprias táticas para o provador de teorema em Idris.O que (ou onde) são alguns exemplos que eu poderia usar para aprender como fazer isso?

Foi útil?

Solução

Existem dois mecanismos para a escrita personalizada táticas em Idris:de alto nível e baixo nível de reflexão.

Usando de reflexão de alto nível, você pode escrever uma função que executa na sintaxe, ao invés de incluir na avaliados dados - não reduzir o seu argumento.Estas funções devolvem uma nova tática, definida utilizando a pré-existentes táticas em Idris.Se você deseja retornar a uma prova de prazo, diretamente, você pode sempre apenas utilizar Exact.Um exemplo deste tipo de reflexão pode ser encontrado em a biblioteca de efeitos.De reflexão de alto nível táticas são invocados usando byReflection no modo de prova.

No baixo nível de reflexão, você trabalha diretamente com o citado termos de Idris do tipo de núcleo da teoria.Uma tática é, então, uma função em TT -> List (TTName, TT) -> Tactic onde o primeiro argumento é o tipo de meta, o segundo é o local de prova contexto, e o resultado de retorno é o mesmo como na reflexão de alto nível.Isso é o que laughadelic vinculada ao acima.Estes são invocados usando applyTactic no modo de prova.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top