Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] General reflection-based rewriting

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] General reflection-based rewriting


Chronological Thread 
  • From: Stefan Ciobaca <stefan.ciobaca AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] General reflection-based rewriting
  • Date: Sat, 8 Oct 2016 17:45:00 +0300
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=stefan.ciobaca AT gmail.com; spf=Pass smtp.mailfrom=stefan.ciobaca AT gmail.com; spf=None smtp.helo=postmaster AT mail-io0-f174.google.com
  • Ironport-phdr: 9a23:iEpWaxcsKgPCQhe+4Ums7ckmlGMj4u6mDksu8pMizoh2WeGdxc29Yx7h7PlgxGXEQZ/co6odzbGH6ea7BCdfv97B6ClEK8McEUddyI0/pE8JPo2sMQXDNvnkbig3ToxpdWRO2DWFC3VTA9v0fFbIo3e/vnY4ExT7MhdpdKyuQtaBx5f/6+fn8JrKJg5MmTCVYLVoLRzwox+CmNMRhN5ZNqs/wx2BiXpPce1dzCs8Pk6ekR/6oMyx+5Rq+C14tPco9soGWqL/KfdrBYdEBSgrZjhmrPbgsgPOGFOC

Nice! I would be very much interested in such a system.

I am aware of the following PhD thesis http://homepage.cs.uri.edu/faculty/hamel/pubs/theses/phd-thesis-kaplan.pdf in which (part) of rewriting logic is formalized in Coq. I'm not sure to what degree you can reuse this, but it might be a good starting point.

Best,
Stefan

On Sat, Oct 8, 2016 at 4:56 PM, Jannis Limperg <jannis AT limperg.de> wrote:
Dear Coq-Club,

I'm currently prototyping a library for general reflection-based
rewriting. The goal is to allow users to relatively easily specify
rewriting systems for arbitrary theories and use them to
normalise/simplify terms. To that end, I currently plan to proceed as
follows:


- Define a generic representation of terms, probably similar to that of
the CoLoR library.
- Have users provide a signature describing which interpreted symbols
their terms contain, and an interpretation function from the
representation to actual terms.
- Define a generic reflection tactic that, given a signature, reflects
the user's terms into the representation. (Not sure how much the user
has to help here.)
- Define transformations of representation terms for common properties
(associativity, symmetry, etc. pp.) and prove them correct (given a
proof that the user's terms actually have those properties). Allow users
to define transformations specific to their theories.
- Tie different transformations together with a fixpoint construction. [1]


One may view this as a generalisation of the ring/field tactics (though
I don't plan to reimplement those, at least not initially). Compared to
autorewrite, my scheme has the advantage of being able to exploit orders
on representation terms, which comes in handy when normalising symmetric
operations.

Now finally the question: Are you aware of any similar systems (in Coq
or elsewhere), or do you have any general advice/gotchas that I should
be aware of? I'd like to make as sure as possible that such a library
has at least a chance of being useful before spending a lot of time on it.

Thanks,
Jannis


[1] I plan to have the user be responsible for the termination of their
rewriting system. Everything else imho just leads to massive complexity.




Archive powered by MHonArc 2.6.18.

Top of Page