Documentation

Lean.Meta.Match.MatcherInfo

  • hName? : Option Name

    some h if the discriminant is annotated with h:

Instances For

A "matcher" auxiliary declaration has the following structure:

  • numParams parameters
  • motive
  • numDiscrs discriminators (aka major premises)
  • altNumParams.size alternatives (aka minor premises) where alternative i has altNumParams[i] parameters
  • uElimPos? is some pos when the matcher can eliminate in different universe levels, and pos is the position of the universe level parameter that specifies the elimination universe. It is none if the matcher only eliminates into Prop.
Equations
  • info.numAlts = info.altNumParams.size
Equations
  • info.arity = info.numParams + 1 + info.numDiscrs + info.numAlts
Equations
  • info.getFirstDiscrPos = info.numParams + 1
Equations
  • info.getDiscrRange = { start := info.getFirstDiscrPos, stop := info.getFirstDiscrPos + info.numDiscrs, step := 1, step_pos := Nat.zero_lt_one }
Equations
  • info.getFirstAltPos = info.numParams + 1 + info.numDiscrs
Equations
  • info.getAltRange = { start := info.getFirstAltPos, stop := info.getFirstAltPos + info.numAlts, step := 1, step_pos := Nat.zero_lt_one }
Equations
  • info.getMotivePos = info.numParams
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
  • s.addEntry e = { map := s.map.insert e.name e.info }
Equations
  • s.switch = { map := s.map.switch }
def Lean.Meta.Match.addMatcherInfo {m : TypeType} [Monad m] [MonadEnv m] (matcherName : Name) (info : MatcherInfo) :
Equations
def Lean.Meta.getMatcherInfo? {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
Equations
@[export lean_is_matcher]
def Lean.Meta.isMatcherCore (env : Environment) (declName : Name) :
Equations
def Lean.Meta.isMatcher {m : TypeType} [Monad m] [MonadEnv m] (declName : Name) :
Equations
Equations
  • One or more equations did not get rendered due to their size.
def Lean.Meta.isMatcherApp {m : TypeType} [Monad m] [MonadEnv m] (e : Expr) :
Equations