Syntax and semantics of inductive types