File: .lake/packages/lean4/src/lean/Lean/Elab/Tactic/Guard.lean

full_name: Lean.Elab.Tactic.GuardExpr.MatchKind
code: /--
The various `guard_*` tactics have similar matching specifiers for how equal expressions
have to be to pass the tactic.
This inductive gives the different specifiers that can be selected.
-/
inductive MatchKind
/-- A syntactic match means that the `Expr`s are `==` after stripping `MData` -/
| syntactic
/-- A defeq match `isDefEqGuarded` returns true. (Note that unification is allowed here.) -/
| defEq (red : TransparencyMode := .reducible)
/-- An alpha-eq match means that `Expr.eqv` returns true. -/
| alphaEq
goal: Type

full_name: Lean.Elab.Tactic.GuardExpr.MatchKind.syntactic
code: /--
The various `guard_*` tactics have similar matching specifiers for how equal expressions
have to be to pass the tactic.
This inductive gives the different specifiers that can be selected.
-/
inductive MatchKind
/-- A syntactic match means that the `Expr`s are `==` after stripping `MData` -/
| syntactic
/-- A defeq match `isDefEqGuarded` returns true. (Note that unification is allowed here.) -/
| defEq (red : TransparencyMode := .reducible)
/-- An alpha-eq match means that `Expr.eqv` returns true. -/
| alphaEq
goal: Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.MatchKind.alphaEq
code: /--
The various `guard_*` tactics have similar matching specifiers for how equal expressions
have to be to pass the tactic.
This inductive gives the different specifiers that can be selected.
-/
inductive MatchKind
/-- A syntactic match means that the `Expr`s are `==` after stripping `MData` -/
| syntactic
/-- A defeq match `isDefEqGuarded` returns true. (Note that unification is allowed here.) -/
| defEq (red : TransparencyMode := .reducible)
/-- An alpha-eq match means that `Expr.eqv` returns true. -/
| alphaEq
goal: Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.MatchKind.defEq
code: /--
The various `guard_*` tactics have similar matching specifiers for how equal expressions
have to be to pass the tactic.
This inductive gives the different specifiers that can be selected.
-/
inductive MatchKind
/-- A syntactic match means that the `Expr`s are `==` after stripping `MData` -/
| syntactic
/-- A defeq match `isDefEqGuarded` returns true. (Note that unification is allowed here.) -/
| defEq (red : TransparencyMode := .reducible)
/-- An alpha-eq match means that `Expr.eqv` returns true. -/
| alphaEq
goal: Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.colon.toMatchKind
code: /-- Converts a `colon` syntax into a `MatchKind` -/
def colon.toMatchKind : TSyntax ``colon → Option MatchKind
  
goal: Lean.TSyntax `Lean.Parser.colon → Option Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.colonEq.toMatchKind
code: /-- Converts a `colonEq` syntax into a `MatchKind` -/
def colonEq.toMatchKind : TSyntax ``colonEq → Option MatchKind
  
goal: Lean.TSyntax `Lean.Parser.colonEq → Option Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.equal.toMatchKind
code: /-- Converts a `equal` syntax into a `MatchKind` -/
def equal.toMatchKind : TSyntax ``equal → Option MatchKind
  
goal: Lean.TSyntax `Lean.Parser.equal → Option Lean.Elab.Tactic.GuardExpr.MatchKind

full_name: Lean.Elab.Tactic.GuardExpr.MatchKind.isEq
code: /-- Applies the selected matching rule to two expressions. -/
def MatchKind.isEq (a b : Expr) : MatchKind → MetaM Bool
  
goal: Lean.Elab.Tactic.GuardExpr.MatchKind → Lean.MetaM Bool

full_name: Lean.Elab.Tactic.GuardExpr.elabAndEvalMatchKind
code: /-- Elaborate `a` and `b` and then do the given equality test `mk`. We make sure to unify
the types of `a` and `b` after elaboration so that when synthesizing pending metavariables
we don't get the wrong instances due to default instances (for example, for nat literals). -/
def elabAndEvalMatchKind (mk : MatchKind) (a b : Term) : TermElabM Bool 
goal: Lean.Elab.TermElabM Bool

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardExpr
code: @[builtin_tactic guardExpr]
def evalGuardExpr : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardExprConv
code: @[builtin_tactic guardExprConv]
def evalGuardExprConv : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardTarget
code: @[builtin_tactic guardTarget]
def evalGuardTarget : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardTargetConv
code: @[builtin_tactic guardTargetConv]
def evalGuardTargetConv : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardHyp
code: @[builtin_tactic guardHyp]
def evalGuardHyp : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardHypConv
code: @[builtin_tactic guardHypConv]
def evalGuardHypConv : Tactic 
goal: Lean.Elab.Tactic.Tactic

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardExprCmd
code: @[builtin_command_elab guardExprCmd]
def evalGuardExprCmd : Lean.Elab.Command.CommandElab
  
goal: Lean.Elab.Command.CommandElab

full_name: Lean.Elab.Tactic.GuardExpr.evalGuardCmd
code: @[builtin_command_elab guardCmd]
def evalGuardCmd : Lean.Elab.Command.CommandElab
  
goal: Lean.Elab.Command.CommandElab