Skip to Content.
Sympa Menu

coq-club - [Coq-Club] inversion of an inductive

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] inversion of an inductive


Chronological Thread 
  • From: "Pierre Lescanne (at work)" <pierre.lescanne AT ens-lyon.fr>
  • To: coq-club AT inria.fr
  • Cc: pierre.lescanne AT ens-lyon.fr
  • Subject: [Coq-Club] inversion of an inductive
  • Date: Fri, 15 Apr 2016 19:37:30 +0200
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=pierre.lescanne AT ens-lyon.fr; spf=Pass smtp.mailfrom=pierre.lescanne AT ens-lyon.fr; spf=None smtp.helo=postmaster AT labbe.ens-lyon.fr
  • Ironport-phdr: 9a23:euvMgR+1Pyuanf9uRHKM819IXTAuvvDOBiVQ1KB92uwcTK2v8tzYMVDF4r011RmSDdWdtq0P0baI+4nbGkU+or+5+EgYd5JNUxJXwe43pCcHRPC/NEvgMfTxZDY7FskRHHVs/nW8LFQHUJ2mPw6anHS+4HYoFwnlMkItf6KuSt6U0pv8jbzss7ToICx2xxOFKYtoKxu3qQiD/uI3uqBFbpgL9x3Sv3FTcP5Xz247bXianhL7+9vitMU7q3cY6Lod8JtLVry/dKAlR5RZCi4nOiY7/p7RuAHHXDeIs2MdX38Mn1xMDhPO5Rf8U7/8tDC/svt63m+UJ57YV7cxDH6a7qpxUhKgrCocPDc/9myfysVsxL1cuhHg7VQr24/ZepuYcv5zZajUe9UXbWdHRYNVRitHRI2mOdhcR9EdNPpV+tGu72AFqgGzUFGh

I have developed in Coq exercises in extensive game theory (for economics).  A first development was with coinductive.  In this development I was able to perform inversion. 

Now I generalize the approach and I describe a slightly more elaborate formalism with dependent types and I am no more able to perform inversion.  Is such an inversion possible in this framework?

Here is the script I am stuck on.

Section Games.

Variable Agent : Set.
Variable Choice : Agent -> Set.
Variable Utility: Set.

(* Strategy profiles *)
CoInductive StratProf  : Set :=
| sLeaf : (Agent -> Utility) -> StratProf
| sNode : forall (a:Agent), Choice a -> (Choice a -> StratProf) -> StratProf.
  Notation "<< f >>" := (sLeaf f).
  Notation "<< a , c , next >>" := (sNode a c next).

(* Utility assignment as a relation*)
Inductive Uassign : StratProf -> Agent -> Utility -> Prop :=
| UassignLeaf: forall a f, Uassign (<<f>>) a (f a)
| UassignNode: forall  (a a':Agent)(c:Choice a') (u:Utility) (next:Choice a' -> StratProf),
    Uassign (next c) a u  -> Uassign (<<a',c,next>>) a u.

Lemma UassignNode_inv: forall  (a a':Agent) (u:Utility)
                           (next:Choice a' -> StratProf)
                           (c:Choice a'),
                     Uassign (<<a',c,next>>) a u -> Uassign (next c) a u.

 
-- 

Thank you in advance

---------------------------
Pierre Lescanne (Emeritus Professor)
LIP / École normale supérieure de Lyon
46 allée d'Italie
69364 LYON Cedex 07, France
tél: +33 6 85 70 94 31
http://perso.ens-lyon.fr/pierre.lescanne/
---------------------------



Archive powered by MHonArc 2.6.18.

Top of Page