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

First draft for interactive theorem provers #14

Open
wants to merge 6 commits into
base: trunk
Choose a base branch
from

Conversation

rinshankaihou
Copy link

There are still contents to add, and citation to fix.

Copy link
Contributor

@cyrus- cyrus- left a comment

Choose a reason for hiding this comment

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

The format is not correct -- you need to have bib items with summaries, as in notation.rst. Please correct this and make the other suggested changes for your second draft.

src/itp.rst Outdated
@@ -0,0 +1,139 @@
.. :Authors: - Cyrus Omar
Copy link
Contributor

Choose a reason for hiding this comment

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

add your name here

src/itp.rst Outdated
@@ -0,0 +1,139 @@
.. :Authors: - Cyrus Omar

.. title:: Interactive Theorem Prover
Copy link
Contributor

Choose a reason for hiding this comment

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

"Prover" -> "Provers"

src/itp.rst Outdated
.. bibliography:: itp.bib
:filter: key == 'Klein2009'

Complete formal verification is the only known way to guarantee that a system is free of programming errors.
Copy link
Contributor

Choose a reason for hiding this comment

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

This statement is not a summary of the Klein et al 2009 paper. This can be the first sentence of your Overview but this paper should be separately summarized.

Copy link
Author

Choose a reason for hiding this comment

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

I just want this to be an introduction, rather than introducing this paper; maybe I should clarify this more.

src/itp.rst Outdated
.. bibliography:: itp.bib
:filter: key == '10.1007/BFb0000430'

while the flaws are counterintuitive enough so that an informal analysis may be too prone to error
Copy link
Contributor

Choose a reason for hiding this comment

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

again, this is not a summary of the cited paper.

src/itp.rst Outdated
while the flaws are counterintuitive enough so that an informal analysis may be too prone to error
to be reliable.

An `interactive theorem prover <https://en.wikipedia.org/wiki/Proof_assistant>`_, sometimes refered as proof assistant, is a software that helps
Copy link
Contributor

Choose a reason for hiding this comment

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

  • don't link to Wikipedia
  • "refered" -> "referred to"
  • "a software" -> "a programming environment"

src/itp.rst Outdated

Usability Evaluation of Interactive Theorem provers
=========================================================
[EVAL] performs usability evaluation using focus groups.
Copy link
Contributor

Choose a reason for hiding this comment

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

again, bib item

src/itp.rst Outdated

The evaluation involves discussion about two interactive theorem provers, KeY and Isabelle.
The KeY system is an interactive verification system for programs
written in Java annotated with the Java Modelling Language. The user interface is tree-structured,
Copy link
Contributor

Choose a reason for hiding this comment

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

"Modelling" -> "Modeling"

src/itp.rst Outdated
The KeY system is an interactive verification system for programs
written in Java annotated with the Java Modelling Language. The user interface is tree-structured,
each node is an intermediate goal, and the children are derived from applying formulas to their parent node,
whereas Isabelle only shows the current goal, and by applying tactics (sometimes called methods), which are essentially
Copy link
Contributor

Choose a reason for hiding this comment

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

run-on sentence, start a new sentence about Isabelle

src/itp.rst Outdated
it gives too much information that the user does not care about.
However KeY users oftenly have to interact with
low-level logic formulas rather than doing proof on the notation level, and low-level steps are oftenly repeated by hand.
Isabelle, on the other hand, produces intuitive proof.
Copy link
Contributor

Choose a reason for hiding this comment

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

"produces intuitive proof" -> "produces a more intuitive proof"

src/index.rst Outdated
\part{Interactive Theorem Prover}

.. toctree::
:caption: Interactive Theorem Prover
Copy link
Contributor

Choose a reason for hiding this comment

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

this should go in the Live Programming chapter, not in a separate top-level chapter like this

Copy link
Contributor

@cyrus- cyrus- left a comment

Choose a reason for hiding this comment

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

good topic coverage and paper descriptions overall. need a little more work introducing various topics before talking about their results (see comments). second draft grade will be sent by email.

