Intensional type theory