This PR adds infrastructure for the upcoming `grind` tactic mode, which will be similar to the `conv` mode. The goal is to extend `grind` from a terminal tactic into an interactive mode: `grind => …`. It will serve as the foundation for `ungrind`, the process of converting an expensive (and potentially fragile) `grind` proof into a robust script. This mode will include tactics for expensive reasoning steps such as cutsat model-based search, Gröbner basis computation, E-matching, case splits, and more. It will also provide robust, succinct references to facts and terms: labels, structural matches, and anchors (e.g., `#abcd`).
28 lines
903 B
Text
28 lines
903 B
Text
/-
|
|
Copyright (c) 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
module
|
|
|
|
prelude
|
|
public import Init.Grind.Norm
|
|
public import Init.Grind.Tactics
|
|
public import Init.Grind.Lemmas
|
|
public import Init.Grind.Cases
|
|
public import Init.Grind.Propagator
|
|
public import Init.Grind.Util
|
|
public import Init.Grind.Offset
|
|
public import Init.Grind.PP
|
|
public import Init.Grind.Ring
|
|
public import Init.Grind.Module
|
|
public import Init.Grind.Ordered
|
|
public import Init.Grind.Ext
|
|
public import Init.Grind.ToInt
|
|
public import Init.Grind.ToIntLemmas
|
|
public import Init.Grind.Attr
|
|
public import Init.Data.Int.OfNat -- This may not have otherwise been imported, breaking `grind` proofs.
|
|
public import Init.Grind.AC
|
|
public import Init.Grind.Injective
|
|
public import Init.Grind.Order
|
|
public import Init.Grind.Interactive
|