(** ** Soundness *)
Definition cast {domain} (eta eta' : nat -> domain) (I : interp eta) : interp eta'.
destruct I; econstructor; eauto.
Defined.

Lemma subst_sat b (phi : form b) dom eta (I : interp dom eta) rho x t :
vars_t t = [] -> sat I rho (subst x t phi) <-> sat I (rho [[x:=eval rho t]]) phi.