This PR fixes a few minor issues in the new `Action` framework used in `grind`. The goal is to eventually delete the old `SearchM` infrastructure. The main `solve` function used by `grind` is now based on the `Action` framework. The PR also deletes dead code in `SearchM`.
22 lines
867 B
Text
22 lines
867 B
Text
module
|
||
reset_grind_attrs%
|
||
attribute [grind] Vector.getElem_swap_of_ne
|
||
|
||
example (hi : i < n) (hj : j < i) (hk : k < j) (as : Vector α n) (p : α → Prop) (h : p as[k]) :
|
||
p (as.swap i j)[k] := by
|
||
grind -- (splits := 0) -- TODO re-enable after we update lookahead
|
||
|
||
example (hi : i < n) (hj : j < i) (hk : k < j) (as : Vector α n) (p : α → Prop) (h : p as[k]) :
|
||
p (as.swap i j)[k] := by
|
||
grind -lookahead
|
||
|
||
example (hi : i < n) (hj : j < i) (hk : k < j) (as : Vector α n) (p : α → Prop) (h : p as[k]) :
|
||
p (as.swap i j)[k] := by
|
||
fail_if_success grind (splits := 0) -lookahead -- needs lookahead or case-splits
|
||
sorry
|
||
|
||
example (p : Nat → Prop) (h : p j) (h' : ∀ i, i < j → p i) : ∀ i, i < j + 1 → p i := by
|
||
grind
|
||
|
||
example (p : Nat → Prop) (h : p j) (h' : ∀ i, i < j → p i) : ∀ i, i < j + 1 → p i := by
|
||
grind (splits := 0)
|