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

Formalize Lemma 3.8.5 #1679

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Conversation

HyunggyuJang
Copy link
Contributor

No description provided.

Comment on lines +452 to +453
Lemma Book_3_8_5 `{Univalence} : exists X (Y : X -> Type),
~ forall X Y, (forall x : X, merely (Y x)) -> merely (forall x : X, Y x).
Copy link
Collaborator

Choose a reason for hiding this comment

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

The statement of this result has two mistakes. First, it does not state that each Y x is a set. Second, the first forall should not be there (and the X and Y in it shadow the X and Y earlier in the statement). I believe a correct statement is

Lemma Book_3_8_5 `{Univalence} : exists X (Y : X -> Type),
  (forall x : X, IsHSet (Y x)) * ~ ((forall x : X, merely (Y x)) -> merely (forall x : X, Y x)).

I think that it shouldn't be too hard to adapt the proof to this set-up.

@jdchristensen
Copy link
Collaborator

The X in this proof is called BAut Bool in the library, and is studied in Spaces/BAut/Bool.v. Some results there might simplify the proof. Also, Spaces/BAut.v contains trunc_baut which shows that BAut Bool is a 1-type, from which it follows that each Y x is a set. In fact, Coq can infer this using typeclasses:

Lemma Book_3_8_5 `{Univalence} : exists X (Y : X -> Type),
  (forall x : X, IsHSet (Y x)) * ~ ((forall x : X, merely (Y x)) -> merely (forall x : X, Y x)).
Proof.
  set (X := BAut Bool).
  exists X.
  set (x0 := point X).
  set (Y := fun x : X => x0 = x).
  exists Y.
  split.
  1: exact _.
  ...

@jdchristensen
Copy link
Collaborator

@HyunggyuJang Would you like to try updating this PR with the corrected statement of 3.8.5 and using some of the material already in the library? It would be nice to have this! Maybe it should go in Spaces/BAut/Bool.v or somewhere nearby?

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