src/itp.bib Outdated
@inproceedings{klein09,
author = {Klein, Gerwin and Elphinstone, Kevin and Heiser, Gernot and Andronick, June and Cock, David and Derrin, Philip and Elkaduwe, Dhammika and Engelhardt, Kai and Kolanski, Rafal and Norrish, Michael and Sewell, Thomas and Tuch, Harvey and Winwood, Simon},
title = {seL4: Formal Verification of an OS Kernel},
booktitle = {Proceedings of the ACM SIGOPS 22Nd Symposium on Operating Systems Principles},
Copy link
Contributor

Choose a reason for hiding this comment

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

22Nd -> 22nd

src/itp.bib Outdated
@@ -0,0 +1,120 @@
@inproceedings{klein09,
author = {Klein, Gerwin and Elphinstone, Kevin and Heiser, Gernot and Andronick, June and Cock, David and Derrin, Philip and Elkaduwe, Dhammika and Engelhardt, Kai and Kolanski, Rafal and Norrish, Michael and Sewell, Thomas and Tuch, Harvey and Winwood, Simon},
title = {seL4: Formal Verification of an OS Kernel},
Copy link
Contributor

Choose a reason for hiding this comment

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

acronyms in bibtex titles need to be in braces to avoid capitalization changes: {OS}

src/itp.bib Outdated
}

@inproceedings{boutry16,
title = {From Tarski to Descartes: Formalization of the Arithmetization of Euclidean Geometry},
Copy link
Contributor

Choose a reason for hiding this comment

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

Formal names need to be braced: {Tarski}, {Descartes}, etc.

src/itp.bib Outdated
}

@inproceedings{lerner15,
title={Polymorphic blocks: Formalism-inspired UI for structured connectors},
Copy link
Contributor

Choose a reason for hiding this comment

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

{UI}

src/itp.bib Outdated
}

@inproceedings{aspinall00,
title={Proof General: A generic tool for proof development},
Copy link
Contributor

Choose a reason for hiding this comment

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

{Proof General}

src/itp.rst Outdated
is completely rigorous, and is oftenly tedious and hard.

It is worth noting that, when we say some formal proof done by a theorem prover works,
we impose the implicit assumption that the theorem prover is error-free. In other words, we have to trust the theorem provers.
Copy link
Contributor

Choose a reason for hiding this comment

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

use the phrase "trusted computing base (TCB)" here, since that shows up in a lot of papers

src/itp.rst Outdated


Now there are `more features, <http://proofgeneral.inf.ed.ac.uk/htmlshow.php?title=Proof+General+user+manual&file=releases%2FProofGeneral%2Fdoc%2FProofGeneral%2FProofGeneral_2.html>`_
supported by proof general, such as proof by pointing (appropraite tactics or lemmas are automatically applied
Copy link
Contributor

Choose a reason for hiding this comment

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

"appropraite" -> "appropriate"

src/itp.rst Outdated
The geometry software is used for drawing geometric figures and inventing conjectures by using feed back from the geometric software
, and a theorem prover is used to prove the conjectures.
In the automatic mode, the conjecture along with the graph created by the user is rewritten and translated to the automatic theorem prover.
The user can choose certain strategies such as setting searchning depth for the automated theorem prover, but has no control during proving,
Copy link
Contributor

Choose a reason for hiding this comment

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

"searchning" -> "searching"

src/itp.rst Outdated
:filter: key == 'boutry16'

Tarski's axioms, which are axioms for Euclidean geometry,
is formulated in first-order logic, are formalized in Coq, which 'paves the way for the use of algebraic automated
Copy link
Contributor

Choose a reason for hiding this comment

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

didn't conclude the quote here

src/itp.rst Outdated
is formulated in first-order logic, are formalized in Coq, which 'paves the way for the use of algebraic automated
deduction methods in synthetic geometry within the Coq proof assistant.

Usability Evaluation of Interactive Theorem provers
Copy link
Contributor

Choose a reason for hiding this comment

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

"provers" -> "Provers"

src/itp.rst Outdated

Overview
========
Formal verification is essential to make sure important properties such as safety hold in software or hardware systems.
Copy link
Contributor

Choose a reason for hiding this comment

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

the next sentence restates this sentence, so just remove this one

src/itp.rst Outdated
whether it helps the user understand the symbolic meaning of the formulas. The paper also states that this tool has a potential of
laying the foundation for crowdsourcing proofs via gamification.

Proof General
Copy link
Contributor

Choose a reason for hiding this comment

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

This isn't a general topic, it's a specific system. Maybe call these "Live Interactive Theorem Provers", and add the evaluation paper about KeY and Isabelle in to that section instead of having them separated

Copy link
Contributor

@cyrus- cyrus- left a comment

Choose a reason for hiding this comment

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

thanks! will send final grades by email soon

@@ -71,7 +71,7 @@ @article{narboux07
}

@inproceedings{boutry16,
title = {From Tarski to Descartes: Formalization of the Arithmetization of Euclidean Geometry},
title = {From {Tarski} to {Descartes}: Formalization of the Arithmetization of Euclidean Geometry},
Copy link
Contributor

Choose a reason for hiding this comment

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

"Euclidean" should also be capitalized

Base automatically changed from master to trunk February 14, 2021 02:52
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