Skip to content

Commutative idempotent binary operations with eventually idempotent right action imply sethood - #445

Draft
fredrik-bakke wants to merge 32 commits into
martinescardo:masterfrom
fredrik-bakke:comm-idem
Draft

fredrik-bakke wants to merge 32 commits into
martinescardo:masterfrom
fredrik-bakke:comm-idem

Conversation

@fredrik-bakke

Copy link
Copy Markdown
Contributor

Gives a generalisation of David Wärn's result that the algebraic structure of a semilattice implies sethood.

Theorem. Given a type $A$ with a binary operation ${-}*{-}$ that satisfies

  1. idempotence ($x * x = x$)
  2. commutativity ($x * y = y * x$)
  3. eventual idempotence of the right action, meaning that for each $y$ there is a natural number $n$ such that, letting $r(x) := x * y$, then $r^{n+1}(x) = r^n(x)$ for all $x$

then $A$ is a set.

@fredrik-bakke

Copy link
Copy Markdown
Contributor Author

I'll mark this PR as ready for review once I've found the time to re-review the comments I received on my CSB-WLPO pull request, to avoid having you repeat feedback you've given me before.

@fredrik-bakke

fredrik-bakke commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Actually, shortly after posting this I realised I have a couple more generalisations of these facts.

EDIT: Nevermind, I've just stared at this for too long and started imagining things.

@tomdjong

Copy link
Copy Markdown
Collaborator

I'm going to unsubscribe from this PR until it's ready for PR (just to avoid a lot of emails about commits). Please ping me when it's ready. Thanks!

@martinescardo

Copy link
Copy Markdown
Owner

Gives a generalisation of David Wärn's result that the algebraic structure of a semilattice implies sethood.

Theorem. Given a type A with a binary operation − ∗ − that satisfies

1. idempotence (
     x
     ∗
     x
     =
     x
   )

2. commutativity (
     x
     ∗
     y
     =
     y
     ∗
     x
   )

3. eventual idempotence of the right action, meaning that for each 
     y
    there is a natural number 
     n
    such that, letting 
     r
     (
     x
     )
     :=
     x
     ∗
     y
   , then 
     
       r
       
         n
         +
         1
       
     
     (
     x
     )
     =
     
       r
       n
     
     (
     x
     )
    for all 
     x

then A is a set.

Is this motivated by something you have in mind?

Comment thread source/UF/Sets.lagda
→ is-set X
refl-is-set X r {x} p refl = r x p

refl-is-set' : (X : 𝓤 ̇ )

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better name: if-every-loop-is-refl-then-the-type-is-a-set.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, does that mean I should rename refl-is-set too?

@fredrik-bakke

Copy link
Copy Markdown
Contributor Author

Is this motivated by something you have in mind?

The motivation was to see how far I could stretch the original result. I have some new results today though, so better conditions will/might follow soon.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants