यह साबित नहीं किया जा सकता है। जब हम सेट करते हैं, तो प्रमेय के निम्नलिखित विशेष मामले पर विचार करें X := bool
:
foo true = foo false -> true = false
यह देखते हुए true
और false
अलग हैं, अगर प्रमेय सिद्ध थे, तो यह दिखाना संभव होना चाहिए foo true
और foo false
अलग हैं। समस्या यह है कि ये दो प्रकार के समसामयिक हैं :
Inductive foo : bool -> Type :=
| constr : forall (x : bool), foo x.
(* An isomorphism between foo true and foo false *)
Definition foo_t_f (x : foo true) : foo false := constr false.
Definition foo_f_t (x : foo false) : foo true := constr true.
(* Proofs that the functions are inverses of each other *)
Lemma foo_t_fK x : foo_f_t (foo_t_f x) = x.
Proof. unfold foo_f_t, foo_t_f. now destruct x. Qed.
Lemma foo_f_tK x : foo_t_f (foo_f_t x) = x.
Proof. unfold foo_f_t, foo_t_f. now destruct x. Qed.
कोक के सिद्धांत में, यह दिखाना संभव नहीं है कि अतिरिक्त स्वयंसिद्ध ग्रहण किए बिना दो आइसोमोर्फिक प्रकार अलग-अलग हैं। यही कारण है कि होम्योपैथी प्रकार के सिद्धांत जैसे कोक के सिद्धांत का एक विस्तार ध्वनि है। HoTT में, आइसोमॉर्फिक प्रकारों को बराबर दिखाया जा सकता है, और यदि यह आपके प्रमेय को साबित करना संभव था, तो HoTT असंगत होगा।