Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Question

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Question


Chronological Thread 
  • From: richard Dapoigny <richard.dapoigny AT univ-smb.fr>
  • To: Coq Club <coq-club AT inria.fr>
  • Subject: [Coq-Club] Question
  • Date: Sun, 6 Sep 2020 21:14:20 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=richard.dapoigny AT univ-smb.fr; spf=Pass smtp.mailfrom=richard.dapoigny AT univ-smb.fr; spf=None smtp.helo=postmaster AT smtpout02-ext2.partage.renater.fr

Dear Coq users,

I have the following problem with the code fragment:

Record object : Type := {

ob_class : Type;

ob : ob_class}.

Class Lives : Type := {

n01 : nationalities;

h01 : house;

pr01 : lives h01 = n01

}.

Class hasColor : Type := {

h02 : house;

c01 : color;

pr03 : Color c01 = h02

}.

Hypothesis A001 : forall (x:hasColor)(y:Lives)(Xob:object), @ob_class Xob = house /\ @h02 x = @ob Xob /\ Color Red = (@h02 x) /\ lives (@h02 x) = Englishman.

I get the following error: Illegal application (Non-functional construction):
The _expression_ "ob" of type "house" cannot be applied to the term  "Xob" : "object"

The problem is that the type of @ob Xob is @ob_class Xob which is equal to house from the first assertion. The second assertion cannot take this assertion in account. So the question is: is there a way to overcome this behavior?

Thanks in advance for your answer,

Richard


--
Richard Dapoigny
Associate Professor - LISTIC Laboratory
University Savoie Mont-Blanc
5, chemin de Bellevue
Po. Box 80439
Annecy-le-Vieux 74940
FRANCE
https://www.listic.univ-smb.fr/en/presentation-en/members/lecturers/richard-dapoigny-en/

****** People who don't know history are condemned to repeat it. ******




Archive powered by MHonArc 2.6.19+.

Top of Page