simplification rules for iff #1, ?M_1 ↔ false ↦ ¬?M_1 #1, ?M_1 ↔ true ↦ ?M_1 #0, false ↔ true ↦ false #0, true ↔ false ↦ false #1, ?M_1 ↔ ¬?M_1 ↦ false #1, ?M_1 ↔ ?M_1 ↦ true #1, false ↔ ?M_1 ↦ ¬?M_1 #1, true ↔ ?M_1 ↦ ?M_1 #3 perm, ?M_1 ∧ ?M_2 ∧ ?M_3 ↦ ?M_2 ∧ ?M_1 ∧ ?M_3 #1, ?M_1 ∧ ?M_1 ↦ ?M_1 #1, false ∧ ?M_1 ↦ false #1, ?M_1 ∧ false ↦ false #1, true ∧ ?M_1 ↦ ?M_1 #1, ?M_1 ∧ true ↦ ?M_1 #3, (?M_1 ∧ ?M_2) ∧ ?M_3 ↦ ?M_1 ∧ ?M_2 ∧ ?M_3 #2 perm, ?M_1 ∧ ?M_2 ↦ ?M_2 ∧ ?M_1 #2, ?M_2 == ?M_2 ↦ true #3 perm, ?M_1 ∨ ?M_2 ∨ ?M_3 ↦ ?M_2 ∨ ?M_1 ∨ ?M_3 #1, false ∨ ?M_1 ↦ ?M_1 #1, ?M_1 ∨ false ↦ ?M_1 #1, true ∨ ?M_1 ↦ true #1, ?M_1 ∨ true ↦ true #3, (?M_1 ∨ ?M_2) ∨ ?M_3 ↦ ?M_1 ∨ ?M_2 ∨ ?M_3 #2 perm, ?M_1 ∨ ?M_2 ↦ ?M_2 ∨ ?M_1 #2, ?M_2 = ?M_2 ↦ true #0, ¬false ↦ true #0, ¬true ↦ false simplification rules for eq #2 perm, nat.add ?M_1 ?M_2 ↦ nat.add ?M_2 ?M_1 #3, ite false ?M_2 ?M_3 ↦ ?M_3 #3, ite true ?M_2 ?M_3 ↦ ?M_2 #4, ite ?M_1 ?M_4 ?M_4 ↦ ?M_4