lean4-htt/tests/lean/grind/list_problems.lean
Kim Morrison 0f2ede45d5
chore: another failing grind test (#7848)
This PR adds another failing test case for `grind`.
2025-04-07 06:43:45 +00:00

47 lines
1.1 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

reset_grind_attrs%
attribute [grind] List.length_set
attribute [grind →] List.eq_nil_of_length_eq_zero
open List in
example {as : List α} {i : Nat} (h : i < as.length) :
as.set i as[i] = as := by
apply ext_getElem
· sorry
· -- works:
grind [getElem_set]
attribute [grind] List.getElem_set
open List in
example {as : List α} {i : Nat} (h : i < as.length) :
as.set i as[i] = as := by
apply ext_getElem
· sorry
· -- fails:
grind
---
reset_grind_attrs%
theorem getElem?_eq_some_iff {l : List α} : l[i]? = some a ↔ ∃ h : i < l.length, l[i] = a := by
induction l
· sorry
· cases i
· -- Better support for implication and dependent implication.
-- We need inequality propagation (or case-splits)
grind
· -- Similarly
grind
---
reset_grind_attrs%
attribute [grind] List.getElem_append_left List.getElem_append_right
attribute [grind] List.length_cons List.length_nil
example {l : List α} {a : α} {i : Nat} (h : i = l.length) (w) :
(l ++ [a])[i]'w = a := by
grind -- Similar to issue above.
---