Domanda

Se lo capisco correttamente (principalmente dall'esistenza della funzione applyTactic), è possibile scrivere tattiche personalizzate per il Prover teorema in Idris.Cosa (o dove) sono alcuni esempi che potrei usare per imparare come farlo?

È stato utile?

Soluzione

Ci sono due meccanismi per scrivere tattiche personalizzate in IDRIS: riflessione di alto livello e di basso livello.

Utilizzando la riflessione di alto livello, si scrive una funzione che viene eseguita sulla sintassi anziché sui dati valutati, non ridurrà il suo argomento. Queste funzioni restituiscono una nuova tattica, definite utilizzando le tattiche preesistenti in IDRIS. Se si desidera restituire direttamente un termine di prova, è sempre possibile utilizzare Exact. Un esempio di questo tipo di riflessione può essere trovato in Il Libreria di effetti . Le tattiche di riflessione di alto livello vengono invocate utilizzando byReflection in modalità Proof.

Nella riflessione di basso livello, si lavora direttamente con i termini quotati dalla teoria del tipo di base di IDRIS. Una tattica è quindi una funzione in TT -> List (TTName, TT) -> Tactic in cui il primo argomento è il tipo di obiettivo, il secondo è il contesto di prova locale, e il risultato di ritorno è lo stesso della riflessione di alto livello. Questo è ciò che risadelico collegato a sopra . Questi vengono invocati utilizzando applyTactic in modalità Proof.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top