Decentralized Proof-Term Library Michael Nahas affliliated with - - PowerPoint PPT Presentation

decentralized proof term library michael nahas
SMART_READER_LITE
LIVE PREVIEW

Decentralized Proof-Term Library Michael Nahas affliliated with - - PowerPoint PPT Presentation

Decentralized Proof-Term Library Michael Nahas affliliated with Radboud Universiteit Nijmegen New to the Research Field Expert in: File systems Distributed computing Caching Error Correction ... New to the Research Field


slide-1
SLIDE 1

Decentralized Proof-Term Library Michael Nahas

affliliated with

Radboud Universiteit Nijmegen

slide-2
SLIDE 2

New to the Research Field

Expert in:

  • File systems
  • Distributed computing
  • Caching
  • Error Correction
  • ...
slide-3
SLIDE 3

New to the Research Field

Not an expert (yet) in:

  • ITP
  • Type Theory
  • Coq
  • Isabelle/Isar, Isabelle/HOL, ACL2, Agda, ...
  • Matita
slide-4
SLIDE 4

New to the Research Field

Not an expert in:

  • Libraries
  • Machine Learning
  • Information Retrieval

Decentralized Proof-Term Library File System?

slide-5
SLIDE 5

What is a Library?

A storage place for information Examples:

  • Library (books)
  • Dictionary (words + definitions)
  • Phonebook (phone# and addresses)
  • Webserver (hypertext)
  • IMDB, Wikipedia, … Netflix! Facebook?
slide-6
SLIDE 6

Why do we want a library?

Duplicate work! “I know someone has already proved this! … or something similar.”

“nanos gigantum humeris insidentes”

  • Bernard of Chartres
slide-7
SLIDE 7

Processes of a Library

  • Collect
  • Authenticate
  • Index + Store
  • Maintain
  • Serve Users:

– Browsing – Learning – Searching

slide-8
SLIDE 8

Serving Users

  • Browsing (meta-data + priorities)

– “paging through the ToC / Index” – “reading the abstract”

  • Learning (copying data into brain (“cache”))

– “reading a textbook / paper”

  • Searching (accessing data without caching)

– “finding the citation for this paper”

  • News (streams of new or changed data)

– “Fermat's Last Theorem has been proved”

slide-9
SLIDE 9

Processes of a Library Dictionary

  • Collect
  • Authenticate
  • Index + Store
  • Maintain
  • Serve Users:

– Browsing – Learning – Searching

slide-10
SLIDE 10

Multiple Libraries are OK

  • Dictionary
  • Thesaurus
  • Vocabularies (words to learn)
  • Glossaries (sub-dictionary)
  • Oxford English Dictionary (super-dictionary?)
slide-11
SLIDE 11

Decentralized Proof-Term Library

  • Contains every proof term ever written
  • Assumes distributed computation, not storage.

– Many servers, each with full copy of library – After checking term, server cryptographically signs

  • Proof-terms are indexed by hash#
slide-12
SLIDE 12

Decentralized Proof-Term Library

  • Collect
  • Authenticate
  • Index + Store
  • Maintain
  • Serve Users:

– Browsing – Learning – Searching

slide-13
SLIDE 13

Decentralized Proof-Term Library

  • Good:

– Very little effort by users – Proofs are trustworthy – Lots of data for data mining – Exact search is fast

  • Bad:

– Search that requires refining the query – Proofs that require modification – Users will not learn

slide-14
SLIDE 14

Other Approaches

  • Single Publisher

– Mizar's MML, Coq StdLib, SSReflect, ...

  • Packages

– Isabelle/HOL's AFP, ACL2's “books”

  • Wiki

– MathWiki

  • Other

– Matita – OpenTheory?

slide-15
SLIDE 15

Discussion! (Bloodsport!)

  • Do we want a large, stable library?
  • How to handle versioning?
  • What is the cost-benefit of using a library?
  • How much user contribution can we expect?
  • How important are checked proofs?
  • What is Coq's relationship to the library?
  • Proof-term or script?
slide-16
SLIDE 16

End of Talk

  • Supplementary / optional slides follow
slide-17
SLIDE 17

Processes of a Library

  • Collect
  • Authenticate
  • Index + Store
  • Maintain
  • Serve Users:

– Browsing – Learning – Searching

slide-18
SLIDE 18

Proof-term or Script?

Proof terms are:

  • More precisely defined
  • Definition is more stable
  • Requires less code in the server
  • Designed for manipulation, comparison, etc.
  • Would not constrain UI development in Coq

Proof terms are data, not a list of commands.

slide-19
SLIDE 19

Proof-term or Script?

Scripts are sequences of commands. Can we recreate the script from a proof-term? IF we had a specification of the commands AND remembered hints about which subterms were created with each command. Does anyone know a good language for specifying commands?

slide-20
SLIDE 20

Searching 1TB of Proofs Quickly?

Mostly solved problem. (Google, Hoogle, etc.) Some interesting topics here:

  • Content-based identifiers
  • Canonical forms for types
  • Searching proofs on equivalent types
  • Query languages
  • Machine Learning (e.g., ML4PG)