Skip to Content.
Sympa Menu

coq-club - [Coq-Club] Renaming first order variables

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

[Coq-Club] Renaming first order variables


Chronological Thread 
  • From: Caitlin McGregor <caitlin.mcgregor AT anu.edu.au>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: [Coq-Club] Renaming first order variables
  • Date: Tue, 15 Nov 2016 23:39:54 +0000
  • Accept-language: en-AU, en-US
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=caitlin.mcgregor AT anu.edu.au; spf=Pass smtp.mailfrom=caitlin.mcgregor AT anu.edu.au; spf=Pass smtp.helo=postmaster AT APC01-PU1-obe.outbound.protection.outlook.com
  • Ironport-phdr: 9a23:XA9ljx1KUxmLxC6nsmDT+DRfVm0co7zxezQtwd8ZsegWLvad9pjvdHbS+e9qxAeQG96KsLQd0KGP7OigATVGusnR9ihaMdRlbFwst4Y/p0QYGsmLCEn2frbBThcRO4B8bmJj5GyxKkNPGczzNBX4q3y26iMOSF2kbVImbre9JomHxc+wzqW5/4DZSwROnju0J71oZl3ipgLI88ISnIFKK6AryxKPrGEeKMpMwmY9DluSgxL94I+V97F5/itXobp1/MdBTaH7eeI9RrNCATshKUg84tCtuBXeCwKSsChPGl4KmwZFVlCWpCrxWY3853P3
  • Spamdiagnosticmetadata: NSPM
  • Spamdiagnosticoutput: 1:99

Hi there,


I'm fairly new to Coq and I have been working with a fragment of first order logic as my object logic (see below for definitions). I'd like to be able to rename my FO variables so that no two quantifiers bind the same variable. Does anyone know if this has been done before and if so where I could find the code?

Here is a snippet of my code:
(* Countably many unary predicates P *)
Inductive predicate : Type :=
  Pred (n:nat) : predicate.

(* Countably many FO variables x *)
Inductive FOvariable : Type :=
  Var (n:nat) : FOvariable.

(* Definition of first order formula *)
Inductive FOF:=
    predFO : predicate -> FOvariable -> FOF (* unary predicates P x *)
  | relatFO : FOvariable -> FOvariable -> FOF (* single binary relation R x y *)
  | eqFO : FOvariable -> FOvariable -> FOF (* equality x = y *)
  | allFO : FOvariable -> FOF -> FOF (* universal quantifier *)
  | exFO : FOvariable -> FOF -> FOF (* existential quantifier *)
  | negFO : FOF -> FOF
  | conjFO : FOF -> FOF -> FOF
  | disjFO : FOF -> FOF -> FOF
  | implFO : FOF -> FOF -> FOF.

Any help you could provide would be greatly appreciated.


Regards,
Caitlin





Archive powered by MHonArc 2.6.18.

Top of Page