agda-stdlib icon indicating copy to clipboard operation
agda-stdlib copied to clipboard

Pointwise `Algebra`

Open jamesmckinna opened this issue 1 year ago • 9 comments

NB:

  • missing structures/bundles (I got bored)
  • isEquivalence might already be defined somewhere else, but defined in-place here for the time being

jamesmckinna avatar May 05 '24 09:05 jamesmckinna

Great feedback, thanks!

Regarding naming, I agree that perhaps Pointwise is suboptimal, apart from 'ordinary' mathematical language having 'pointwise lifting' as an informal-but-always-disambiguable term-of-art...? Besides which, we had previously discussed 'pointwise' constructions under #2351 ...

I had even considered calling this Algebra.Construct.Power{Object}, but thought that the categorical notion might cast more heat than light... but definitely would change if you thought it fitted better?

As for proofs, one thing where I was too lazy was in formulating suitable lifting properties for the concepts in Algebra.Definitions, which would make it easier to reuse in the sequel (and fill in the missing structures/bundles...). Your suggestions might also further streamline those!

jamesmckinna avatar May 05 '24 13:05 jamesmckinna

PowerObject is worse (i.e. even fewer people will find this.) Somehow (from #2351 ) Copower seems less bad.

Current favourite remains PointwiseLift, though it remains a 'placeholder' in my mind for something even better.

JacquesCarette avatar May 05 '24 15:05 JacquesCarette

I think this construction is worthwhile to add to the library in some form. Further review to follow at some point.

Taneb avatar May 06 '24 06:05 Taneb

What was the reasoning for the algebraic structures you're defining? Are you planning to define more?

Taneb avatar May 06 '24 06:05 Taneb

What was the reasoning for the algebraic structures you're defining? Are you planning to define more?

Two things:

  • specifically, I need the pointwise lifting of a monoid in order to define WreathProduct #2351
  • generally, pointwise lifting seems ubiquitous in algebra (esp. of spaces of functions), and we didn't have it, so in the end, yes, I guess we want them 'all' (although not all are 'naturally occurring'... at least, not yet, as @JacquesCarette often points out; but the way our hierarchy is built up, so too should be the corresponding lifted versions...)

jamesmckinna avatar May 06 '24 06:05 jamesmckinna

PowerObject is worse (i.e. even fewer people will find this.) Somehow (from #2351 ) Copower seems less bad.

But Copower is Σ while Power is Π, surely?

Current favourite remains PointwiseLift, though it remains a 'placeholder' in my mind for something even better.

Sticking with Pointwise for now, but have 'improved' the CHANGELOG description for the time being...

jamesmckinna avatar May 06 '24 11:05 jamesmckinna

About Copower: yes, of course. D'oh.

JacquesCarette avatar May 06 '24 11:05 JacquesCarette

Final commit: liftRel now follows Function.Relation.Binary.Setoid.Equality in being implicitly quantified, but ahead of possible merge of #2382 it doesn't make sense (to me at least) to try to import that module directly for reuse...? Not least because it would incur an indirection via Func which I'd rather avoid...

jamesmckinna avatar May 06 '24 13:05 jamesmckinna

You can have one PR depend on another. There is of course a risk in that scheme.

JacquesCarette avatar May 07 '24 00:05 JacquesCarette

@Taneb are you willing to approve?

MatthewDaggitt avatar May 15 '24 05:05 MatthewDaggitt