Module AllClass.
Definition t := any_class.
Definition eqb (ac1 ac2: any_class) :=
match ac1, ac2 with
| TC tc1, TC tc2 => CTypeClass.eqb tc1 tc2
| CC cc1, CC cc2 => ConnectiveClass.eqb cc1 cc2
| JC jc1, JC jc2 => JudgementClass.eqb jc1 jc2
| RC rc1, RC rc2 => RuleClass.eqb rc1 rc2
| _, _ => false
end.

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