@@ -856,8 +856,6 @@ macro_rules
856856 refine no_implicit_lambda% (have $id:letId $bs* : $type := ?body; ?_)
857857 $tac)
858858 | `(tactic| have $c:letConfig $d:letDecl) => `(tactic| refine_lift have $c:letConfig $d:letDecl; ?_)
859- /-- TODO(kmill): remove after stage0 update -/
860- macro (priority := low) "have " d:letDecl : tactic => `(tactic| have $d:letDecl)
861859
862860/--
863861Given a main goal `ctx ⊢ t`, `suffices h : t' from e` replaces the main goal with `ctx ⊢ t'`,
@@ -867,6 +865,7 @@ The variant `suffices h : t' by tac` is a shorthand for `suffices h : t' from by
867865If `h :` is omitted, the name `this` is used.
868866 -/
869867macro "suffices " d:sufficesDecl : tactic => `(tactic| refine_lift suffices $d; ?_)
868+
870869/--
871870The `let` tactic is for adding definitions to the local context of the main goal.
872871* `let x : t := e` adds the definition `x : t := e` if `e` is a term of type `t`.
@@ -879,8 +878,7 @@ The `let` tactic is for adding definitions to the local context of the main goal
879878 local variables `x : α`, `y : β`, and `z : γ`.
880879 -/
881880macro "let " c:letConfig d:letDecl : tactic => `(tactic| refine_lift let $c:letConfig $d:letDecl; ?_)
882- /-- TODO(kmill): remove after stage0 update -/
883- macro (priority := low) "let " d:letDecl : tactic => `(tactic| let $d:letDecl)
881+
884882/-- `let rec f : t := e` adds a recursive definition `f` to the current goal.
885883The syntax is the same as term-mode `let rec`. -/
886884syntax (name := letrec) withPosition(atomic("let " &"rec " ) letRecDecls) : tactic
0 commit comments