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

Add glossary entries for "HoTT" and "kernel" #249

Merged
merged 3 commits into from Feb 24, 2022

Conversation

Julian
Copy link
Contributor

@Julian Julian commented Jan 30, 2022

No description provided.

@Julian Julian force-pushed the hott-glossary branch 3 times, most recently from b3e6b5d to 1109836 Compare January 30, 2022 17:37
Copy link
Member

@robertylewis robertylewis left a comment

Choose a reason for hiding this comment

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

The HoTT description looks good!

Comment on lines 249 to 251
The goal of a proof assistant's kernel is to support all of the reasoning of the language with a small and bug-free, at the expense of expressivity or user-friendliness.
Specifically, the kernel uses a simpler but less featureful representation of proofs -- one a Lean user would normally not interact with, but which is intended to prevent the possibility that a bug allows invalid proofs to be accepted.
The user-facing portions of the Lean language are instead provided by its higher-level [modes](#mode), which ultimately are compiled into this internal kernel representation by the elaborator.
Copy link
Member

Choose a reason for hiding this comment

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

I don't love this description. It's not inaccurate to say that "input-Lean" is a different language from "kernel-Lean." "Less featureful representation of proofs" is more of a stretch.

I guess what's bothering me is that it presents input- and kernel-Lean as side by side? Kernel-Lean is 100% the "real" language, there's nothing very principled about the input layer. Input-friendly proof sketches go into the elaborator which tries to turn them into real proofs which can be checked by the kernel. Users do interact with fully elaborated proofs before those proofs reach the kernel, too; it might be more accurate to decouple the kernel from fully elaborated CIC proofs.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the feedback. I suppose I meant "expressive" rather than "featureful"-- I was trying to paraphrase Andrej's post:

The foundational system implemented in the kernel is too rudimentary to be directly usable for sophisticated mathematics. Instead, the user writes their input in a more expressive formal language 𝑉 (the vernacular) that is designed to be practical and useful. Typically 𝑉 is quite complex so that it can accommodate various notational conventions and other accepted forms of mathematical expression. A second component of the proof assistant, the elaborator, translates 𝑉 to 𝐹 and passes the translations to the kernel for verification.

But clearly I missed the nuances (and yeah featureful was a bad choice of words).

I'll try to give it another shot.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@robertylewis I've neutered and reworked the kernel entry a bit. Can you let me know if you have any further suggestions on it?

templates/glossary.md Outdated Show resolved Hide resolved
@robertylewis
Copy link
Member

This looks like a good summary for the level its targeting! Thanks again, and sorry for sleeping on this for so long.

@robertylewis robertylewis merged commit 9ce0714 into leanprover-community:newsite Feb 24, 2022
@Julian Julian deleted the hott-glossary branch February 24, 2022 22:41
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