37 lines
1 KiB
Text
37 lines
1 KiB
Text
/-
|
||
1. A ∧ B → C ==> { A → B → C }
|
||
2. A ∨ B → C ==> { A → C, B → C }
|
||
3. A → B ∧ C ==> { A → C, A → C }
|
||
4. A ↔ B ==> { (A → B) ∧ (B → A) }
|
||
5. Push negations inside ∧ and ∨ (when using classical)
|
||
6. ite A B C ==> { A → B, ¬ A → C }
|
||
-/
|
||
|
||
open simplifier.unit_simp
|
||
set_option simplify.max_steps 100000
|
||
|
||
namespace vars
|
||
variables {A B C D E F G : Prop}
|
||
variables [A_dec : decidable A]
|
||
|
||
#simplify iff env 0 A → B ∧ C
|
||
#simplify iff env 0 A → B ∧ C ∧ D
|
||
#simplify iff env 0 A → B ∧ C → D
|
||
#simplify iff env 0 A → B ∧ C → D ∧ E
|
||
#simplify iff env 0 A → B ∧ C → D ∨ E → F ∧ G
|
||
#simplify iff env 0 A → B ∧ C → D ∨ E → ((F → G) ∧ (G → F))
|
||
|
||
end vars
|
||
|
||
namespace cs
|
||
|
||
constants {A B C D E F G : Prop}
|
||
constants [A_dec : decidable A]
|
||
|
||
attribute A_dec [instance]
|
||
|
||
#simplify iff env 0 ite A B C
|
||
#simplify iff env 0 ite A B C → B ∧ C
|
||
#simplify iff env 0 A → (ite A B C)
|
||
#simplify iff env 0 A → B ∧ (ite A B C) → D ∨ E → ((F → G) ∧ (G → F))
|
||
end cs
|