Kanıt ilgisizliği genel olarak Coq'un arkasındaki teori tarafından ima edilmez. Eşitlik için kanıt ilgisizliği bile ima edilmez; Streicher'in K aksiyomuna eşdeğerdir . Her ikisi de aksiyom olarak eklenebilir .
Kanıt nesneler hakkında akıl yürütmenin faydalı olduğu gelişmeler vardır ve kanıt ilgisizliği bunu neredeyse imkansız kılar. Muhtemelen bu gelişmeler, yapısı önemli olan tüm nesnelere sahip olmalıdır Set, ancak temel Coq teorisi ile olasılık var.
Her zaman sahip olunan önemli bir kanıt ilgisizliği alt kutusu vardır. Streicher'in aksiyomu K her zaman karar verilebilir alanlara sahiptir, yani karar verilebilir kümelerde eşitlik kanıtları benzersizdir. Genel kanıt Eqdep_decCoq standart kütüphanesindeki modülde bulunur. İşte bir sonuç olarak teoreminiz (buradaki kanıtım mutlaka en zarif değil):
Require Bool.
Require Eqdep_dec.
Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2.
Proof.
intros; apply Eqdep_dec.eq_proofs_unicity; intros.
destruct (Bool.bool_dec x y); tauto.
Qed.
Bu özel durum için, burada doğrudan bir kanıt (genel kanıttan esinlenilmiştir Eqdep_dec.v). İlk olarak, kanonik bir kanıtı tanımladığımızı tanımlayın true=b(her zamanki gibi Coq'ta sabitin ilk olması daha kolaydır). Sonra herhangi bir kanıtın true=bolması gerektiğini gösteriyoruz refl_equal true.
Let nu b (p:true = b) : true = b :=
match Bool.bool_dec true b with
| left eqxy => eqxy
| right neqxy => False_ind _ (neqxy p)
end.
Lemma bool_pcanonical : forall (b : bool) (p : true = b), p = nu b p.
Proof.
intros. case p. destruct b.
unfold nu; simpl. reflexivity.
discriminate p.
Qed.
Coq'a klasik mantık eklerseniz, kanıt ilgisizliği elde edersiniz. Sezgisel olarak konuşursak, klasik mantık size önermeler için bir karar kâhin verir ve bu aksiyom K için yeterince iyidir. Coq standart kütüphane modülünde bir kanıt vardır Classical_Prop.