Module RuleClass.
Definition t := rule_class.
Definition eqb (rc1 rc2: rule_class) :=
match rc1, rc2 with
| provability_OF_impp, provability_OF_impp => true
| provability_OF_propositional_connectives, provability_OF_propositional_connectives => true
| provability_OF_de_morgan, provability_OF_de_morgan => true
| provability_OF_godel_dummett, provability_OF_godel_dummett => true
| provability_OF_classical_logic, provability_OF_classical_logic => true
| provability_OF_sepcon_rule, provability_OF_sepcon_rule => true
| provability_OF_wand_rule, provability_OF_wand_rule => true
| provability_OF_emp_rule, provability_OF_emp_rule => true
| provability_OF_sepcon_orp_rule, provability_OF_sepcon_orp_rule => true
| provability_OF_sepcon_falsep_rule, provability_OF_sepcon_falsep_rule => true
| provability_OF_sepcon_rule_AS_weak, provability_OF_sepcon_rule_AS_weak => true
| provability_OF_sepcon_rule_AS_weak_iffp, provability_OF_sepcon_rule_AS_weak_iffp => true
| provability_OF_sepcon_rule_AS_mono, provability_OF_sepcon_rule_AS_mono => true
| provability_OF_emp_rule_AS_iffp, provability_OF_emp_rule_AS_iffp => true
| provability_OF_garbage_collected_sl, provability_OF_garbage_collected_sl => true
| derivitive_OF_basic_setting, derivitive_OF_basic_setting => true
| derivitive_OF_finite_derivation, derivitive_OF_finite_derivation => true
| derivitive_OF_impp, derivitive_OF_impp => true
| derivitive_OF_propositional_connectives, derivitive_OF_propositional_connectives => true
| derivitive_OF_de_morgan, derivitive_OF_de_morgan => true
| derivitive_OF_godel_dummett, derivitive_OF_godel_dummett => true
| derivitive_OF_classical_logic, derivitive_OF_classical_logic => true
| GEN_iter_sepcon_FROM_sepcon, GEN_iter_sepcon_FROM_sepcon => true
| GEN_derivable_FROM_provable, GEN_derivable_FROM_provable => true
| GEN_provable_FROM_derivable, GEN_provable_FROM_derivable => true
| _, _ => false
end.

Lemma eqb_spec: forall x y, Bool.reflect (x = y) (eqb x y).