# mathlib3documentation

core / init.cc_lemmas

Lemmas use by the congruence closure module

theorem iff_eq_of_eq_true_left {a b : Prop} (h : a = true) :
(a b) = b
theorem iff_eq_of_eq_true_right {a b : Prop} (h : b = true) :
(a b) = a
theorem iff_eq_true_of_eq {a b : Prop} (h : a = b) :
(a b) = true
theorem and_eq_of_eq_true_left {a b : Prop} (h : a = true) :
(a b) = b
theorem and_eq_of_eq_true_right {a b : Prop} (h : b = true) :
(a b) = a
theorem and_eq_of_eq_false_left {a b : Prop} (h : a = false) :
(a b) = false
theorem and_eq_of_eq_false_right {a b : Prop} (h : b = false) :
(a b) = false
theorem and_eq_of_eq {a b : Prop} (h : a = b) :
(a b) = a
theorem or_eq_of_eq_true_left {a b : Prop} (h : a = true) :
(a b) = true
theorem or_eq_of_eq_true_right {a b : Prop} (h : b = true) :
(a b) = true
theorem or_eq_of_eq_false_left {a b : Prop} (h : a = false) :
(a b) = b
theorem or_eq_of_eq_false_right {a b : Prop} (h : b = false) :
(a b) = a
theorem or_eq_of_eq {a b : Prop} (h : a = b) :
(a b) = a
theorem imp_eq_of_eq_true_left {a b : Prop} (h : a = true) :
(a b) = b
theorem imp_eq_of_eq_true_right {a b : Prop} (h : b = true) :
(a b) = true
theorem imp_eq_of_eq_false_left {a b : Prop} (h : a = false) :
(a b) = true
theorem imp_eq_of_eq_false_right {a b : Prop} (h : b = false) :
(a b) = ¬a
theorem not_imp_eq_of_eq_false_right {a b : Prop} (h : b = false) :
(¬a b) = a

Remark: the congruence closure module will only use this lemma if cc_config.em is tt.

theorem imp_eq_true_of_eq {a b : Prop} (h : a = b) :
(a b) = true
theorem not_eq_of_eq_true {a : Prop} (h : a = true) :
theorem not_eq_of_eq_false {a : Prop} (h : a = false) :
(¬a) = true
theorem false_of_a_eq_not_a {a : Prop} (h : a = ¬a) :
theorem if_eq_of_eq_true {c : Prop} [d : decidable c] {α : Sort u} (t e : α) (h : c = true) :
ite c t e = t
theorem if_eq_of_eq_false {c : Prop} [d : decidable c] {α : Sort u} (t e : α) (h : c = false) :
ite c t e = e
theorem if_eq_of_eq (c : Prop) [d : decidable c] {α : Sort u} {t e : α} (h : t = e) :
ite c t e = t
theorem eq_true_of_and_eq_true_left {a b : Prop} (h : (a b) = true) :
theorem eq_true_of_and_eq_true_right {a b : Prop} (h : (a b) = true) :
theorem eq_false_of_or_eq_false_left {a b : Prop} (h : (a b) = false) :
theorem eq_false_of_or_eq_false_right {a b : Prop} (h : (a b) = false) :
theorem eq_false_of_not_eq_true {a : Prop} (h : (¬a) = true) :
theorem eq_true_of_not_eq_false {a : Prop} (h : (¬a) = false) :

Remark: the congruence closure module will only use this lemma if cc_config.em is tt.

theorem ne_of_eq_of_ne {α : Sort u} {a b c : α} (h₁ : a = b) (h₂ : b c) :
a c
theorem ne_of_ne_of_eq {α : Sort u} {a b c : α} (h₁ : a b) (h₂ : b = c) :
a c