# Is CoC inconsistent with cnat_ind axiom?

It is not possible to derive induction for Church-encoded datatypes on the Calculus of Constructions (source). Moreover, according to the accepted answer to another question, it is also not possible to derive induction for Church-encoded datatypes on CoIC, despite the presence of inductive datatypes. As such, I wonder if we assume induction for Church-encoded Nat, cnat_ind; that is:

cnat_ind :
(n : CNat) ->
(P : CNat -> Type) ->
(S : ∀ (n : CNat) -> P n -> P (csucc n)) ->
(Z : P czero) ->
P n


where CNat, csucc and czero are the usual Church-encoded Nat type and constructors, would that allow us to inhabit the empty type ∀ (P : *) -> P?

• Probably worth noting that cnat_ind is inhabited in the "simple" proof-irrelevant model (where cnat only has one inhabitant. This gives a simple proof of consistency, but is a little usatisfying, since we also would like this to hold in the presence of czero =/= (csucc czero) (or some large elimination axiom). – cody Feb 3 '19 at 19:25

One way to show that it is consistent to add cnat_ind is to internalize parametricity, i.e., we extend the type system with enough structure so that it can prove its own parametricity, from which it then follows that the Church encoding of natural numbers does indeed give natural numbers. See for instance the PhD dissertation Internalizing Parametricity by Guilhem Moulin.