Locales
Locales: a module system for mathematical theories. Locales are a module system for managing theory hierarchies in a theorem prover through theory interpretation. They are available for the theorem prover Isabelle. In this paper, their semantics is defined in terms of local theories and morphisms. Locales aim at providing flexible means of extension and reuse. Theory modules (which are called locales) may be extended by definitions and theorems. Interpretation to Isabelle’s global theories and proof contexts is possible via morphisms. Even the locale hierarchy may be changed if declared relations between locales do not adequately reflect logical relations, which are implied by the locales’ specifications. By discussing their design and relating it to more commonly known structuring mechanisms of programming languages and provers, locales are made accessible to a wider audience beyond the users of Isabelle. The discussed mechanisms include ML-style functors, type classes and mixins (the latter are found in modern object-oriented languages).
Keywords for this software
References in zbMATH (referenced in 31 articles )
Showing results 1 to 20 of 31.
Sorted by year (- Kunčar, Ondřej; Popescu, Andrei: From types to sets by local type definition in higher-order logic (2019)
- Lammich, Peter; Lochbihler, Andreas: Automatic refinement to efficient data structures: a comparison of two approaches (2019)
- Lochbihler, Andreas: Effect polymorphism in higher-order logic (proof pearl) (2019)
- Preoteasa, Viorel; Dragomir, Iulia; Tripakis, Stavros: Mechanically proving determinacy of hierarchical block diagram translations (2019)
- Avigad, Jeremy (ed.); Blanchette, Jasmin Christian (ed.); Klein, Gerwin (ed.); Paulson, Lawrence (ed.); Popescu, Andrei (ed.); Snelting, Gregor (ed.): Introduction to “Milestones in interactive theorem proving” (2018)
- Bauereiß, Thomas; Pesenti Gritti, Armando; Popescu, Andrei; Raimondi, Franco: CoSMed: a confidentiality-verified social media platform (2018)
- Blanchette, Jasmin Christian; Fleury, Mathias; Lammich, Peter; Weidenbach, Christoph: A verified SAT solver framework with learn, forget, restart, and incrementality (2018)
- Breitner, Joachim: The adequacy of Launchbury’s natural semantics for lazy evaluation (2018)
- Lochbihler, Andreas: Mechanising a type-safe model of multithreaded Java with a verified compiler (2018)
- Schlichtkrull, Anders; Blanchette, Jasmin Christian; Traytel, Dmitriy; Waldmann, Uwe: Formalizing Bachmair and Ganzinger’s ordered resolution prover (2018)
- Eberl, Manuel: Proving divide and conquer complexities in Isabelle/HOL (2017)
- Lochbihler, Andreas: Effect polymorphism in higher-order logic (proof pearl) (2017)
- Aissat, Romain; Voisin, Frédéric; Wolff, Burkhart: Infeasible paths elimination by symbolic execution techniques. Proof of correctness and preservation of paths (2016)
- Åman Pohjola, Johannes; Parrow, Joachim: The expressive power of monotonic parallel composition (2016)
- Bisping, Benjamin; Brodmann, Paul-David; Jungnickel, Tim; Rickmann, Christina; Seidler, Henning; Stüber, Anke; Wilhelm-Weidner, Arno; Peters, Kirstin; Nestmann, Uwe: Mechanical verification of a constructive proof for FLP (2016)
- Blanchette, Jasmin Christian; Fleury, Mathias; Weidenbach, Christoph: A verified SAT solver framework with learn, forget, restart, and incrementality (2016)
- Bourke, Timothy; van Glabbeek, Robert J.; Höfner, Peter: Mechanizing a process algebra for network protocols (2016)
- Lochbihler, Andreas: Probabilistic functions and cryptographic oracles in higher order logic (2016)
- Matichuk, Daniel; Murray, Toby; Wenzel, Makarius: Eisbach: a proof method language for Isabelle (2016)
- Noschinski, Lars: A graph library for Isabelle (2015)