Code Monkey home page Code Monkey logo

Comments (5)

samuelgruetter avatar samuelgruetter commented on July 24, 2024

You're right, these proofs should definitely be improved. One way would be to make the tactic t better/more general, but probably it would be better to define MinimalMMIO in terms of Minimal, and MetrictMinimalMMIO in terms of MinimalMMIO, and then each additional layer would only have to prove what it adds instead of the whole thing. I tried to do that about 2 times already and gave up each time because I ran out of the time I had allocated for that, and after all, it works as it is, and the ugliness is hidden behind a reasonable interface (riscv.Spec.Primitives).

But if you find a way to improve this, that'd be more than welcome!

from riscv-coq.

samuelgruetter avatar samuelgruetter commented on July 24, 2024

While adding a parametrizable ext_spec to the instances, I also made some improvements regarding this issue:

  • In 1175fb1, I changed the instance proof of MinimalMMIO to do less unfolding and use more helper lemmas instead.
  • In 674cff5, I reused instance proofs from MinimalMMIO for the instance proof of MetricMinimalMMIO.

from riscv-coq.

Columbus240 avatar Columbus240 commented on July 24, 2024

Thanks. MetricMinimalMMIO still takes about 45s to compile for me, but I think it’s faster now (didn’t measure it earlier).

from riscv-coq.

samuelgruetter avatar samuelgruetter commented on July 24, 2024

On Coq's CI, which runs with timing enabled, it went down from 829 seconds to 71 seconds. Feel free to suggest a PR which improves it further 😉

from riscv-coq.

Columbus240 avatar Columbus240 commented on July 24, 2024

Just wow!
I had a look at it using the profiler and didn’t find a (simple) opportunity to optimize it further.

from riscv-coq.

Related Issues (11)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.