introduced dependent type Nat