To unsubscribe from this group and stop receiving emails from it, send an email to hott-cafe+unsubscribe@googlegroups.com <mailto:hott-cafe+unsubscribe@googlegroups.com>.
--
You received this message because you are subscribed to the Google Groups "HoTT Cafe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hott-cafe+unsubscribe@googlegroups.com.
However, if the eta rule for the recursor held judgmentally, then this equation would also hold judgmentally -- the function \n. proj1(rec_N(Sigma(x:N)C, c_0, sig_s, n)) satisfies the same recurrence as the identity -- and you could indeed derive induction from recursion.I learned this from Harper's HoTT lectures.
On Nov 1, 2017 2:59 PM, "Gaëtan Gilbert" <gaetan....@skyskimmer.net> wrote:
> By applying the recursion principle on Sigma(x:N)C, we getThis is not the type of the induction principle, you want Pi(x:N)C(x)
> rec_N(Sigma(x:N)C, c_0, z.sig_s, n) : Sigma(x:N)C
In other words without using the induction principle you lack a proof that proj1(rec_N(Sigma(x:N)C, c_0, sig_s, n)) = n
Gaëtan Gilbert
The recursion principle of a type T is a special case of the induction principle, when the codomain is a simple type C:U instead of a type family C: T->U. It seems to me that, conversely, the induction principle is also a special case of the recursion principle, by applying it on the dependent pair type Sigma(x:T)C:U
Let's try to verify it on N:
Suppose we have C:Pi(x:N)U that satisfies the conditions of the induction principle: c_0:C(0); and c_s:Pi(x:N)Pi(y:C(x))C(succ(x))
We can verify that the type Sigma(x:N)C, which is not a type family any more, satisfies the conditions to apply the recursion principle.
We have indeed (0,c_0):Sigma(x:N)C, and we can define sig_s:Sigma(x:N)C -> Sigma(x:N)C such that sig_s((x,C(x))) := (succ(x),C(succ(x)))
Indeed, we have sig_s(z) := ( succ(pr1(z)) , c_s(pr1(z))(pr2(z)) )
By applying the recursion principle on Sigma(x:N)C, we get rec_N(Sigma(x:N)C, c_0, z.sig_s, n) : Sigma(x:N)C
such that rec_N(Sigma(x:N)C, (0,c_0), z.sig_s, 0) := (0,c0) and rec_N(Sigma(x:N)C, (0,c_0), z.sig_s, succ(n)) := sig_s(rec_N(Sigma(x:N)C, (0,c_0), z.sig_s, n)))
The induction principle should then be the 2nd projection of recursion principle applied to Sigma(x:N)C.
It seems that the same construction can be done for all inductive types, except Pi types, including the identity types and HITs.
Is that correct ? If not, where is the fault ?
Louis.
--
You received this message because you are subscribed to the Google Groups "HoTT Cafe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hott-cafe+...@googlegroups.com <mailto:hott-cafe+...@googlegroups.com>.
--
You received this message because you are subscribed to the Google Groups "HoTT Cafe" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hott-cafe+...@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to hott-cafe+unsubscribe@googlegroups.com.