Comments (6)
So I think I know what the source of difficulty is: the definition of 'exponential object' used assumes that some products (as necessary) exist; but we already know all products exist. The problem is that the definition doesn't use the product just given. But of course the it is CCC is with respect to that one product. [This definition is inherited from the original port]. I think that if the definition was adjusted so that the exponential object was coherent, by construction, with the given product, lots of things would be considerably simpler. And it would match the definitions in the literature too.
from agda-categories.
actually the current behavior is correct.
consider a trivial example. usually we say a product of A
and B
is A × B
. However, it doesn't have to be the canonical representation of the product. for example, B × A
is also an legitimate representation. in fact, there isn't a preference between both; they are just equally good, and there are other equally good representations. the uniqueness part of products concludes all such best representations are isomorphic and that's good enough. that the exponential part does not make assumption of concrete representation of a product is consistent with this extensional view.
from agda-categories.
The current behaviour is definitely not wrong. I agree with your reasoning.
I wonder if anyone has ever proved it in full generality though? I really have no idea of how to proceed in those 2 holes. I suspect that existing proofs are either just sketches or 'for convenience' pick one product, since they are all "the same" anyways.
from agda-categories.
I did it in 1c7e2f4
it is not too difficult. the problem is that there are slow computation parts. the idea is to make use of the UMP of the products in the construction. assuming a canonical construction is morally correct, because if we only inspect objects and morphisms extensionally consistently, there shouldn't be a problem. this is seen in many other constructions where properties like associativity etc are ignored.
from agda-categories.
Thanks. A couple of hours after I posted my comment, your remarks finally sunk in properly, and it finally occurred to me to use the UMP of products. Still, there was quite a bit of work to do to make it all come together! Very nice.
from agda-categories.
I developed @HuStmpHrrr's insight a bit further in #90.
from agda-categories.
Related Issues (20)
- Discrepancy of `unique` of `Product` and `unique` of `IsPullback` HOT 1
- Spelling mistake in Categories.Morphism.HeterogeneousIdentity HOT 1
- Suggested improvements for `IsPullback` HOT 1
- Bicategory terminology HOT 4
- Field names for RegularEpi/RegularMono are nondescriptive HOT 6
- Move Everything.agda to src. HOT 10
- Naming of fields in CartesianClosed Functor HOT 2
- Maybe the Hom version of Adjunction can be fully polymorphic? HOT 1
- Pull out adjunction between products and exponentials HOT 1
- Move Categories.Category.Diagram.Span to Categories.Diagram.Span
- Remove Categories.Category.Equivalence HOT 1
- `!-unique₂` takes implicit args in `Terminal`, whereas it takes explicit ones in `Initial` HOT 1
- ramp up stdlib version? HOT 14
- Caching on CI seems to be broken HOT 12
- NaturalNumber -> NNO? HOT 1
- Trivial solution set for Adjoint functor theorem HOT 8
- Yoneda is broken HOT 6
- Big dagger-category to-do list
- Support stdlib 2.0 HOT 4
- agda-categories should list compatibility versions on README HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agda-categories.