This module has telescope functions for matcher alts. They are primarily used
in Match.MatchEqs, but also in MatcherApp.Transform, hence the separate module.
Similar to forallTelescopeReducing, but
Eliminates arguments for named parameters and the associated equation proofs.
Instantiate the
Unitparameter of an otherwise argumentless alternative.
It does not handle the equality parameters associated with the h : discr notation.
The continuation k takes four arguments ys args mask type.
ysare variables for the hypotheses that have not been eliminated.argsare the arguments for the alternativealtthat has typealtType.ys.size <= args.sizemask[i]is true if the hypotheses has not been eliminated.mask.size == args.size.typeis the resulting type foraltType.
We use the mask to build the splitter proof. See mkSplitterProof.
This can be used to use the alternative of a match expression in its splitter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extension of forallAltTelescope that continues further:
Equality parameters associated with the h : discr notation are replaced with rfl proofs.
Recall that this kind of parameter always occurs after the parameters corresponding to pattern
variables.
The continuation k takes four arguments ys args mask type.
ysare variables for the hypotheses that have not been eliminated.eqsare variables for equality hypotheses associated with discriminants annotated withh : discr.argsare the arguments for the alternativealtthat has typealtType.ys.size <= args.sizemask[i]is true if the hypotheses has not been eliminated.mask.size == args.size.typeis the resulting type foraltType.
We use the mask to build the splitter proof. See mkSplitterProof.
This can be used to use the alternative of a match expression in its splitter.
Equations
- One or more equations did not get rendered due to their size.