rapid prototyping formal systems in mmt 5 case studies
play

Rapid Prototyping Formal Systems in MMT: 5 Case Studies Dennis M - PowerPoint PPT Presentation

1 Rapid Prototyping Formal Systems in MMT: 5 Case Studies Dennis M uller and Florian Rabe Computer Science, University Erlangen-N urnberg, Germany LRI, University Paris-Sud, France June 2019 Motivation 2 Motivation Motivation 3


  1. 1 Rapid Prototyping Formal Systems in MMT: 5 Case Studies Dennis M¨ uller and Florian Rabe Computer Science, University Erlangen-N¨ urnberg, Germany LRI, University Paris-Sud, France June 2019

  2. Motivation 2 Motivation

  3. Motivation 3 Logical Frameworks = meta-logic in which syntax and semantics of object logics are defined Automath, LF, Isabelle Advantages ◮ Universal concepts expressions, substitution, typing, equality, . . . ◮ Meta-reasoning consistency, logic translations, . . . ◮ Rapid prototyping type reconstruction, theorem proving, . . . ◮ Generic tools theorem prover, module system, IDE, . . . Simplicity vs. expressivity ◮ Meta-logic must be simple to be scalable, trustworthy ◮ Object logic must be expressive to be practical ◮ Big challenge for frameworks

  4. Motivation 4 Designing Logical Frameworks Typical approach: ◮ choose a λ -calculus ◮ add other features ◮ logic programming ( λ -Prolog) ◮ meta logic (Twelf, Abella) ◮ proof assistant for object logic (Isabelle) ◮ concurrency (CLF) ◮ reasoning about contexts (Beluga) ◮ rewriting (Dedukti) ◮ external side conditions (LLFP) ◮ coupling with proof-assistant support (Hybrid) ◮ user-defined unification hints (ELPI) ◮ . . . Problems ◮ Divergence due to choice of other features ◮ Even hypothetical union not expressive enough for real-life logics no way to define, e.g., HOL Light, Mizar, PVS

  5. Motivation 5 Experimentation with Formal Systems Customize the system fundamentals ◮ increasingly complex problem domains e.g., mathematics, programming languages ◮ plain formalization introduces too many artifacts to be human-readable ◮ therefore: allow users to define how to interpret human input e.g., custom parsing, type reconstruction Examples: ◮ unification hints (Coq, Matita) ◮ extra-logical declarations ◮ allow users to guide incomplete algorithms (e.g., unification) ◮ meta-programming (Idris, Lean) ◮ expose internal datatypes to user ◮ allow users to program extensions in the language itself

  6. Motivation 6 MMT = Meta-Meta-Theory/Tool Problem: ◮ logical frameworks not expressive for practical logics ◮ more system experimentation needed ◮ trend towards fine-grained user control Foundation-independence: use logical frameworks without committing to a specific one Mathematics Logic Logical Fra- Foundation- meworks Independence MMT logical frameworks logic, programming language, . . . domain knowledge

  7. The UniFormal Library 7 The UniFormal Library

  8. The UniFormal Library 8 Large Scale Example: The LATIN Atlas ◮ DFG project 2009-2012 (with DFKI Bremen and Jacobs Univ.) ◮ Highly modular network of little logic formalizations ◮ separate theory for each ◮ connective/quantifier ◮ type operator ◮ controversial axioms e.g., excluded middle, choice, . . . ◮ base type ◮ reference catalog of standardized logics ◮ documentation platform ◮ Written in MMT/LF ◮ 4 years, with ∼ 10 students, ∼ 1000 modules

  9. The UniFormal Library 9 The LATIN Atlas of Logical Systems The LATIN Atlas is huge: That’s me pointing at the theory for first-order logic

  10. The UniFormal Library 10 Logic Diagrams in LATIN An example fragment of the LATIN logic diagram ◮ nodes: MMT/LF theories ◮ edges: MMT/LF theory morphisms Base ∧ Mod PL ¬ . . . ∧ ∧ Syn ML SFOL DFOL DL FOL ∧ Pf HOL PL OWL CL HOL Light ZFC Mizar ◮ each node is root for library of that logic ◮ each edge yields library translation functor library integration very difficult though

  11. The UniFormal Library 11 OAF: Integration of Proof Assistant Libraries ◮ DFG project, 2014–2020, 15 contributors ◮ Big, overlapping libraries joined in MMT as the uniform representation language > 100 GB XML in total Mizar, HOL systems, IMPS, Coq, PVS, Isabelle. . . ◮ enables archival, comparison, integration MMT LF LF+X LATIN logic library HOL Light Mizar . . . HOL Light library Bool Arith Arith XBoole XReal . . . . . . . . . Mizar library

  12. The UniFormal Library 12 OpenDreamKit: Virtual Math Research Environments ◮ EU project, 2015-2019, 15 sites, 25 partners http://opendreamkit.org/ ◮ MMT as mediator system ◮ system-independent formalization of math > 200 theories no proofs, no algorithms ◮ integration of math computation systems SageMath, GAP, Singular: services interfaces defined in MMT ◮ . . . and math databases LMFDB, OEIS: database schemas defined in MMT Example: dynamic retrieval ◮ SageMath user needs 13th transitive group with conductor 5 ◮ SageMath queries MMT ◮ MMT retrieves it from LMFDB, translates it to SageMath syntax

  13. The UniFormal Library 13 MathHub GitHub-like but for MMT projects https://gl.mathhub.info ◮ 251 Repositories ◮ 187 Users ◮ 28.5 GB in March, probably doubled by now For example: Language Library Modules Declarations MMT Math-in-the-Middle 220 826 LF LATIN 529 2,824 PVS Prelude+NASA 974 24,084 Isabelle Distribution+AFP 9553 1,472,280 HOL Light Basic 189 22,830 Coq > 50 in total 1,979 167,797 Mizar MML 1,194 69,710 SageMath Distribution 1,399 GAP Library 9,050

  14. MMT Overview 14 MMT Overview

  15. MMT Overview 15 Basic Concepts Design principle ◮ few orthogonal concepts ◮ uniform representations of diverse languages sweet spot in the expressivity-simplicity trade off Concepts ◮ theory = named set of declarations ◮ foundations, logics, type theories, classes, specifications, . . . ◮ theory morphism = compositional translation ◮ inclusions, translations, models, katamorphisms, . . . ◮ constant = named atomic declaration ◮ function symbols, theorems, rules, . . . ◮ may have type, definition, notation ◮ term = unnamed complex entity, formed from constants ◮ expressions, types, formulas, proofs, . . . ◮ typing ⊢ T s : t between terms relative to a theory ◮ well-formedness, truth, consequence . . .

  16. MMT Overview 16 Example: Propositional Logic in the MMT IDE

  17. MMT Overview 17 Small Scale Example (1) Logical frameworks in MMT theory LF { type Pi # Π V1 . 2 name[ : type][#notation] arrow # 1 → 2 lambda # λ V1 . 2 apply # 1 2 } Logics in MMT/LF Logic : LF { theory prop : type ded : prop → type # ⊢ 1 judgments-as-types } theory FOL : LF { Logic include term : type higher-order abstract syntax f o r a l l : ( term → prop ) → prop # ∀ V1 . 2 }

  18. MMT Overview 18 Small Scale Example (2) FOL from previous slide: theory FOL : LF { include Logic term : type f o r a l l : ( term → prop ) → prop # ∀ V1 . 2 } Proof-theoretical semantics of FOL theory FOLPF : LF { include FOL rules are constants f o r a l l I n t r o : ΠF:term → prop . (Πx:term . ⊢ (F x ) ) → ⊢ ∀ ( λ x:term . F x ) f o r a l l E l i m : ΠF:term → prop . ⊢ ∀ ( λ x:term . F x ) → Πx:term . ⊢ (F x ) }

  19. MMT Overview 19 Small Scale Example (3) FOL from previous slide: theory FOL : LF { Logic include term : type f o r a l l : ( term → prop ) → prop # ∀ V1 . 2 } Algebraic theories in MMT/LF/FOL: theory Magma : FOL { comp : term → term → term # 1 ◦ 2 } theory SemiGroup : FOL { include Magma, . . . } theory CommutativeGroup : FOL { include SemiGroup , . . . } theory Ring : FOL { a d d i t i v e : CommutativeGroup m u l t i p l i c a t i v e : Semigroup . . . }

  20. MMT Overview 20 Abstract Syntax of Terms Key ideas ◮ no predefined constants ◮ single general syntax tree constructor c (Γ; � E ) ◮ c (Γ; � E ) binds variables and takes arguments ◮ non-binding operators: Γ empty e.g., apply ( · ; f , a ) for ( f a ) ◮ typical binders: Γ and � E have length 1 e.g., lambda ( x : A ; t ) for λ x : A . t ( x [: E ][= E ]) ∗ contexts Γ ::= terms E ::= constants | c variables | x c (Γ; E ∗ ) complex terms | Terms are relative to theory T that declares the constants c

  21. MMT Overview 21 Concrete Syntax of Terms ◮ Theories may attach notation(s) to each constant declaration ◮ Notations of c introduce concrete syntax for c (Γ; � E ) e.g., for type theory concrete syntax constant declaration abstract syntax E ::= # type type type Π x : E 1 . E 2 Pi # Π V1 . 2 Pi ( x : E 1 ; E 2 ) E 1 → E 2 # 1 → 2 arrow ( · ; E 1 , E 2 ) arrow λ x : E 1 . E 2 lambda # λ V1 . 2 lambda ( x : E 1 ; E 2 ) # 1 2 apply ( · ; E 1 , E 2 ) E 1 E 2 apply

  22. MMT Overview 22 Judgments ◮ MMT terms subsume terms of specific languages ◮ Type systems singles out the well-typed terms For any theory Σ: ⊢ Σ T = { Σ } is a valid theory definition ⊢ T Γ Γ is a valid context Γ ⊢ T t : A t has type A E and E ′ are equal Γ ⊢ T E = E ′ Γ ⊢ T : A A is inhabitable Two kinds of rules: ◮ MMT defines some global rules once and for all foundation-independent rules ◮ declared in MMT theories, subject to scoping foundation-specific rules

  23. MMT Overview 23 Foundation-Independent Rules ◮ Lookup rules for atomic terms over a theory T = { Σ } c : A in Σ c = t in Σ ⊢ T c : A ⊢ T c = t ◮ Equivalence and congruence rules for equality ◮ Rules for well-formed theories/contexts ⊢ Σ [ ⊢ Σ : A ] [ ⊢ T t : A ] ⊢ · ⊢ Σ , c [: A ][= t ]

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend