Documentation
Init
.
Grind
.
Norm
Search
return to top
source
Imports
Init.ByCases
Init.Classical
Init.PropLemmas
Init.SimpLemmas
Imported by
Lean
.
Grind
.
iff_eq
Lean
.
Grind
.
eq_true_eq
Lean
.
Grind
.
eq_false_eq
Lean
.
Grind
.
not_eq_prop
Lean
.
Grind
.
imp_eq
Lean
.
Grind
.
true_imp_eq
Lean
.
Grind
.
false_imp_eq
Lean
.
Grind
.
imp_true_eq
Lean
.
Grind
.
imp_false_eq
Lean
.
Grind
.
imp_self_eq
Lean
.
Grind
.
not_and
Lean
.
Grind
.
not_ite
Lean
.
Grind
.
ite_true_false
Lean
.
Grind
.
ite_false_true
Lean
.
Grind
.
not_forall
Lean
.
Grind
.
not_exists
Lean
.
Grind
.
cond_eq_ite
Lean
.
Grind
.
Nat
.
lt_eq
Lean
.
Grind
.
Int
.
lt_eq
Lean
.
Grind
.
ge_eq
Lean
.
Grind
.
gt_eq
Lean
.
Grind
.
beq_eq_decide_eq
Lean
.
Grind
.
bne_eq_decide_not_eq
Normalization theorems for the
grind
tactic.
source
theorem
Lean
.
Grind
.
iff_eq
(p q :
Prop
)
:
(
p
↔
q
)
=
(
p
=
q
)
source
theorem
Lean
.
Grind
.
eq_true_eq
(p :
Prop
)
:
(
p
=
True
)
=
p
source
theorem
Lean
.
Grind
.
eq_false_eq
(p :
Prop
)
:
(
p
=
False
)
=
¬
p
source
theorem
Lean
.
Grind
.
not_eq_prop
(p q :
Prop
)
:
(
¬
p
=
q
)
=
(
p
=
¬
q
)
source
theorem
Lean
.
Grind
.
imp_eq
(p q :
Prop
)
:
(
p
→
q
)
=
(
¬
p
∨
q
)
source
theorem
Lean
.
Grind
.
true_imp_eq
(p :
Prop
)
:
(
True
→
p
)
=
p
source
theorem
Lean
.
Grind
.
false_imp_eq
(p :
Prop
)
:
(
False
→
p
)
=
True
source
theorem
Lean
.
Grind
.
imp_true_eq
(p :
Prop
)
:
(
p
→
True
)
=
True
source
theorem
Lean
.
Grind
.
imp_false_eq
(p :
Prop
)
:
(
p
→
False
)
=
¬
p
source
theorem
Lean
.
Grind
.
imp_self_eq
(p :
Prop
)
:
(
p
→
p
)
=
True
source
theorem
Lean
.
Grind
.
not_and
(p q :
Prop
)
:
(
¬
(
p
∧
q
))
=
(
¬
p
∨
¬
q
)
source
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
source
theorem
Lean
.
Grind
.
ite_true_false
{p :
Prop
}
{x✝ :
Decidable
p
}
:
(
if
p
then
True
else
False
)
=
p
source
theorem
Lean
.
Grind
.
ite_false_true
{p :
Prop
}
{x✝ :
Decidable
p
}
:
(
if
p
then
False
else
True
)
=
¬
p
source
theorem
Lean
.
Grind
.
not_forall
{α :
Sort
u_1}
(p :
α
→
Prop
)
:
(
¬
∀ (
x
:
α
),
p
x
)
=
∃
(
x
:
α
)
,
¬
p
x
source
theorem
Lean
.
Grind
.
not_exists
{α :
Sort
u_1}
(p :
α
→
Prop
)
:
(
¬
∃
(
x
:
α
)
,
p
x
)
=
∀ (
x
:
α
),
¬
p
x
source
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
source
theorem
Lean
.
Grind
.
Nat
.
lt_eq
(a b :
Nat
)
:
(
a
<
b
)
=
(
a
+
1
≤
b
)
source
theorem
Lean
.
Grind
.
Int
.
lt_eq
(a b :
Int
)
:
(
a
<
b
)
=
(
a
+
1
≤
b
)
source
theorem
Lean
.
Grind
.
ge_eq
{α :
Type
u_1}
[
LE
α
]
(a b :
α
)
:
(
a
≥
b
)
=
(
b
≤
a
)
source
theorem
Lean
.
Grind
.
gt_eq
{α :
Type
u_1}
[
LT
α
]
(a b :
α
)
:
(
a
>
b
)
=
(
b
<
a
)
source
theorem
Lean
.
Grind
.
beq_eq_decide_eq
{α :
Type
u_1}
{x✝ :
BEq
α
}
[
LawfulBEq
α
]
[
DecidableEq
α
]
(a b :
α
)
:
(
a
==
b
)
=
decide
(
a
=
b
)
source
theorem
Lean
.
Grind
.
bne_eq_decide_not_eq
{α :
Type
u_1}
{x✝ :
BEq
α
}
[
LawfulBEq
α
]
[
DecidableEq
α
]
(a b :
α
)
:
(
a
!=
b
)
=
decide
¬
a
=
b