Zulip Chat Archive
Stream: Is there code for X?
Topic: Distributivity of ite
Yaël Dillies (Apr 27 2022 at 10:00):
Do we want those lemmas?
variables {α : Type*} {p q r : Prop} [decidable p] [decidable q] {a b c : α}
lemma dite_dite_distrib_left {a : p → α} {b : ¬ p → q → α} {c : ¬ p → ¬ q → α} :
dite p a (λ hp, dite q (b hp) (c hp)) =
dite q (λ hq, dite p a $ λ hp, b hp hq) (λ hq, dite p a $ λ hp, c hp hq) :=
by split_ifs; refl
lemma dite_dite_distrib_right {a : p → q → α} {b : p → ¬ q → α} {c : ¬ p → α} :
dite p (λ hp, dite q (a hp) (b hp)) c =
dite q (λ hq, dite p (λ hp, a hp hq) c) (λ hq, dite p (λ hp, b hp hq) c) :=
by split_ifs; refl
lemma ite_ite_distrib_left : ite p a (ite q b c) = ite q (ite p a b) (ite p a c) :=
dite_dite_distrib_left
lemma ite_ite_distrib_right : ite p (ite q a b) c = ite q (ite p a c) (ite p b c) :=
dite_dite_distrib_right
They seem to be special cases of docs#dite_apply and docs#ite_apply
Last updated: Dec 20 2023 at 11:08 UTC