This PR modifies `let` and `have` term syntaxes to be consistent with each other. Adds configuration options; for example, `have` is equivalent to `let +nondep`, for *nondependent* lets. Other options include `+usedOnly` (for `let_tmp`), `+zeta` (for `letI`/`haveI`), and `+postponeValue` (for `let_delayed)`. There is also `let (eq := h) x := v; b` for introducing `h : x = v` when elaborating `b`. The `eq` option works for pattern matching as well, for example `let (eq := h) (x, y) := p; b`. Future PRs will add these options to tactic syntax, once a stage0 update has been done.
9 lines
231 B
Text
9 lines
231 B
Text
unknownTactic.lean:3:3: error: unknown tactic
|
|
unknownTactic.lean:1:41-3:8: error: unsolved goals
|
|
x : Nat
|
|
a✝ : x = x
|
|
⊢ x = x
|
|
---
|
|
unknownTactic.lean:8:22: error: unknown tactic
|
|
---
|
|
unknownTactic.lean:14:22: error: unknown tactic
|