Module HowType <: DecTypeSig.
Definition t := how_type.
Definition eqb (ht1 ht2: how_type) :=
match ht1, ht2 with
| primitive_type t1, primitive_type t2 => CType.eqb t1 t2
| FROM_predicate_over_states_TO_expr, FROM_predicate_over_states_TO_expr => true
| FROM_mpredicate_over_states_TO_expr, FROM_mpredicate_over_states_TO_expr => true
| FROM_ensemble_expr_TO_context, FROM_ensemble_expr_TO_context => true
| _, _ => false
end.

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