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. |
||
|---|---|---|
| .. | ||
| Tactic | ||
| Term | ||
| Attr.lean | ||
| Basic.lean | ||
| Command.lean | ||
| Do.lean | ||
| Extension.lean | ||
| Extra.lean | ||
| Level.lean | ||
| Module.lean | ||
| StrInterpolation.lean | ||
| Syntax.lean | ||
| Tactic.lean | ||
| Term.lean | ||
| Types.lean | ||