Module docstring
{}
{}
Lean.Parser.Tactic.as_aux_lemma
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.withAnnotateState
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.intro
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.intros
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rename
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.revert
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.clear
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.subst
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.substVars
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.assumption
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.contradiction
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.falseOrByContra
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.apply
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.exact
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.refine
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.refine'
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticExfalso
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.constructor
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.left
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.right
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.case
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.case'
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticNext_=>_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.allGoals
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.anyGoals
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.focus
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.skip
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.done
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.traceState
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.traceMessage
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.failIfSuccess
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.paren
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.withReducible
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.withReducibleAndInstances
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.withUnfoldingAll
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.first
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rotateLeft
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rotateRight
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticTry_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tactic_<;>_
definition
: Lean.TrailingParserDescr✝
Lean.Parser.Tactic.fail
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.eqRefl
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRfl
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.applyRfl
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRfl'
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.acRfl
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSorry
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticAdmit
definition
: Lean.ParserDescr✝
macromacro "admit" : tactic => `(tactic| sorry)
Lean.Parser.Tactic.tacticInfer_instance
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.posConfigItem
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.negConfigItem
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.valConfigItem
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.configItem
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.optConfig
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.config
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.locationWildcard
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.locationType
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.locationHyp
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.location
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.change
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.changeWith
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rwRule
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rwRuleSeq
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rewriteSeq
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rwSeq
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRwa__
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.injection
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.injections
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.discharger
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpPre
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpPost
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpLemma
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpErase
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpStar
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simp
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpAll
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.dsimp
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpArg
definition
Lean.Parser.Tactic.simpArgs
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.dsimpArg
definition
Lean.Parser.Tactic.dsimpArgs
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpTraceArgsRest
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpTrace
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSimp?!_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpAllTraceArgsRest
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpAllTrace
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSimp_all?!_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.dsimpTraceArgsRest
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.dsimpTrace
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticDsimp?!_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpaArgsRest
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.simpa
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSimpa!_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSimpa?_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSimpa?!_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.delta
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.unfold
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRefine_lift_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticHave_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticSuffices_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticLet_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticShow_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.letrec
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRefine_lift'_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticHave'_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticHave'_:=_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticLet'_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.inductionAltLHS
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.inductionAlt
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.inductionAlts
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.elimTarget
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.induction
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.generalizeArg
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.generalize
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.cases
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.funInduction
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.funCases
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.renameI
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticRepeat_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.repeat'
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.repeat1'
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticTrivial
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.classical
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.split
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.dbgTrace
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticStop_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.specialize
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticUnhygienic_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.sleep
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticExists_,,
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.congr
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacDepIfThenElse
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacIfThenElse
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticNofun
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticNomatch_,,
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.replace
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticAnd_intros
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.substEqs
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.runTac
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticHaveI_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticLetI_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.DecideConfig
structure
/--
Configuration for the `decide` tactic family.
-/
structure DecideConfig where
/-- If true (default: false), then use only kernel reduction when reducing the `Decidable` instance.
This is more efficient, since the default mode reduces twice (once in the elaborator and again in the kernel),
however kernel reduction ignores transparency settings. -/
kernel : Bool := false
/-- If true (default: false), then uses the native code compiler to evaluate the `Decidable` instance,
admitting the result via the axiom `Lean.ofReduceBool`. This can be significantly more efficient,
but it is at the cost of increasing the trusted code base, namely the Lean compiler
and all definitions with an `@[implemented_by]` attribute.
The instance is only evaluated once. The `native_decide` tactic is a synonym for `decide +native`. -/
native : Bool := false
/-- If true (default: true), then when preprocessing the goal, do zeta reduction to attempt to eliminate free variables. -/
zetaReduce : Bool := true
/-- If true (default: false), then when preprocessing, removes irrelevant variables and reverts the local context.
A variable is *relevant* if it appears in the target, if it appears in a relevant variable,
or if it is a proposition that refers to a relevant variable. -/
revert : Bool := false
Lean.Parser.Tactic.decide
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.nativeDecide
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.omega
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticBv_omega
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.acNf0
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.normCast0
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticAssumption_mod_cast_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticNorm_cast__
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.pushCast
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.normCastAddElim
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.tacticAc_nf_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.symm
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.symmSaturate
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.SolveByElim.erase
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.SolveByElim.star
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.SolveByElim.arg
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.SolveByElim.args
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.SolveByElim.using_
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.solveByElim
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.applyAssumption
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.applyRules
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.exact?
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.apply?
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rewrites_forbidden
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.rewrites?
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.showTerm
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.showTermElab
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.by?
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.exposeNames
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.suggestPremises
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.bvDecideMacro
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.bvTraceMacro
definition
: Lean.ParserDescr✝
Lean.Parser.Tactic.bvNormalizeMacro
definition
: Lean.ParserDescr✝
Lean.Parser.Attr.simp
definition
: Lean.ParserDescr✝
Lean.Parser.Attr.wf_preprocess
definition
: Lean.ParserDescr✝
Lean.Parser.Attr.normCastLabel
definition
: Lean.ParserDescr✝
Lean.Parser.Attr.norm_cast
definition
: Lean.ParserDescr✝
term‹_›
definition
: Lean.ParserDescr✝
tacticGet_elem_tactic_trivial
definition
: Lean.ParserDescr✝
tacticGet_elem_tactic
definition
: Lean.ParserDescr✝
macromacro "get_elem_tactic" : tactic =>
`(tactic| first
/-
Recall that `macro_rules` (namely, for `get_elem_tactic_trivial`) are tried in reverse order.
We first, however, try `done`, since the necessary proof may already have been
found during unification, in which case there is no goal to solve (see #6999).
If a goal is present, we want `assumption` to be tried first.
This is important for theorems such as
```
[simp] theorem getElem_pop (a : Array α) (i : Nat) (hi : i < a.pop.size) :
a.pop[i] = a[i]'(Nat.lt_of_lt_of_le (a.size_pop ▸ hi) (Nat.sub_le _ _)) :=
```
There is a proof embedded in the right-hand-side, and we want it to be just `hi`.
If `omega` is used to "fill" this proof, we will have a more complex proof term that
cannot be inferred by unification.
We hardcoded `assumption` here to ensure users cannot accidentally break this IF
they add new `macro_rules` for `get_elem_tactic_trivial`.
TODO: Implement priorities for `macro_rules`.
TODO: Ensure we have **high-priority** macro_rules for `get_elem_tactic_trivial` which are
just `done` and `assumption`.
-/
| done
| assumption
| get_elem_tactic_trivial
| fail "failed to prove index is valid, possible solutions:
- Use `have`-expressions to prove the index is valid
- Use `a[i]!` notation instead, runtime check is performed, and 'Panic' error message is produced if index is not valid
- Use `a[i]?` notation instead, result is an `Option` type
- Use `a[i]'h` notation instead, where `h` is a proof that index is valid"
)
Lean.Parser.Syntax.exact?
definition
: Lean.ParserDescr✝
autoParam
abbrev
(α : Sort u) (tactic : Lean.Syntax) : Sort u
/--
Gadget for automatic parameter support. This is similar to the `optParam` gadget, but it uses
the given tactic.
Like `optParam`, this gadget only affects elaboration.
For example, the tactic will *not* be invoked during type class resolution. -/
abbrev autoParam.{u} (α : Sort u) (tactic : Lean.Syntax) : Sort u := α