Skip to content

Commit ddc39ee

Browse files
feat: grind interactive
This is a first draft of a section on grind's interactive mode.
1 parent 60ca564 commit ddc39ee

6 files changed

Lines changed: 1407 additions & 1 deletion

File tree

Manual/Grind.lean

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import Manual.Grind.Cutsat
1919
import Manual.Grind.Algebra
2020
import Manual.Grind.Linarith
2121
import Manual.Grind.Annotation
22+
import Manual.Grind.Interactive
2223
import Manual.Grind.ExtendedExamples
2324

2425
-- Needed for the if-then-else normalization example.
@@ -160,9 +161,12 @@ The two largest classes are shown as `True propositions` and `False propositions
160161
Inspect these lists to spot missing facts or contradictory assumptions.
161162

162163
# Minimizing `grind` calls
164+
%%%
165+
tag := "grind-minimizing"
166+
%%%
163167

164168
The `grind only [...]` tactic invokes {tactic}`grind` with a limited set of theorems, which can improve performance.
165-
Calls to `grind only` can be conveniently constructed using {tactic}`grind?`, which automatically records the theorems used by {tactic}`grind` and suggests a suitable `grind only`.
169+
Calls to `grind only` can be conveniently constructed using {tactic}`grind?`, which automatically records the theorems used by {tactic}`grind` and suggests a suitable `grind only` or {ref "grind-interactive"}[script].
166170

167171
These theorems will typically include a symbol prefix such as `=`, `←`, or `→`, indicating the
168172
pattern that triggered the instantiation. See the {ref "e-matching"}[section on E-matching] for details.
@@ -184,6 +188,8 @@ Some theorems may be labelled with a `usr` prefix, which indicates that a custom
184188

185189
{include 1 Manual.Grind.Annotation}
186190

191+
{include 1 Manual.Grind.Interactive}
192+
187193
# Reducibility
188194

189195
{tech}[Reducible] definitions in terms are eagerly unfolded by {tactic}`grind`.

0 commit comments

Comments
 (0)