Skip to Content.
Sympa Menu

coq-club - [Coq-Club] How to use a Coercion defined in a Module?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] How to use a Coercion defined in a Module?


Chronological Thread 
  • From: Chris Dams <chris.dams.nl AT gmail.com>
  • To: coq-club <coq-club AT inria.fr>
  • Subject: [Coq-Club] How to use a Coercion defined in a Module?
  • Date: Sat, 15 Jul 2023 07:50:03 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=chris.dams.nl AT gmail.com; spf=Pass smtp.mailfrom=chris.dams.nl AT gmail.com; spf=None smtp.helo=postmaster AT mail-vs1-f50.google.com
  • Ironport-data: A9a23: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 YT5qa2ojq12pY4d3PuMo0JoJSw=
  • Ironport-hdrordr: A9a23:pljhX6/lBcLyjvfvb9Fuk+DVI+orL9Y04lQ7vn2ZKCYlFfBw8v rFoB11726WtN98YhEdcLO7WZVoI0msl6KdiLN5VdyftWLdyQ6Vxe9ZnO/fKv7bdxEWNNQx6U 6tScdD4RTLY2RHsQ==
  • Ironport-phdr: A9a23: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 4qX/J8=
  • Ironport-sdr: 64b23398_oFlCCK1Z979DNmIg8J/bDscUK9jOc92oPCbqJwuCRbyg2RQ yAyvTrgZjtRrmmzl9psdTG7LjEZbwqlx+E71G+Q==

Dear All,

I am trying to define a Coercion inside a Module. When trying to use
this Coercion outside the Module, it seems to be running into trouble.
See example below. Is it possible to define a Coercion inside a module
that accepts something from the Module Type and use it outside the
Module?

Kind Regards,
Chris


Module Type ModType.
Axiom S: Set.
Axiom T: Set.
End ModType.

Module Mod (M: ModType).
Export M.
Axiom f: S -> T.
Coercion f: S >-> T.
End Mod.

Module ModTypeImpl <: ModType.
Definition S: Set := nat.
Definition T: Set := bool.
End ModTypeImpl.

Module ModImpl := Mod ModTypeImpl.
Import ModImpl.

(* Error: The term "1" has type "nat" while it is expected to have
type "bool". *)
(* Check negb 1. *)

Definition ff: nat -> bool := f.
Coercion ff: nat >-> bool.

(* No error: apparently it was made to work with the coercion ff,
which is defined
to be f. But f was also made a coercion above in Mod. *)
Check negb 1.



Archive powered by MHonArc 2.6.19+.

Top of Page