Documentation

Aesop.Forward.Match

def Aesop.Match.initial (subst : Substitution) (isPatSubst : Bool) (forwardDeps conclusionDeps : Array PremiseIndex) :

Create a one-element match. subst is the substitution that results from matching a hypothesis against slot 0, or from a pattern substitution. isPatSubst is true if the substitution resulted from a rule pattern. forwardDeps are the forward dependencies of slot 0. conclusionDeps are the conclusion dependencies of the rule to which this match belongs.

Equations
  • One or more equations did not get rendered due to their size.
def Aesop.Match.addHypOrPatSubst (subst : Substitution) (isPatSubst : Bool) (forwardDeps : Array PremiseIndex) (m : Match) :

Add a hyp or pattern substitution to the match. subst is the substitution that results from matching a hypothesis against slot m.level + 1, or from the pattern. isPatSubst is true if the substitution resulted from a pattern substitution. forwardDeps are the forward dependencies of slot m.level + 1.

Equations
  • One or more equations did not get rendered due to their size.

Returns true if the match contains the given hyp.

Equations

Returns true if the match contains the given pattern substitution.

Equations

Given a complete match m for r, get arguments to r contained in the match's slots and substitution. For non-immediate arguments, we return none. The returned levels are suitable assignments for the level mvars of r.

Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.
def Aesop.ForwardRuleMatch.foldHypsM {M : Type u_1 → Type u_2} {σ : Type u_1} [Monad M] (f : σLean.FVarIdM σ) (init : σ) (m : ForwardRuleMatch) :
M σ

Fold over the hypotheses contained in a match.

Equations
  • One or more equations did not get rendered due to their size.
def Aesop.ForwardRuleMatch.foldHyps {σ : Type u_1} (f : σLean.FVarIdσ) (init : σ) (m : ForwardRuleMatch) :
σ

Fold over the hypotheses contained in a match.

Equations

Returns true if any hypothesis contained in m satisfies f.

Equations
  • One or more equations did not get rendered due to their size.

Get the hypotheses from the match whose types are propositions.

Equations
  • One or more equations did not get rendered due to their size.

Construct the proof of the new hypothesis represented by m.

Equations
  • One or more equations did not get rendered due to their size.

Apply a forward rule match to a goal. This adds the hypothesis corresponding to the match to the local context. Returns the new goal, the added hypothesis and the hypotheses that were removed (if any). Hypotheses may be removed if the match is for a destruct rule. If the skip function, when applied to the normalised type of the new hypothesis, returns true, then the hypothesis is not added to the local context.

Equations
  • One or more equations did not get rendered due to their size.

Convert a forward rule match to a rule tactic description.

Equations

Convert a forward rule match m to a rule. Fails if mkExtra? m fails.

Equations

Convert a norm forward rule match to a norm rule. Fails if the match is not a norm rule match.

Equations

Convert a safe forward rule match to a safe rule. Fails if the match is not a safe rule match.

Equations

Convert an unsafe forward rule match to an unsafe rule. Fails if the match is not an unsafe rule match.

Equations