Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rijke Finite Types and the Number of Finite Groups #644

Merged
merged 27 commits into from
Mar 26, 2022
Merged

Conversation

kangxyz
Copy link
Contributor

@kangxyz kangxyz commented Nov 24, 2021

This PR transports Egbert Rijke's main results in OEIS-A000001 to cubical agda. Especially his definition of "homotopy finite type" and they are closed under forming Σ-types (see Cubical.Data.FinType, the condition is named as isFinType).

Tons of facts about finite sets and related stuff are needed. So this PR depends on #630.

Now we can count the number of finite sets with structures like finite groups or finite semi-groups, at least in theory... I have defined a few in Cubical.Experiments.CountingFiniteStructure and everyone can add what he/she likes. But except for the trivial structure (basically no structure, so the number is always 1), the counting is hard to perform.

I tried to calculate the number of finite semi-groups of cardinal 2, and after several hours, agda told me "Sorry, Heap Overflow!" Maybe I should enlarge the heap size and try again, or anyone with a better computer would take this job. It seems possible to compute the number though may cost a rather long time.

It also contains the definition of OEIS-A000001. Since the difficulty is much more serious than semi-group case, I have no comments for that.

P.S. It turns out the main obstruction is that transporting Π-types performs extremely slow. I don't know how to get around it.

@kangxyz kangxyz changed the title Rijke Finite Types and the Number of Finite Semi-Groups Rijke Finite Types and the Number of Finite Groups Nov 24, 2021
@ecavallo ecavallo self-assigned this Mar 15, 2022
@kangxyz
Copy link
Contributor Author

kangxyz commented Mar 15, 2022

Emm... I had changed the definition of isFinSet so that cardinality can be computed more efficiently. That's a major shift. Do you think it is reasonable or not? @ecavallo

@ecavallo
Copy link
Collaborator

Is it used in many places in the library? If not, I think it's fine to change it.

@kangxyz
Copy link
Contributor Author

kangxyz commented Mar 15, 2022

No, almost nowhere.

@kangxyz
Copy link
Contributor Author

kangxyz commented Mar 26, 2022

Nice! Using fiberRel is really smart.

@kangxyz
Copy link
Contributor Author

kangxyz commented Mar 26, 2022

There are too many files in Data.FinSet so I move everything about finite types into a new fold.

@kangxyz
Copy link
Contributor Author

kangxyz commented Mar 26, 2022

It looks much better now! @ecavallo

@kangxyz kangxyz requested a review from ecavallo March 26, 2022 10:30
@ecavallo
Copy link
Collaborator

Thanks! This is all great to have in the library.

@ecavallo ecavallo merged commit 43e0bf0 into agda:master Mar 26, 2022
@kangxyz kangxyz deleted the rijke branch March 26, 2022 16:18
@kangxyz kangxyz restored the rijke branch March 28, 2022 11:12
@kangxyz kangxyz deleted the rijke branch March 28, 2022 11:12
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.

2 participants