A Dependently Typed Programming Language With Dynamic Equality