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

Logic #1226

Merged
merged 36 commits into from
Jan 7, 2025
Merged

Logic #1226

merged 36 commits into from
Jan 7, 2025

Conversation

fredrik-bakke
Copy link
Collaborator

@fredrik-bakke fredrik-bakke commented Nov 18, 2024

Some logic formalizations extracted from #1206.

Summary

  • Create logic namespace
  • Double negation elimination
    • Double negation stable propositions
    • Maps with double negation elimination and closure properties
    • Double negation stable embeddings and closure properties
  • De Morgan's law
    • De Morgan types and De Morgan propositions
    • De Morgan maps and closure properties
    • De Morgan embeddings and closure properties
  • Markov's principle and a strong version for finite types
  • Some additional closure properties for decidable maps, decidable embeddings, decidable propositions...
  • Diaconescu's theorem
    • The suspension of a proposition is a set

Initial work for #1069

@fredrik-bakke
Copy link
Collaborator Author

This PR is currently blocked on #1168.

@fredrik-bakke
Copy link
Collaborator Author

Turns out it's not directly blocked, there's just an overlap.

@EgbertRijke
Copy link
Collaborator

Sorry that this PR was left open for so long. I'll review it tomorrow or in the coming days. Could you get it up to date, if there is anything you wanted to change?

@fredrik-bakke
Copy link
Collaborator Author

Sorry that this PR was left open for so long. I'll review it tomorrow or in the coming days. Could you get it up to date, if there is anything you wanted to change?

I don't believe I want to add anything more to this PR, so review away. Thanks for taking on this huge PR!

@fredrik-bakke
Copy link
Collaborator Author

I just realized I want to factor "Markovian types" into a separate file. I will do so quickly. The rest can be reviewed in the meantime.

Copy link
Collaborator

@EgbertRijke EgbertRijke left a comment

Choose a reason for hiding this comment

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

This is a very cool pull request!

src/foundation-core/equality-dependent-pair-types.lagda.md Outdated Show resolved Hide resolved
src/foundation-core/equality-dependent-pair-types.lagda.md Outdated Show resolved Hide resolved
src/foundation/double-negation.lagda.md Show resolved Hide resolved
src/foundation/preimages-of-subtypes.lagda.md Show resolved Hide resolved
src/logic/de-morgan-maps.lagda.md Outdated Show resolved Hide resolved
src/logic/de-morgan-types.lagda.md Outdated Show resolved Hide resolved
@fredrik-bakke
Copy link
Collaborator Author

By the way @EgbertRijke, do you have an opinion on whether Markov's principle should be placed in foundation or the different principles of omniscience should be placed in logic?

@fredrik-bakke
Copy link
Collaborator Author

Would you want decidable types to be moved to the logic namespace? (not in this PR)

@fredrik-bakke
Copy link
Collaborator Author

I've addressed all of your comments now.

Would you want decidable types to be moved to the logic namespace? (not in this PR)

This question is relevant for where I should place the new module uniformly-decidable-type-families

@EgbertRijke
Copy link
Collaborator

By the way @EgbertRijke, do you have an opinion on whether Markov's principle should be placed in foundation or the different principles of omniscience should be placed in logic?

It would probably be fair to place them all in logic.

@EgbertRijke
Copy link
Collaborator

Would you want decidable types to be moved to the logic namespace? (not in this PR)

Hm.. that's a good question. I'm not sure where to draw the line between type theory and logic. The most obvious way to do it is that generic stuff about propositions should go in logic.

On the other hand, the Curry-Howard interpretation of logic into type theory also feels like logic, but perhaps I'd feel more comfortable about having the logic namespace mostly for proposition-level mathematics.

@EgbertRijke
Copy link
Collaborator

This pull request is a great advance for the library! Well done Fredrik!

@EgbertRijke EgbertRijke merged commit 13af1cf into UniMath:master Jan 7, 2025
4 checks passed
@fredrik-bakke fredrik-bakke deleted the logic branch January 8, 2025 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants