Giter VIP home page Giter VIP logo

Comments (14)

sstucki avatar sstucki commented on August 16, 2024 1

Sorry to show up late to the party, but could we add some comments in Categories.Category.Core to explain why sym-assoc is included? Newcomers to the library might be confused by the presence of this field.

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024 1

93f7450

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024 1

Hello, I'm that confused newcomer! Why is it important foe the opposite category of the opposite category to be definitionally equal to the original category?

in short, definitional equality is a blessing.

technically, it's more intuitive. think about a category C and its opposite. we usually think there are only two "sides" of a category. however, if op of op is just equivalent to C, then it means one can generate infinite number of categories by stacking ops. nonetheless, half of them is really the same as one and the other half is the same as another. so why would we prefer moving between op of op and C via a functor, the existence of which is purely caused by technical reasons? making things definitional is just cleaner. after all, you will have to show all limits, for example, is preserved by op of op etc, and that's just unnecessary burden to deal with.

from agda-categories.

sstucki avatar sstucki commented on August 16, 2024 1

@HuStmpHrrr do you maybe have a concrete example from the library where it simplifies things?

I can come up with some example where it might, but I haven't actually encountered one in practice (in the library) yet.

from agda-categories.

JacquesCarette avatar JacquesCarette commented on August 16, 2024

You mean as an additional field? If we can edide it 99% of the time, then that's worth considering. Maybe make it implicit?

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

yeah an additional field. just flip the direction of assoc. this way, op would just need to swap assoc and assoc-sym, and that makes op of op definitionally equal to the original category. this helps the cases where opposite category is used.

from agda-categories.

JacquesCarette avatar JacquesCarette commented on August 16, 2024

It is definitely worth a try - if it works, that would be a nice thing to have. But I think I'll let you conduct that experiment...

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

OK so it looks good. for some reason Category needs to have eta-equality explicitly turned on. I thought this option is one by default.

from agda-categories.

JacquesCarette avatar JacquesCarette commented on August 16, 2024

Definitely something to document in the design decisions.
And yes, I thought eta-equality was on by default too - a bug?

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

not sure, I will figure out a minimal reproducible case and ask if that's expected.

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

c.f. agda/agda#4142

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

sure that's not a problem. in fact, many libraries in Coq have this setup too.

from agda-categories.

nachivpn avatar nachivpn commented on August 16, 2024

Hello, I'm that confused newcomer! Why is it important foe the opposite category of the opposite category to be definitionally equal to the original category?

from agda-categories.

HuStmpHrrr avatar HuStmpHrrr commented on August 16, 2024

here is one usage of that: b2cd7aa#diff-6218f7f546559e9086b91e1f79ed1fc5L63

from agda-categories.

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.