1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Require Import List. Program Fixpoint f (a : nat) : { x : nat | x > 0 } := match a with | 0 => 1 | S a' => g a a' end with g (a b : nat) { struct b } : { x : nat | x > 0 } := match b with | 0 => 1 | S b' => f b' end. Check f. Check g.