fix: missing grind normalization rule (#7724)

This PR adds `dite_eq_ite` normalization rule to `grind`. This rule is
important to adjust mismatches between a definition and its function
induction principle.
This commit is contained in:
Leonardo de Moura 2025-03-29 14:21:35 -07:00 committed by GitHub
parent 101f3f2c0f
commit c7f8df2dc0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 0 deletions

View file

@ -106,6 +106,7 @@ init_grind_norm
or_true true_or or_false false_or or_assoc
-- ite
ite_true ite_false ite_true_false ite_false_true
dite_eq_ite
-- Forall
forall_and
-- Exists

View file

@ -393,3 +393,6 @@ example [Decidable p] : a = true → p → decide p = a := by
example [Decidable p] : false = a → ¬p → decide p = a := by
grind
example (a : Nat) (p q r : Prop) (h₁ : if _ : a < 1 then p else q) (h₂ : r) : (if a < 1 then p else q) ↔ r := by
grind (splits := 0)