Universes
A representation of Idris's tactics that can be returned from custom
tactic implementations. Generate these using applyTactic
.
Try the first tactic and resort to the second one on failure
Only run if the goal has the right type
Resolve function name, find matching arguments in the
context and compute the proof target
Apply both tactics in sequence
Introduce a new hole with a particular type
Move the current hole to the end
Intelligently construct the proof target from the context
Build a proof by applying contructors up to a maximum depth
Resolve a type class
Infer the proof target from the context
introduce all variables into the context
Introduce a named variable into the context, use the
first one if the given name is not found
Invoke the reflected rep. of another tactic
Turn a value into its reflected representation
Use a %reflection
function
Turn a raw value back into a term
Use the given value to conclude the proof
Focus on a particular hole
Rewrite with an equality
Perform induction on a particular expression
Perform case analysis on a particular expression
Name a reflected term
Name a reflected term and type it
Normalise the goal
Do nothing
Fail with an error message
Attempt to fill the hole with source code information
A user-provided name
A name in some namespace.
The namespace is in reverse order, so (NS (UN "foo") ["B", "A"])
represents the name A.B.foo
Machine-chosen names
Special names, to make conflicts impossible and language features
predictable
Name of something which is never used in scope
Reflection of the well typed core language
A reference to some name (P for Parameter)
de Bruijn variables
Bind a variable
Apply one term to another
Embed a constant
Argument projection; runtime only
Erased terms
Impossible terms
The type of types along (with universe constraints)
Raw terms without types
Things with a canonical representation as a reflected term.
This type class is intended to be used during proof automation and the
construction of custom tactics.
Types of named references
Error reports are a list of report parts
A human-readable string
An Idris name (to be semantically coloured)
An Idris term, to be pretty printed
An indented sub-report, to provide more details
Primitive constants
Types annotations for bound variables in different
binding contexts