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

Conversation

kangrongji
Copy link
Contributor

@kangrongji kangrongji 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.

@kangrongji kangrongji 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
@kangrongji
Copy link
Contributor Author

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.

@kangrongji
Copy link
Contributor Author

No, almost nowhere.

Cubical/Data/Bool/Properties.agda Outdated Show resolved Hide resolved
Cubical/Data/Bool/Properties.agda Outdated Show resolved Hide resolved
Cubical/Data/FinSet/Cardinality.agda Outdated Show resolved Hide resolved
Cubical/Data/FinSet/Cardinality.agda Outdated Show resolved Hide resolved
Cubical/Data/FinSet/Cardinality.agda Show resolved Hide resolved
Cubical/Data/FinSet/Induction.agda Outdated Show resolved Hide resolved
Cubical/Data/FinSet/Quotients.agda Outdated Show resolved Hide resolved
Cubical/Data/SumFin/Properties.agda Outdated Show resolved Hide resolved
Cubical/Data/SumFin/Properties.agda Show resolved Hide resolved
Cubical/HITs/SetTruncation/Fibers.agda Show resolved Hide resolved
@kangrongji
Copy link
Contributor Author

Nice! Using fiberRel is really smart.

@kangrongji
Copy link
Contributor Author

kangrongji commented Mar 26, 2022

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

@kangrongji
Copy link
Contributor Author

It looks much better now! @ecavallo

@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
@kangrongji kangrongji deleted the rijke branch March 26, 2022 16:18
@kangrongji kangrongji restored the rijke branch March 28, 2022 11:12
@kangrongji kangrongji 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.

None yet

2 participants