Because of indices (which nest), every concrete 64 bit word has 2080 S constructors, even though it has only 64 WS constructors. Should we opt for a less intrinisically dependently typed variant like Word s := {n:N | log n< s}?
Fixpoint sumFirstN (n : nat) : nat :=
match n with
| O => O
| S n => (S n) + (sumFirstN n)
end.
Eval compute in (sumFirstN 64)
Because of indices (which nest), every concrete 64 bit word has
2080Sconstructors, even though it has only 64WSconstructors. Should we opt for a less intrinisically dependently typed variant likeWord s := {n:N | log n< s}?