Th_data.Amodule S : sig ... endmodule Cstor : sig ... endval as_datatype : S.T.Ty.t -> (Cstor.t Iter.t, S.T.Ty.t) Sidekick_th_data.data_ty_viewval view_as_data : S.T.Term.t -> (Cstor.t, S.T.Term.t) Sidekick_th_data.data_viewval mk_cstor : S.T.Term.store -> Cstor.t -> S.T.Term.t Sidekick_util.IArray.t -> S.T.Term.tval mk_is_a : S.T.Term.store -> Cstor.t -> S.T.Term.t -> S.T.Term.tval mk_sel : S.T.Term.store -> Cstor.t -> int -> S.T.Term.t -> S.T.Term.tval mk_eq : S.T.Term.store -> S.T.Term.t -> S.T.Term.t -> S.T.Term.tval ty_is_finite : S.T.Ty.t -> boolval ty_set_is_finite : S.T.Ty.t -> bool -> unitval lemma_isa_cstor : cstor_t:S.T.Term.t -> S.T.Term.t -> S.P.t -> S.P.proof_stepval lemma_select_cstor : cstor_t:S.T.Term.t -> S.T.Term.t -> S.P.t -> S.P.proof_stepval lemma_isa_split : S.T.Term.t -> S.Lit.t Iter.t -> S.P.t -> S.P.proof_stepval lemma_isa_sel : S.T.Term.t -> S.P.t -> S.P.proof_stepval lemma_isa_disj : S.Lit.t -> S.Lit.t -> S.P.t -> S.P.proof_stepval lemma_cstor_inj : S.T.Term.t -> S.T.Term.t -> int -> S.P.t -> S.P.proof_stepval lemma_cstor_distinct : S.T.Term.t -> S.T.Term.t -> S.P.t -> S.P.proof_stepval lemma_acyclicity : (S.T.Term.t * S.T.Term.t) Iter.t -> S.P.t -> S.P.proof_step