Support for termination_by
notation #
A single decreasing_by
clause
Instances For
- partialFixpoint : PartialFixpointType
- greatestFixpoint : PartialFixpointType
- leastFixpoint : PartialFixpointType
Instances For
A single partial_fixpoint
, greatest_fixpoint
or least_fixpoint
clause
- ref : Syntax
- fixpointType : PartialFixpointType
Instances For
The termination annotations for a single function.
For decreasing_by
, we store the whole decreasing_by tacticSeq
expression, as this
is what Term.runTactic
expects.
- ref : Syntax
- terminationBy? : Option TerminationBy
- partialFixpoint? : Option PartialFixpoint
- decreasingBy? : Option DecreasingBy
- extraParams : Nat
Here we record the number of parameters past the
:
. It is set byTerminationHints.rememberExtraParams
and used as follows:- When we guess the termination measure in
GuessLex
and want to print it in surface-syntax compatible form. - If there are fewer variables in the
termination_by
annotation than there are extra parameters, we know which parameters they should apply to (TerminationBy.checkVars
).
- When we guess the termination measure in
Instances For
True if any form of termination hint is present.
Equations
Instances For
Remembers extraParams
for later use. Needs to happen early enough where we still know
how many parameters came from the function header (headerParams
).
Equations
Instances For
Checks that termination_by
binds at most as many variables are present in the outermost
lambda of value
, and throws appropriate errors.
Equations
Instances For
Takes apart a Termination.suffix
syntax object