You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Cedille recursion is tied with recursion, which is not necessarily the case with Coq.
This brings us to the question of how to deal functions like f bellow.
Fixpoint f (x y : nat): nat :=
S ((fix g (a b: nat) := match a with
| O => b
| S a' => g a' b + f a' b
end) x y).
The text was updated successfully, but these errors were encountered:
The definition works like this: one must have f use pattern matching, and probably would require a local definition of g for each clause (or have this factored out). g must be given knowledge that, if its argument a is non-zero, then pred a has the type Type/f, by explicitly using the derived View family (for internalized typing derivations). That way, when you case-analyze a to get the predecessor a', you know that this has type Type/g for the first call and Type/f for the second call.
Cedille recursion is tied with recursion, which is not necessarily the case with Coq.
This brings us to the question of how to deal functions like
f
bellow.The text was updated successfully, but these errors were encountered: