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

Regularity & Epsilon induction. #1

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

georgydunaev
Copy link

@georgydunaev georgydunaev commented Oct 28, 2018

Here I proved the epsilon induction.
Then I verified the proofs of the regularity axiom based on epsilon induction.
Both intuitionistic and classic formulation are available.

Copy link
Contributor

@herbelin herbelin left a comment

Choose a reason for hiding this comment

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

Thanks for this proposition. I'm not the author of the development (it is Benjamin Werner), but I shall assume that he is ok to extend it with your useful and interesting proof. Please see comments. Please also use a name like Regularity.v for the file, rather than 3_Regularity.v.

.gitignore Outdated
lia.cache
nia.cache
nlia.cache
nra.cache
Copy link
Contributor

Choose a reason for hiding this comment

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

This .gitignore is a bit overkill for zfc (no need for the .cache, or the .cm* for instance) but it does not matter.

Defined.

(* (P x) means "Set x is regular." *)
Definition P x := forall u : Ens, (IN x u -> exists y,
Copy link
Contributor

Choose a reason for hiding this comment

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

Letter P is not very discriminating. Wouldn't you have an alternative name? Maybe something like regular_over, since this is a strengthening of regular as far as I understood.

IN y u /\ forall z, IN z u -> ~ IN z y).

(* Soundness of the definition of P. *)
Theorem sou_P : forall a b : Ens, EQ a b -> P a <-> P b.
Copy link
Contributor

Choose a reason for hiding this comment

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

I've seen "soundness" abbreviated more often "sound". So, please give preference to "regular_over_sound" or "regular_over_soundness" or something like that.

Defined.

(* Standard formulation of the regularity axiom. *)
Theorem axreg (x:Ens) :
Copy link
Contributor

Choose a reason for hiding this comment

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

Idem, I would rather see a full name like Regularity (compare for instance to how theorems are named in the other file Replacement.v).





Copy link
Contributor

Choose a reason for hiding this comment

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

You can remove these useless lines.

@herbelin
Copy link
Contributor

Hi @georgydunaev, are you still working on your project of formalizing Jech's book? (And sorry for not having answered earlier to the three issues #2, #3, #4 you raised.)

@georgydunaev
Copy link
Author

georgydunaev commented Apr 29, 2019

Hi @georgydunaev, are you still working on your project of formalizing Jech's book? (And sorry for not having answered earlier to the three issues #2, #3, #4 you raised.)

Hello, mr. Herbelin.

I've proved axioms of ZFC (for Ens) from Jech's book in January and then temporarily stopped this kind of activity. (https://github.com/georgydunaev/Jech/blob/master/Jech.v This code is of lower quality, I should remaster it.)

What are criteria the code shall meet to be placed in coq-contribs or coq-community?
( I have completed(and this code is of much higher quality) formalization of the

  1. predicate calculus' soundness(with contexts) and
    Predicate Calculus: https://github.com/georgydunaev/VerifiedMathFoundations/blob/development/OneFile.v
  2. the propositional calculus' completeness(with contexts).
    Propositional Calculus: https://github.com/georgydunaev/VerifiedMathFoundations/blob/development/PropLang.v )

@herbelin
Copy link
Contributor

Thanks for your reply.

What are criteria the code shall meet to be placed in coq-contribs or coq-community?

I don't think that formal criteria have clearly been written but this is in progress (if something has been done, @Zimmi48 should know). The typical criteria are: a minimum of coqdoc-style documentation explaining what is done and the roles of the main lemmas, no admit/Admitted (if something is open, use a Conjecture, or a documented Axiom), no remaining "TODO" or "FIXME" of internal usage, an attached README/description file, ...

PropLang would need a little cleaning and a bit of documentation but looks good otherwise. There are already various formalizations of propositional calculus but your formalization is attached to a precise textbook and is thus valuable as an effective formalization of this precise book. Similarly for OneFile. I could not understand if it follows a textbook, but if it does, it is valuable as an effective formalization of this precise book.

Let's first wait for @Zimmi48's position.

@Zimmi48
Copy link

Zimmi48 commented Apr 30, 2019

What are criteria the code shall meet to be placed in coq-contribs or coq-community?

I'm not sure exactly what you have in mind but coq-community welcomes old projects from coq-contribs when they find a new maintainer, and large refactorings / changes to update / extend such projects are welcome within coq-community.

On the other hand, there has not been any new project integrated in coq-contribs since the rise of opam as a package manager for Coq, which is how people distribute their Coq projects nowadays.

I don't think that formal criteria have clearly been written but this is in progress

I am not aware of any progress being made in this direction. I'm not exactly sure what @herbelin meant by this. All I can say is that in coq-community, there is no minimum quality criterion for transferring a project. There are only criteria of interests and presence of a volunteer maintainer. I'll refer you to the manifesto for more details: https://github.com/coq-community/manifesto

@herbelin
Copy link
Contributor

I don't think that formal criteria have clearly been written but this is in progress

I am not aware of any progress being made in this direction. I'm not exactly sure what @herbelin meant by this.

I was more or less thinking to the formation of an editorial board mentioned in paragraph advertising-interesting-packages of the manifesto, who implicitly would have established some criteria about which packages are worth to be advertized.

In any case, @georgydunaev, the answer seems then to be that you can freely publish to coq-community. And if you estimate that you will not be able to maintain it, I can put it in coq-contribs (which I maintain roughly once or twice a year), or simply opam, with a specific version of Coq to ensure it compiles, and with appropriate keywords for the advertizing, @Zimmi48, is this compatible with your view or do you recommend something else?

More generally, I find the idea to develop a library of formalized mathematical books very exciting, but this is still a long-term project!

@Zimmi48
Copy link

Zimmi48 commented Apr 30, 2019

I was more or less thinking to the formation of an editorial board mentioned in paragraph advertising-interesting-packages of the manifesto, who implicitly would have established some criteria about which packages are worth to be advertized.

Ah right. When this board is created, then it will set criteria, not for inclusion but for advertisement of packages, indeed.

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.

3 participants