Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Type checking in the Vector library

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Type checking in the Vector library


Chronological Thread 
  • From: Meven LENNON-BERTRAND <Meven.Bertrand AT univ-nantes.fr>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Type checking in the Vector library
  • Date: Fri, 11 Mar 2022 11:22:00 +0100
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=Meven.Bertrand AT univ-nantes.fr; spf=Pass smtp.mailfrom=Meven.Bertrand AT univ-nantes.fr; spf=None smtp.helo=postmaster AT smtp-tls.univ-nantes.fr
  • Ironport-data: A9a23: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 u8Oi286AtGOEbhRorY=
  • Ironport-hdrordr: A9a23:x3gmqayUnF6RteKcCFkSKrPwGb1zdoMgy1knxilNoG9uA6ulfq eV7YkmPH7P+UwssRQb87690ca7IU80maQFmbX5eI3SJzUO21HYT72Kj7GC/9SIIUSXnYIz6U 4jSdkGNDSXNykesS+Q2njdLz9P+qjgzEnlv5a9856zd2xXV50=
  • Ironport-phdr: A9a23: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 BAs2FMWXA==
  • Ironport-sdr: tRibrjP9kAfDf7Ha7Yg1Elu/4X42YN+ImnJRdrehkEeAcHoKU8P5fH2eeK/QZS/Z20LTbYo9RQ TODgAihkIgN0qVV67a/OqLTKxkQhU1VM/V4Ikmi4bAUsGhgRu7817zCY1rXfylwcoYWPGE2T7X htcUq45GfD4sVIFcXy2jxXUS9uB9T5oRuG4fqlaw8xvO2U+4giw0Cm11ccGqgHOBzfSF15wroD UmWXoCEvaKNPNP0LOqDPXE1LdWuqohTnQqSVeH2kIRVB+YTmx75ygHghkRwDgBn31pimMLSkx3 tzutwx2pF7p80RoDwFYRk4Wt

Dear Sylvain,

Indeed, your assumption is correct: if you look at the definition to which case0 is elaborated by using Print case0, you can see that Coq was able to infer a return predicate that allows you to put any (typable) term in the second branch.
As to your second question, I have no clue as to why the standard library chose that one precise term.

Best,

Meven LENNON-BERTRAND
Doctorant, Équipe Gallinette – LS2N – Université de Nantes
www.meven.ac

Le 11/03/2022 à 08:59, Sylvain Salvati a écrit :
Dear Coq-Club,

Can anyone explain why the following term defined in the standard
library (c.f. Coq.Vectors.VectorDef) does type-check:

Definition case0 {A} (P:Vector.t A 0 -> Type) (H:P (Vector.nil A)) v:P v :=
match v with
|[] => H
|_ => fun devil => False_ind (@IDProp) devil
end.

I moreover checked that the following term also type-check:

Definition my_case0 {A} (P:Vector.t A 0 -> Type) (H:P (Vector.nil A)) v:P v :=
match v with
|[] => H
end.

So it seems to me that in the first term coq is able to see that the
second branch of the match cannot be executed and thus one can put any
phony term. Is it correct? If so why does the standard library use the
first term instead of the second one?

I checked the mailing list and found that a similar question has been
asked 7 years ago but did not receive any answer.

Thanks for your help,

S.




Archive powered by MHonArc 2.6.19+.

Top of Page