Documentation

Init.Grind.Norm

Normalization theorems for the grind tactic.

We are also going to use simproc's in the future.

theorem Lean.Grind.iff_eq (p q : Prop) :
(p q) = (p = q)
theorem Lean.Grind.eq_true_eq (p : Prop) :
(p = True) = p
theorem Lean.Grind.not_eq_prop (p q : Prop) :
(¬p = q) = (p = ¬q)
theorem Lean.Grind.imp_eq (p q : Prop) :
(pq) = (¬p q)
theorem Lean.Grind.not_and (p q : Prop) :
(¬(p q)) = (¬p ¬q)
theorem Lean.Grind.not_ite {p : Prop} {x✝ : Decidable p} (q r : Prop) :
(¬if p then q else r) = if p then ¬q else ¬r
theorem Lean.Grind.not_forall {α : Sort u_1} (p : αProp) :
(¬∀ (x : α), p x) = ∃ (x : α), ¬p x
theorem Lean.Grind.not_exists {α : Sort u_1} (p : αProp) :
(¬∃ (x : α), p x) = ∀ (x : α), ¬p x
theorem Lean.Grind.cond_eq_ite {α : Type u_1} (c : Bool) (a b : α) :
(bif c then a else b) = if c = true then a else b
theorem Lean.Grind.Nat.lt_eq (a b : Nat) :
(a < b) = (a + 1 b)
theorem Lean.Grind.Int.lt_eq (a b : Int) :
(a < b) = (a + 1 b)