proposition: Lemma commut_case : forall (A B : Type) (f : A -> B) (c : class) (bt : A) (bT bK : skel -> A), f match c with | Trm => bt | Typ s => bT s | Knd s => bK s end = match c with | Trm => f bt | Typ _ => f (bT (typ_skel c)) | Knd _ => f (bK (cv_skel c)) end.
proof: Proof. simple destruct c; auto with coc core arith datatypes. Qed.
imports: Termes Conv Types ListType