Git Product home page Git Product logo

Comments (5)

AndrasKovacs avatar AndrasKovacs commented on May 26, 2024 2

Yes.

from pikelet.

AndrasKovacs avatar AndrasKovacs commented on May 26, 2024 1

I've read the report and Conor's post more carefully. In my previous comments I thought that my lifting is the same, but it's not. My implementation was about elaborating cumulative surface syntax to non-cumulative core. The other kind of lifting is an alternative to universe polymorphism. The two operations are very different, and they actually seem to be orthogonal. In principle, one could use my lifting (which is roughly the same as the lifting in Jon's paper) to emulate cumulativity, and the other lifting to emulate (some part of) universe polymorphism. The complications in Rouhling's report seem clearly necessary to me, and I also get now how lifting closed definitions is simpler.

Currently I'm more in favor of just biting the bullet and going full Coq: core syntax with implicit cumulative subtyping + universe polymorphism + constraint solving. It's not simple, but:

  • Non-cumulativity as in Agda is annoying, and elaborating cumulativity to lifts (as in my demo) adds significant cost and noise.
  • As soon as we want cumulativity (whether "emulated" or not) together with general-purpose unification, we need constraint solving for level ordering anyway! If I can write a hole in the program, in inference mode I need a level meta for the type of the hole. But note that level solving does not have to be very sophisticated to be useful.

So I think Conor-style lifting is probably a good design point if we don't have unification; otherwise it makes sense to extend existing machinery to deal with universe polymorphism.

from pikelet.

brendanzab avatar brendanzab commented on May 26, 2024

One potential downside of univ-lifts is that it seems to duplicate the evaluator to improve the elaboration output. See delift. Still trying to get my head around it, but perhaps the Internship Report's approach gets around this somehow? 🤔

from pikelet.

brendanzab avatar brendanzab commented on May 26, 2024

Thanks for the clarification! Sorry if I was confused too!

from pikelet.

brendanzab avatar brendanzab commented on May 26, 2024

Jon's paper

Oh I think I actually missed this one, which is also why I've been confused. Was that "Algebraic Type Theory and Universe Hierarchies"?

from pikelet.

Related Issues (20)

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.