diff --git a/web/authors/aehlig/index.html b/web/authors/aehlig/index.html --- a/web/authors/aehlig/index.html +++ b/web/authors/aehlig/index.html @@ -1,98 +1,98 @@ aehlig - Archive of Formal Proofs

Klaus Aehlig

Homepages 🌐

Entries

2008

Feb 18
\ No newline at end of file diff --git a/web/authors/bauer/index.html b/web/authors/bauer/index.html --- a/web/authors/bauer/index.html +++ b/web/authors/bauer/index.html @@ -1,95 +1,95 @@ bauer - Archive of Formal Proofs

Gertrud Bauer

Entries

2006

May 22
\ No newline at end of file diff --git a/web/authors/brinkop/index.html b/web/authors/brinkop/index.html --- a/web/authors/brinkop/index.html +++ b/web/authors/brinkop/index.html @@ -1,98 +1,98 @@ brinkop - Archive of Formal Proofs

Hauke Brinkop

E-Mails πŸ“§

Entries

2016

Jul 14
\ No newline at end of file diff --git a/web/authors/eberl/index.html b/web/authors/eberl/index.html --- a/web/authors/eberl/index.html +++ b/web/authors/eberl/index.html @@ -1,509 +1,509 @@ eberl - Archive of Formal Proofs

Manuel Eberl

Homepages 🌐

E-Mails πŸ“§

Entries

2022

2021

2020

2019

2018

2017

2016

2015

2014

Oct 09
Jan 11
\ No newline at end of file diff --git a/web/authors/esparza/index.html b/web/authors/esparza/index.html --- a/web/authors/esparza/index.html +++ b/web/authors/esparza/index.html @@ -1,98 +1,98 @@ esparza - Archive of Formal Proofs

Javier Esparza

Homepages 🌐

Entries

2014

May 28
\ No newline at end of file diff --git a/web/authors/essmann/index.html b/web/authors/essmann/index.html --- a/web/authors/essmann/index.html +++ b/web/authors/essmann/index.html @@ -1,98 +1,98 @@ essmann - Archive of Formal Proofs

Robin Eßmann

E-Mails πŸ“§

Entries

2020

Jan 16
\ No newline at end of file diff --git a/web/authors/haslbeckm/index.html b/web/authors/haslbeckm/index.html --- a/web/authors/haslbeckm/index.html +++ b/web/authors/haslbeckm/index.html @@ -1,116 +1,116 @@ haslbeckm - Archive of Formal Proofs

Maximilian P. L. Haslbeck

Homepages 🌐

Entries

2019

2018

2016

Feb 17
\ No newline at end of file diff --git a/web/authors/hoelzl/index.html b/web/authors/hoelzl/index.html --- a/web/authors/hoelzl/index.html +++ b/web/authors/hoelzl/index.html @@ -1,156 +1,156 @@ hoelzl - Archive of Formal Proofs

Johannes HΓΆlzl

Homepages 🌐

E-Mails πŸ“§

Entries

2018

2015

2014

Oct 09
Mar 11

2012

Sep 10
Apr 26
+
Markov Models

by Johannes Hâlzl 🌐 and Tobias Nipkow 🌐
Jan 03 \ No newline at end of file diff --git a/web/authors/hu/index.html b/web/authors/hu/index.html --- a/web/authors/hu/index.html +++ b/web/authors/hu/index.html @@ -1,98 +1,98 @@ hu - Archive of Formal Proofs

Shuwei Hu

E-Mails πŸ“§

Entries

2018

May 22
\ No newline at end of file diff --git a/web/authors/jiangd/index.html b/web/authors/jiangd/index.html --- a/web/authors/jiangd/index.html +++ b/web/authors/jiangd/index.html @@ -1,98 +1,98 @@ jiangd - Archive of Formal Proofs

Dongchen Jiang

E-Mails πŸ“§

Entries

2010

Dec 17
\ No newline at end of file diff --git a/web/authors/klein/index.html b/web/authors/klein/index.html --- a/web/authors/klein/index.html +++ b/web/authors/klein/index.html @@ -1,119 +1,119 @@ klein - Archive of Formal Proofs

Gerwin Klein

Homepages 🌐

E-Mails πŸ“§

Entries

2016

2012

2005

Jun 01
\ No newline at end of file diff --git a/web/authors/krauss/index.html b/web/authors/krauss/index.html --- a/web/authors/krauss/index.html +++ b/web/authors/krauss/index.html @@ -1,98 +1,98 @@ krauss - Archive of Formal Proofs

Alexander Krauss

Homepages 🌐

Entries

2010

May 12
\ No newline at end of file diff --git a/web/authors/lammich/index.html b/web/authors/lammich/index.html --- a/web/authors/lammich/index.html +++ b/web/authors/lammich/index.html @@ -1,340 +1,340 @@ lammich - Archive of Formal Proofs

Peter Lammich

Homepages 🌐

E-Mails πŸ“§

Entries

2021

2020

2019

Jun 25
+
Priority Search Trees

by Peter Lammich 🌐 and Tobias Nipkow 🌐
Jun 25
Kruskal's Algorithm for Minimum Spanning Forest

by Maximilian P. L. Haslbeck 🌐, Peter Lammich 🌐 and Julian Biendarra
Feb 14
IMP2 – Simple Program Verification in Isabelle/HOL

by Peter Lammich 🌐 and Simon Wimmer 🌐
Jan 15

2018

VerifyThis 2018 - Polished Isabelle Solutions

by Peter Lammich 🌐 and Simon Wimmer 🌐
Apr 27

2017

The string search algorithm by Knuth, Morris and Pratt

by Fabian Hellauer πŸ“§ and Peter Lammich 🌐
Dec 18
Formalizing Push-Relabel Algorithms

by Peter Lammich 🌐 and S. Reza Sefidgar
Jun 01
Flow Networks and the Min-Cut-Max-Flow Theorem

by Peter Lammich 🌐 and S. Reza Sefidgar
Jun 01
The Floyd-Warshall Algorithm for Shortest Paths

by Simon Wimmer 🌐 and Peter Lammich 🌐
May 08

2016

Formalizing the Edmonds-Karp Algorithm

by Peter Lammich πŸ“§ and S. Reza Sefidgar
Aug 12
The Imperative Refinement Framework

by Peter Lammich 🌐
Aug 08
A Framework for Verifying Depth-First Search Algorithms

by Peter Lammich 🌐 and RenΓ© Neumann πŸ“§
Jul 05
Algorithms for Reduced Ordered Binary Decision Diagrams

by Julius Michaelis 🌐, Max W. Haslbeck 🌐, Peter Lammich 🌐 and Lars Hupel 🌐
Apr 27

2014

Verified Efficient Implementation of Gabow's Strongly Connected Components Algorithm

by Peter Lammich 🌐
May 28
The CAVA Automata Library

by Peter Lammich 🌐
May 28
Converting Linear-Time Temporal Logic to Generalized BΓΌchi Automata

by Alexander Schimpf πŸ“§ and Peter Lammich 🌐
May 28
-
A Fully Verified Executable LTL Model Checker

by Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐
+
A Fully Verified Executable LTL Model Checker

by Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐 May 28
Bounded-Deducibility Security

by Andrei Popescu 🌐, Peter Lammich 🌐 and Thomas Bauereiss πŸ“§
Apr 22
A shallow embedding of HyperCTL*

by Markus N. Rabe 🌐, Peter Lammich 🌐 and Andrei Popescu 🌐
Apr 16

2013

Automatic Data Refinement

by Peter Lammich πŸ“§
Oct 02

2012

A Separation Logic Framework for Imperative HOL

by Peter Lammich 🌐 and Rene Meis πŸ“§
Nov 14
Refinement for Monadic Programs

by Peter Lammich 🌐
Jan 30
Dijkstra's Shortest Path Algorithm

by Benedikt Nordhoff πŸ“§ and Peter Lammich 🌐
Jan 30

2010

Finger Trees

by Benedikt Nordhoff πŸ“§, Stefan KΓΆrner πŸ“§ and Peter Lammich 🌐
Oct 28
Binomial Heaps and Skew Binomial Heaps

by Rene Meis πŸ“§, Finn Nielsen πŸ“§ and Peter Lammich 🌐
Oct 28

2009

Tree Automata

by Peter Lammich 🌐
Nov 25
Collections Framework

by Peter Lammich 🌐
Nov 25

2007

Formalization of Conflict Analysis of Programs with Procedures, Thread Creation, and Monitors

by Peter Lammich 🌐 and Markus Müller-Olm 🌐
Dec 14
\ No newline at end of file diff --git a/web/authors/lochbihler/index.html b/web/authors/lochbihler/index.html --- a/web/authors/lochbihler/index.html +++ b/web/authors/lochbihler/index.html @@ -1,267 +1,267 @@ lochbihler - Archive of Formal Proofs

Andreas Lochbihler

Homepages 🌐

Entries

2021

2020

2019

2018

2017

2016

2015

Mar 30

2014

Oct 10

2013

Sep 17
Apr 15

2010

Aug 10
Feb 12

2009

May 06

2007

Dec 03
\ No newline at end of file diff --git a/web/authors/michaelis/index.html b/web/authors/michaelis/index.html --- a/web/authors/michaelis/index.html +++ b/web/authors/michaelis/index.html @@ -1,144 +1,144 @@ michaelis - Archive of Formal Proofs

Julius Michaelis

Homepages 🌐

Entries

2021

2017

Jun 21

2016

Oct 21
Aug 31
Aug 24
Jun 28
Apr 27
\ No newline at end of file diff --git a/web/authors/naraschewski/index.html b/web/authors/naraschewski/index.html --- a/web/authors/naraschewski/index.html +++ b/web/authors/naraschewski/index.html @@ -1,95 +1,95 @@ naraschewski - Archive of Formal Proofs

Wolfgang Naraschewski

Entries

2004

Mar 19
\ No newline at end of file diff --git a/web/authors/neumann/index.html b/web/authors/neumann/index.html --- a/web/authors/neumann/index.html +++ b/web/authors/neumann/index.html @@ -1,123 +1,123 @@ neumann - Archive of Formal Proofs

RenΓ© Neumann

E-Mails πŸ“§

Entries

2016

2014

May 28

2010

Oct 28
\ No newline at end of file diff --git a/web/authors/nipkow/index.html b/web/authors/nipkow/index.html --- a/web/authors/nipkow/index.html +++ b/web/authors/nipkow/index.html @@ -1,434 +1,434 @@ nipkow - Archive of Formal Proofs

Tobias Nipkow

Homepages 🌐

- +

Entries

2021

Dec 29
+
Isabelle's Metalogic: Formalization and Proof Checker

by Tobias Nipkow 🌐 and Simon Roßkopf 🌐
Apr 27

2020

-
Verified Approximation Algorithms

by Robin Eßmann πŸ“§, Tobias Nipkow 🌐, Simon Robillard 🌐 and Ujkan Sulejmani
+
Verified Approximation Algorithms

by Robin Eßmann πŸ“§, Tobias Nipkow 🌐, Simon Robillard 🌐 and Ujkan Sulejmani Jan 16
-
Closest Pair of Points Algorithms

by Martin Rau πŸ“§ and Tobias Nipkow 🌐
+
Closest Pair of Points Algorithms

by Martin Rau πŸ“§ and Tobias Nipkow 🌐 Jan 13

2019

-
Purely Functional, Simple, and Efficient Implementation of Prim and Dijkstra

by Peter Lammich 🌐 and Tobias Nipkow 🌐
+
Purely Functional, Simple, and Efficient Implementation of Prim and Dijkstra

by Peter Lammich 🌐 and Tobias Nipkow 🌐 Jun 25
-
Priority Search Trees

by Peter Lammich 🌐 and Tobias Nipkow 🌐
+
Priority Search Trees

by Peter Lammich 🌐 and Tobias Nipkow 🌐 Jun 25

2018

Optimal Binary Search Trees

by Tobias Nipkow 🌐 and DÑniel Somogyi
May 27
-
Monadification, Memoization and Dynamic Programming

by Simon Wimmer 🌐, Shuwei Hu πŸ“§ and Tobias Nipkow 🌐
+
Monadification, Memoization and Dynamic Programming

by Simon Wimmer 🌐, Shuwei Hu πŸ“§ and Tobias Nipkow 🌐 May 22
Weight-Balanced Trees

by Tobias Nipkow 🌐 and Stefan Dirix
Mar 13
Hoare Logics for Time Bounds

by Maximilian P. L. Haslbeck 🌐 and Tobias Nipkow 🌐
Feb 26
Treaps

by Max W. Haslbeck 🌐, Manuel Eberl 🌐 and Tobias Nipkow 🌐
Feb 06

2017

-
Root-Balanced Tree

by Tobias Nipkow 🌐
+
Root-Balanced Tree

by Tobias Nipkow 🌐 Aug 20
-
Propositional Proof Systems

by Julius Michaelis 🌐 and Tobias Nipkow 🌐
+
Propositional Proof Systems

by Julius Michaelis 🌐 and Tobias Nipkow 🌐 Jun 21

2016

-
Abstract Interpretation of Annotated Commands

by Tobias Nipkow 🌐
+
Abstract Interpretation of Annotated Commands

by Tobias Nipkow 🌐 Nov 23
-
Pairing Heap

by Hauke Brinkop πŸ“§ and Tobias Nipkow 🌐
+
Pairing Heap

by Hauke Brinkop πŸ“§ and Tobias Nipkow 🌐 Jul 14
-
Analysis of List Update Algorithms

by Maximilian P. L. Haslbeck 🌐 and Tobias Nipkow 🌐
+
Analysis of List Update Algorithms

by Maximilian P. L. Haslbeck 🌐 and Tobias Nipkow 🌐 Feb 17

2015

-
Parameterized Dynamic Tables

by Tobias Nipkow 🌐
+
Parameterized Dynamic Tables

by Tobias Nipkow 🌐 Jun 07
-
Trie

by Andreas Lochbihler 🌐 and Tobias Nipkow 🌐
+
Trie

by Andreas Lochbihler 🌐 and Tobias Nipkow 🌐 Mar 30

2014

-
A Verified Compiler for Probability Density Functions

by Manuel Eberl 🌐, Johannes Hâlzl 🌐 and Tobias Nipkow 🌐
+
A Verified Compiler for Probability Density Functions

by Manuel Eberl 🌐, Johannes Hâlzl 🌐 and Tobias Nipkow 🌐 Oct 09
-
Priority Queues Based on Braun Trees

by Tobias Nipkow 🌐
+
Priority Queues Based on Braun Trees

by Tobias Nipkow 🌐 Sep 04
-
Skew Heap

by Tobias Nipkow 🌐
+
Skew Heap

by Tobias Nipkow 🌐 Aug 13
-
Splay Tree

by Tobias Nipkow 🌐
+
Splay Tree

by Tobias Nipkow 🌐 Aug 12
-
Amortized Complexity Verified

by Tobias Nipkow 🌐
+
Amortized Complexity Verified

by Tobias Nipkow 🌐 Jul 07
-
Decision Procedures for MSO on Words Based on Derivatives of Regular Expressions

by Dmitriy Traytel 🌐 and Tobias Nipkow 🌐
+
Decision Procedures for MSO on Words Based on Derivatives of Regular Expressions

by Dmitriy Traytel 🌐 and Tobias Nipkow 🌐 Jun 12
-
Boolean Expression Checkers

by Tobias Nipkow 🌐
+
Boolean Expression Checkers

by Tobias Nipkow 🌐 Jun 08
-
A Fully Verified Executable LTL Model Checker

by Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐
+
A Fully Verified Executable LTL Model Checker

by Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐 May 28
-
Unified Decision Procedures for Regular Expression Equivalence

by Tobias Nipkow 🌐 and Dmitriy Traytel 🌐
+
Unified Decision Procedures for Regular Expression Equivalence

by Tobias Nipkow 🌐 and Dmitriy Traytel 🌐 Jan 30

2012

-
Markov Models

by Johannes Hâlzl 🌐 and Tobias Nipkow 🌐
+
Markov Models

by Johannes Hâlzl 🌐 and Tobias Nipkow 🌐 Jan 03

2011

-
Gauss-Jordan Elimination for Matrices Represented as Functions

by Tobias Nipkow 🌐
+
Gauss-Jordan Elimination for Matrices Represented as Functions

by Tobias Nipkow 🌐 Aug 19

2010

-
Hall's Marriage Theorem

by Dongchen Jiang πŸ“§ and Tobias Nipkow 🌐
+
Hall's Marriage Theorem

by Dongchen Jiang πŸ“§ and Tobias Nipkow 🌐 Dec 17
-
Regular Sets and Expressions

by Alexander Krauss 🌐 and Tobias Nipkow 🌐
+
Regular Sets and Expressions

by Alexander Krauss 🌐 and Tobias Nipkow 🌐 May 12
-
List Index

by Tobias Nipkow 🌐
+
List Index

by Tobias Nipkow 🌐 Feb 20

2008

-
Fun With Tilings

by Tobias Nipkow 🌐 and Lawrence C. Paulson 🌐
+
Fun With Tilings

by Tobias Nipkow 🌐 and Lawrence C. Paulson 🌐 Nov 07
-
Arrow and Gibbard-Satterthwaite

by Tobias Nipkow 🌐
+
Arrow and Gibbard-Satterthwaite

by Tobias Nipkow 🌐 Sep 01
-
Fun With Functions

by Tobias Nipkow 🌐
+
Fun With Functions

by Tobias Nipkow 🌐 Aug 26
-
Normalization by Evaluation

by Klaus Aehlig 🌐 and Tobias Nipkow 🌐
+
Normalization by Evaluation

by Klaus Aehlig 🌐 and Tobias Nipkow 🌐 Feb 18
-
Quantifier Elimination for Linear Arithmetic

by Tobias Nipkow 🌐
+
Quantifier Elimination for Linear Arithmetic

by Tobias Nipkow 🌐 Jan 11

2006

-
Hotel Key Card System

by Tobias Nipkow 🌐
+
Hotel Key Card System

by Tobias Nipkow 🌐 Sep 09
-
Abstract Hoare Logics

by Tobias Nipkow 🌐
+
Abstract Hoare Logics

by Tobias Nipkow 🌐 Aug 08
-
Flyspeck I: Tame Graphs

by Gertrud Bauer and Tobias Nipkow 🌐
+
Flyspeck I: Tame Graphs

by Gertrud Bauer and Tobias Nipkow 🌐 May 22

2005

-
Jinja is not Java

by Gerwin Klein 🌐 and Tobias Nipkow 🌐
+
Jinja is not Java

by Gerwin Klein 🌐 and Tobias Nipkow 🌐 Jun 01

2004

-
Compiling Exceptions Correctly

by Tobias Nipkow 🌐
+
Compiling Exceptions Correctly

by Tobias Nipkow 🌐 Jul 09
-
Functional Automata

by Tobias Nipkow 🌐
+
Functional Automata

by Tobias Nipkow 🌐 Mar 30
-
Mini ML

by Wolfgang Naraschewski and Tobias Nipkow 🌐
+
Mini ML

by Wolfgang Naraschewski and Tobias Nipkow 🌐 Mar 19
-
AVL Trees

by Tobias Nipkow 🌐 and Cornelia Pusch
+
AVL Trees

by Tobias Nipkow 🌐 and Cornelia Pusch Mar 19
\ No newline at end of file diff --git a/web/authors/paulson/index.html b/web/authors/paulson/index.html --- a/web/authors/paulson/index.html +++ b/web/authors/paulson/index.html @@ -1,296 +1,296 @@ paulson - Archive of Formal Proofs

Lawrence C. Paulson

Homepages 🌐

E-Mails πŸ“§

Entries

2022

2021

2020

2019

2018

2016

2015

2014

2013

2012

2008

Nov 07
\ No newline at end of file diff --git a/web/authors/pusch/index.html b/web/authors/pusch/index.html --- a/web/authors/pusch/index.html +++ b/web/authors/pusch/index.html @@ -1,95 +1,95 @@ pusch - Archive of Formal Proofs

Cornelia Pusch

Entries

2004

Mar 19
\ No newline at end of file diff --git a/web/authors/rau/index.html b/web/authors/rau/index.html --- a/web/authors/rau/index.html +++ b/web/authors/rau/index.html @@ -1,107 +1,107 @@ rau - Archive of Formal Proofs

Martin Rau

E-Mails πŸ“§

Entries

2020

Jan 13

2019

May 30
\ No newline at end of file diff --git a/web/authors/robillard/index.html b/web/authors/robillard/index.html --- a/web/authors/robillard/index.html +++ b/web/authors/robillard/index.html @@ -1,98 +1,98 @@ robillard - Archive of Formal Proofs

Simon Robillard

Homepages 🌐

Entries

2020

Jan 16
\ No newline at end of file diff --git a/web/authors/rosskopf/index.html b/web/authors/rosskopf/index.html --- a/web/authors/rosskopf/index.html +++ b/web/authors/rosskopf/index.html @@ -1,98 +1,98 @@ rosskopf - Archive of Formal Proofs

Simon Roßkopf

Homepages 🌐

Entries

2021

Apr 27
\ No newline at end of file diff --git a/web/authors/schimpf/index.html b/web/authors/schimpf/index.html --- a/web/authors/schimpf/index.html +++ b/web/authors/schimpf/index.html @@ -1,105 +1,105 @@ schimpf - Archive of Formal Proofs

Alexander Schimpf

E-Mails πŸ“§

Entries

2014

May 28
\ No newline at end of file diff --git a/web/authors/smaus/index.html b/web/authors/smaus/index.html --- a/web/authors/smaus/index.html +++ b/web/authors/smaus/index.html @@ -1,98 +1,98 @@ smaus - Archive of Formal Proofs

Jan-Georg Smaus

Homepages 🌐

Entries

2014

May 28
\ No newline at end of file diff --git a/web/authors/sulejmani/index.html b/web/authors/sulejmani/index.html --- a/web/authors/sulejmani/index.html +++ b/web/authors/sulejmani/index.html @@ -1,95 +1,95 @@ sulejmani - Archive of Formal Proofs

Ujkan Sulejmani

Entries

2020

Jan 16
\ No newline at end of file diff --git a/web/authors/traytel/index.html b/web/authors/traytel/index.html --- a/web/authors/traytel/index.html +++ b/web/authors/traytel/index.html @@ -1,261 +1,261 @@ traytel - Archive of Formal Proofs

Dmitriy Traytel

Homepages 🌐

Entries

2021

2020

2019

2018

2017

2016

2015

2014

Jun 12
Apr 16
+
Unified Decision Procedures for Regular Expression Equivalence

by Tobias Nipkow 🌐 and Dmitriy Traytel 🌐
Jan 30

2013

A Codatatype of Formal Languages

by Dmitriy Traytel 🌐
Nov 15
\ No newline at end of file diff --git a/web/authors/wimmer/index.html b/web/authors/wimmer/index.html --- a/web/authors/wimmer/index.html +++ b/web/authors/wimmer/index.html @@ -1,172 +1,172 @@ wimmer - Archive of Formal Proofs

Simon Wimmer

Homepages 🌐

E-Mails πŸ“§

Entries

2019

2018

May 22
Apr 27

2017

May 08

2016

Mar 08

2013

Jul 22
Jul 22
\ No newline at end of file diff --git a/web/entries/AVL-Trees.html b/web/entries/AVL-Trees.html --- a/web/entries/AVL-Trees.html +++ b/web/entries/AVL-Trees.html @@ -1,155 +1,155 @@ AVL Trees - Archive of Formal Proofs

AVL Trees

-

Tobias Nipkow 🌐 and Cornelia Pusch +

Tobias Nipkow 🌐 and Cornelia Pusch

March 19, 2004

Abstract

Two formalizations of AVL trees with room for extensions. The first formalization is monolithic and shorter, the second one in two stages, longer and a bit simpler. The final implementation is the same. If you are interested in developing this further, please contact gerwin.klein@nicta.com.au.
BSD License

Change history

[2011-04-11] Ondrej Kuncar added delete function

Topics

Theories of AVL-Trees

\ No newline at end of file diff --git a/web/entries/Abs_Int_ITP2012.html b/web/entries/Abs_Int_ITP2012.html --- a/web/entries/Abs_Int_ITP2012.html +++ b/web/entries/Abs_Int_ITP2012.html @@ -1,186 +1,186 @@ Abstract Interpretation of Annotated Commands - Archive of Formal Proofs

Abstract Interpretation of Annotated Commands

-

Tobias Nipkow 🌐 +

Tobias Nipkow 🌐

November 23, 2016

Abstract

This is the Isabelle formalization of the material decribed in the eponymous ITP 2012 paper. It develops a generic abstract interpreter for a while-language, including widening and narrowing. The collecting semantics and the abstract interpreter operate on annotated commands: the program is represented as a syntax tree with the semantic information directly embedded, without auxiliary labels. The aim of the formalization is simplicity, not efficiency or precision. This is motivated by the inclusion of the material in a theorem prover based course on semantics. A similar (but more polished) development is covered in the book Concrete Semantics.
BSD License

Topics

Theories of Abs_Int_ITP2012

\ No newline at end of file diff --git a/web/entries/Abstract-Hoare-Logics.html b/web/entries/Abstract-Hoare-Logics.html --- a/web/entries/Abstract-Hoare-Logics.html +++ b/web/entries/Abstract-Hoare-Logics.html @@ -1,176 +1,176 @@ Abstract Hoare Logics - Archive of Formal Proofs

Abstract Hoare Logics

-

Tobias Nipkow 🌐 +

Tobias Nipkow 🌐

August 8, 2006

Abstract

These therories describe Hoare logics for a number of imperative language constructs, from while-loops to mutually recursive procedures. Both partial and total correctness are treated. In particular a proof system for total correctness of recursive procedures in the presence of unbounded nondeterminism is presented.
BSD License

Topics

Theories of Abstract-Hoare-Logics

\ No newline at end of file diff --git a/web/entries/Amortized_Complexity.html b/web/entries/Amortized_Complexity.html --- a/web/entries/Amortized_Complexity.html +++ b/web/entries/Amortized_Complexity.html @@ -1,201 +1,201 @@ Amortized Complexity Verified - Archive of Formal Proofs

Amortized Complexity Verified

-

Tobias Nipkow 🌐 +

Tobias Nipkow 🌐

July 7, 2014

Abstract

A framework for the analysis of the amortized complexity of functional data structures is formalized in Isabelle/HOL and applied to a number of standard examples and to the folowing non-trivial ones: skew heaps, splay trees, splay heaps and pairing heaps.

A preliminary version of this work (without pairing heaps) is described in a paper published in the proceedings of the conference on Interactive Theorem Proving ITP 2015. An extended version of this publication is available here.

BSD License

Change history

[2015-03-17] Added pairing heaps by Hauke Brinkop.
[2016-07-12] Moved splay heaps from here to Splay_Tree
[2016-07-14] Moved pairing heaps from here to the new Pairing_Heap

Topics

Theories of Amortized_Complexity

\ No newline at end of file diff --git a/web/entries/Approximation_Algorithms.html b/web/entries/Approximation_Algorithms.html --- a/web/entries/Approximation_Algorithms.html +++ b/web/entries/Approximation_Algorithms.html @@ -1,175 +1,175 @@ Verified Approximation Algorithms - Archive of Formal Proofs

Verified Approximation Algorithms

-

Robin Eßmann πŸ“§, Tobias Nipkow 🌐, Simon Robillard 🌐 and Ujkan Sulejmani +

Robin Eßmann πŸ“§, Tobias Nipkow 🌐, Simon Robillard 🌐 and Ujkan Sulejmani

January 16, 2020

Abstract

We present the first formal verification of approximation algorithms for NP-complete optimization problems: vertex cover, set cover, independent set, center selection, load balancing, and bin packing. The proofs correct incompletenesses in existing proofs and improve the approximation ratio in one case. A detailed description of our work (excluding center selection) has been published in the proceedings of IJCAR 2020.
BSD License

Topics

Theories of Approximation_Algorithms

\ No newline at end of file diff --git a/web/entries/ArrowImpossibilityGS.html b/web/entries/ArrowImpossibilityGS.html --- a/web/entries/ArrowImpossibilityGS.html +++ b/web/entries/ArrowImpossibilityGS.html @@ -1,167 +1,167 @@ Arrow and Gibbard-Satterthwaite - Archive of Formal Proofs

Arrow and Gibbard-Satterthwaite

-

Tobias Nipkow 🌐 +

Tobias Nipkow 🌐

September 1, 2008

Abstract

This article formalizes two proofs of Arrow's impossibility theorem due to Geanakoplos and derives the Gibbard-Satterthwaite theorem as a corollary. One formalization is based on utility functions, the other one on strict partial orders.

An article about these proofs is found here.
BSD License

Topics

Theories of ArrowImpossibilityGS

\ No newline at end of file diff --git a/web/entries/Boolean_Expression_Checkers.html b/web/entries/Boolean_Expression_Checkers.html --- a/web/entries/Boolean_Expression_Checkers.html +++ b/web/entries/Boolean_Expression_Checkers.html @@ -1,164 +1,164 @@ Boolean Expression Checkers - Archive of Formal Proofs

Boolean Expression Checkers

-

Tobias Nipkow 🌐 +

Tobias Nipkow 🌐

June 8, 2014

Abstract

This entry provides executable checkers for the following properties of boolean expressions: satisfiability, tautology and equivalence. Internally, the checkers operate on binary decision trees and are reasonably efficient (for purely functional algorithms).
BSD License

Change history

[2015-09-23] Salomon Sickert added an interface that does not require the usage of the Boolean formula datatype. Furthermore the general Mapping type is used instead of an association list.

Topics

Theories of Boolean_Expression_Checkers

Used by

\ No newline at end of file diff --git a/web/entries/CAVA_LTL_Modelchecker.html b/web/entries/CAVA_LTL_Modelchecker.html --- a/web/entries/CAVA_LTL_Modelchecker.html +++ b/web/entries/CAVA_LTL_Modelchecker.html @@ -1,227 +1,227 @@ A Fully Verified Executable LTL Model Checker - Archive of Formal Proofs

A Fully Verified Executable LTL Model Checker

-

Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐 +

Javier Esparza 🌐, Peter Lammich 🌐, RenΓ© Neumann πŸ“§, Tobias Nipkow 🌐, Alexander Schimpf πŸ“§ and Jan-Georg Smaus 🌐

May 28, 2014

Abstract

We present an LTL model checker whose code has been completely verified using the Isabelle theorem prover. The checker consists of over 4000 lines of ML code. The code is produced using the Isabelle Refinement Framework, which allows us to split its correctness proof into (1) the proof of an abstract version of the checker, consisting of a few hundred lines of ``formalized pseudocode'', and (2) a verified refinement step in which mathematical sets and other abstract structures are replaced by implementations of efficient structures like red-black trees and functional arrays. This leads to a checker that, while still slower than unverified checkers, can already be used as a trusted reference implementation against which advanced implementations can be tested.

An early version of this model checker is described in the CAV 2013 paper with the same title.

BSD License

Topics

Theories of SM_Base

    Theories of SM

    Theories of CAVA_Setup

      Theories of CAVA_LTL_Modelchecker

      \ No newline at end of file diff --git a/web/entries/Closest_Pair_Points.html b/web/entries/Closest_Pair_Points.html --- a/web/entries/Closest_Pair_Points.html +++ b/web/entries/Closest_Pair_Points.html @@ -1,177 +1,177 @@ Closest Pair of Points Algorithms - Archive of Formal Proofs

      Closest Pair of Points Algorithms

      -

      Martin Rau πŸ“§ and Tobias Nipkow 🌐 +

      Martin Rau πŸ“§ and Tobias Nipkow 🌐

      January 13, 2020

      Abstract

      This entry provides two related verified divide-and-conquer algorithms solving the fundamental Closest Pair of Points problem in Computational Geometry. Functional correctness and the optimal running time of O(n log n) are proved. Executable code is generated which is empirically competitive with handwritten reference implementations.
      BSD License

      Change history

      [2020-04-14] Incorporate Time_Monad of the AFP entry Root_Balanced_Tree.

      Topics

      Theories of Closest_Pair_Points

      \ No newline at end of file diff --git a/web/entries/Compiling-Exceptions-Correctly.html b/web/entries/Compiling-Exceptions-Correctly.html --- a/web/entries/Compiling-Exceptions-Correctly.html +++ b/web/entries/Compiling-Exceptions-Correctly.html @@ -1,152 +1,152 @@ Compiling Exceptions Correctly - Archive of Formal Proofs

      Compiling Exceptions Correctly

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      July 9, 2004

      Abstract

      An exception compilation scheme that dynamically creates and removes exception handler entries on the stack. A formalization of an article of the same name by Hutton and Wright.
      BSD License

      Topics

      Theories of Compiling-Exceptions-Correctly

      \ No newline at end of file diff --git a/web/entries/Density_Compiler.html b/web/entries/Density_Compiler.html --- a/web/entries/Density_Compiler.html +++ b/web/entries/Density_Compiler.html @@ -1,188 +1,188 @@ A Verified Compiler for Probability Density Functions - Archive of Formal Proofs

      A Verified Compiler for Probability Density Functions

      -

      Manuel Eberl 🌐, Johannes Hâlzl 🌐 and Tobias Nipkow 🌐 +

      Manuel Eberl 🌐, Johannes Hâlzl 🌐 and Tobias Nipkow 🌐

      October 9, 2014

      Abstract

      Bhat et al. [TACAS 2013] developed an inductive compiler that computes density functions for probability spaces described by programs in a probabilistic functional language. In this work, we implement such a compiler for a modified version of this language within the theorem prover Isabelle and give a formal proof of its soundness w.r.t. the semantics of the source and target language. Together with Isabelle's code generation for inductive predicates, this yields a fully verified, executable density compiler. The proof is done in two steps: First, an abstract compiler working with abstract functions modelled directly in the theorem prover's logic is defined and proved sound. Then, this compiler is refined to a concrete version that returns a target-language expression.

      An article with the same title and authors is published in the proceedings of ESOP 2015. A detailed presentation of this work can be found in the first author's master's thesis.

      BSD License

      Topics

      Theories of Density_Compiler

      \ No newline at end of file diff --git a/web/entries/Dynamic_Tables.html b/web/entries/Dynamic_Tables.html --- a/web/entries/Dynamic_Tables.html +++ b/web/entries/Dynamic_Tables.html @@ -1,172 +1,172 @@ Parameterized Dynamic Tables - Archive of Formal Proofs

      Parameterized Dynamic Tables

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      June 7, 2015

      Abstract

      This article formalizes the amortized analysis of dynamic tables parameterized with their minimal and maximal load factors and the expansion and contraction factors.

      A full description is found in a companion paper.

      BSD License

      Topics

      Theories of Dynamic_Tables

      \ No newline at end of file diff --git a/web/entries/Flyspeck-Tame.html b/web/entries/Flyspeck-Tame.html --- a/web/entries/Flyspeck-Tame.html +++ b/web/entries/Flyspeck-Tame.html @@ -1,212 +1,212 @@ Flyspeck I: Tame Graphs - Archive of Formal Proofs

      Flyspeck I: Tame Graphs

      -

      Gertrud Bauer and Tobias Nipkow 🌐 +

      Gertrud Bauer and Tobias Nipkow 🌐

      May 22, 2006

      Abstract

      These theories present the verified enumeration of tame plane graphs as defined by Thomas C. Hales in his proof of the Kepler Conjecture in his book Dense Sphere Packings. A Blueprint for Formal Proofs. [CUP 2012]. The values of the constants in the definition of tameness are identical to those in the Flyspeck project. The IJCAR 2006 paper by Nipkow, Bauer and Schultz refers to the original version of Hales' proof, the ITP 2011 paper by Nipkow refers to the Blueprint version of the proof.
      BSD License

      Change history

      [2010-11-02] modified theories to reflect the modified definition of tameness in Hales' revised proof.
      [2014-07-03] modified constants in def of tameness and Archive according to the final state of the Flyspeck proof.

      Topics

      Theories of Flyspeck-Tame

      Theories of Flyspeck-Tame-Computation

      Depends On

      Used by

      Related Entries

      \ No newline at end of file diff --git a/web/entries/FunWithFunctions.html b/web/entries/FunWithFunctions.html --- a/web/entries/FunWithFunctions.html +++ b/web/entries/FunWithFunctions.html @@ -1,152 +1,152 @@ Fun With Functions - Archive of Formal Proofs

      Fun With Functions

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      August 26, 2008

      Abstract

      This is a collection of cute puzzles of the form ``Show that if a function satisfies the following constraints, it must be ...'' Please add further examples to this collection!
      BSD License

      Topics

      Theories of FunWithFunctions

      \ No newline at end of file diff --git a/web/entries/FunWithTilings.html b/web/entries/FunWithTilings.html --- a/web/entries/FunWithTilings.html +++ b/web/entries/FunWithTilings.html @@ -1,161 +1,161 @@ Fun With Tilings - Archive of Formal Proofs

      Fun With Tilings

      -

      Tobias Nipkow 🌐 and Lawrence C. Paulson 🌐 +

      Tobias Nipkow 🌐 and Lawrence C. Paulson 🌐

      November 7, 2008

      Abstract

      Tilings are defined inductively. It is shown that one form of mutilated chess board cannot be tiled with dominoes, while another one can be tiled with L-shaped tiles. Please add further fun examples of this kind!
      BSD License

      Topics

      Theories of FunWithTilings

      \ No newline at end of file diff --git a/web/entries/Functional-Automata.html b/web/entries/Functional-Automata.html --- a/web/entries/Functional-Automata.html +++ b/web/entries/Functional-Automata.html @@ -1,179 +1,179 @@ Functional Automata - Archive of Formal Proofs

      Functional Automata

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      March 30, 2004

      Abstract

      This theory defines deterministic and nondeterministic automata in a functional representation: the transition function/relation and the finality predicate are just functions. Hence the state space may be infinite. It is shown how to convert regular expressions into such automata. A scanner (generator) is implemented with the help of functional automata: the scanner chops the input up into longest recognized substrings. Finally we also show how to convert a certain subclass of functional automata (essentially the finite deterministic ones) into regular sets.
      BSD License

      Topics

      Theories of Functional-Automata

      \ No newline at end of file diff --git a/web/entries/Gale_Shapley.html b/web/entries/Gale_Shapley.html --- a/web/entries/Gale_Shapley.html +++ b/web/entries/Gale_Shapley.html @@ -1,175 +1,175 @@ Gale-Shapley Algorithm - Archive of Formal Proofs

      Gale-Shapley Algorithm

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      December 29, 2021

      Abstract

      This is a stepwise refinement and proof of the Gale-Shapley stable matching (or marriage) algorithm down to executable code. Both a purely functional implementation based on lists and a functional implementation based on efficient arrays (provided by the Collections Framework in the AFP) are developed. The latter implementation runs in time O(n2) where n is the cardinality of the two sets to be matched.
      BSD License

      Topics

      Theories of Gale_Shapley

      \ No newline at end of file diff --git a/web/entries/Gauss-Jordan-Elim-Fun.html b/web/entries/Gauss-Jordan-Elim-Fun.html --- a/web/entries/Gauss-Jordan-Elim-Fun.html +++ b/web/entries/Gauss-Jordan-Elim-Fun.html @@ -1,164 +1,164 @@ Gauss-Jordan Elimination for Matrices Represented as Functions - Archive of Formal Proofs

      Gauss-Jordan Elimination for Matrices Represented as Functions

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      August 19, 2011

      Abstract

      This theory provides a compact formulation of Gauss-Jordan elimination for matrices represented as functions. Its distinctive feature is succinctness. It is not meant for large computations.
      BSD License

      Topics

      Theories of Gauss-Jordan-Elim-Fun

      Used by

      Related Entries

      \ No newline at end of file diff --git a/web/entries/HotelKeyCards.html b/web/entries/HotelKeyCards.html --- a/web/entries/HotelKeyCards.html +++ b/web/entries/HotelKeyCards.html @@ -1,157 +1,157 @@ Hotel Key Card System - Archive of Formal Proofs

      Hotel Key Card System

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      September 9, 2006

      Abstract

      Two models of an electronic hotel key card system are contrasted: a state based and a trace based one. Both are defined, verified, and proved equivalent in the theorem prover Isabelle/HOL. It is shown that if a guest follows a certain safety policy regarding her key cards, she can be sure that nobody but her can enter her room.
      BSD License

      Topics

      Theories of HotelKeyCards

      \ No newline at end of file diff --git a/web/entries/Jinja.html b/web/entries/Jinja.html --- a/web/entries/Jinja.html +++ b/web/entries/Jinja.html @@ -1,242 +1,242 @@ Jinja is not Java - Archive of Formal Proofs

      Jinja Is Not Java

      -

      Gerwin Klein 🌐 and Tobias Nipkow 🌐 +

      Gerwin Klein 🌐 and Tobias Nipkow 🌐

      June 1, 2005

      Abstract

      We introduce Jinja, a Java-like programming language with a formal semantics designed to exhibit core features of the Java language architecture. Jinja is a compromise between realism of the language and tractability and clarity of the formal semantics. The following aspects are formalised: a big and a small step operational semantics for Jinja and a proof of their equivalence; a type system and a definite initialisation analysis; a type safety proof of the small step semantics; a virtual machine (JVM), its operational semantics and its type system; a type safety proof for the JVM; a bytecode verifier, i.e. data flow analyser for the JVM; a correctness proof of the bytecode verifier w.r.t. the type system; a compiler and a proof that it preserves semantics and well-typedness. The emphasis of this work is not on particular language features but on providing a unified model of the source language, the virtual machine and the compiler. The whole development has been carried out in the theorem prover Isabelle/HOL.
      BSD License

      Topics

      Theories of Jinja

      \ No newline at end of file diff --git a/web/entries/LinearQuantifierElim.html b/web/entries/LinearQuantifierElim.html --- a/web/entries/LinearQuantifierElim.html +++ b/web/entries/LinearQuantifierElim.html @@ -1,179 +1,179 @@ Quantifier Elimination for Linear Arithmetic - Archive of Formal Proofs

      Quantifier Elimination for Linear Arithmetic

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      January 11, 2008

      Abstract

      This article formalizes quantifier elimination procedures for dense linear orders, linear real arithmetic and Presburger arithmetic. In each case both a DNF-based non-elementary algorithm and one or more (doubly) exponential NNF-based algorithms are formalized, including the well-known algorithms by Ferrante and Rackoff and by Cooper. The NNF-based algorithms for dense linear orders are new but based on Ferrante and Rackoff and on an algorithm by Loos and Weisspfenning which simulates infenitesimals. All algorithms are directly executable. In particular, they yield reflective quantifier elimination procedures for HOL itself. The formalization makes heavy use of locales and is therefore highly modular.
      BSD License

      Topics

      Theories of LinearQuantifierElim

      \ No newline at end of file diff --git a/web/entries/List-Index.html b/web/entries/List-Index.html --- a/web/entries/List-Index.html +++ b/web/entries/List-Index.html @@ -1,155 +1,155 @@ List Index - Archive of Formal Proofs

      List Index

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      February 20, 2010

      Abstract

      This theory provides functions for finding the index of an element in a list, by predicate and by value.
      BSD License

      Topics

      Theories of List-Index

      \ No newline at end of file diff --git a/web/entries/List_Update.html b/web/entries/List_Update.html --- a/web/entries/List_Update.html +++ b/web/entries/List_Update.html @@ -1,190 +1,190 @@ Analysis of List Update Algorithms - Archive of Formal Proofs

      Analysis of List Update Algorithms

      -

      Maximilian P. L. Haslbeck 🌐 and Tobias Nipkow 🌐 +

      Maximilian P. L. Haslbeck 🌐 and Tobias Nipkow 🌐

      February 17, 2016

      Abstract

      These theories formalize the quantitative analysis of a number of classical algorithms for the list update problem: 2-competitiveness of move-to-front, the lower bound of 2 for the competitiveness of deterministic list update algorithms and 1.6-competitiveness of the randomized COMB algorithm, the best randomized list update algorithm known to date. The material is based on the first two chapters of Online Computation and Competitive Analysis by Borodin and El-Yaniv.

      For an informal description see the FSTTCS 2016 publication Verified Analysis of List Update Algorithms by Haslbeck and Nipkow.

      BSD License

      Topics

      Theories of List_Update

      \ No newline at end of file diff --git a/web/entries/MSO_Regex_Equivalence.html b/web/entries/MSO_Regex_Equivalence.html --- a/web/entries/MSO_Regex_Equivalence.html +++ b/web/entries/MSO_Regex_Equivalence.html @@ -1,201 +1,201 @@ Decision Procedures for MSO on Words Based on Derivatives of Regular Expressions - Archive of Formal Proofs

      Decision Procedures for MSO on Words Based on Derivatives of Regular Expressions

      -

      Dmitriy Traytel 🌐 and Tobias Nipkow 🌐 +

      Dmitriy Traytel 🌐 and Tobias Nipkow 🌐

      June 12, 2014

      Abstract

      Monadic second-order logic on finite words (MSO) is a decidable yet expressive logic into which many decision problems can be encoded. Since MSO formulas correspond to regular languages, equivalence of MSO formulas can be reduced to the equivalence of some regular structures (e.g. automata). We verify an executable decision procedure for MSO formulas that is not based on automata but on regular expressions.

      Decision procedures for regular expression equivalence have been formalized before, usually based on Brzozowski derivatives. Yet, for a straightforward embedding of MSO formulas into regular expressions an extension of regular expressions with a projection operation is required. We prove total correctness and completeness of an equivalence checker for regular expressions extended in that way. We also define a language-preserving translation of formulas into regular expressions with respect to two different semantics of MSO.

      The formalization is described in this ICFP 2013 functional pearl.

      BSD License

      Topics

      Theories of MSO_Regex_Equivalence

      \ No newline at end of file diff --git a/web/entries/Markov_Models.html b/web/entries/Markov_Models.html --- a/web/entries/Markov_Models.html +++ b/web/entries/Markov_Models.html @@ -1,196 +1,196 @@ Markov Models - Archive of Formal Proofs

      Markov Models

      -

      Johannes Hâlzl 🌐 and Tobias Nipkow 🌐 +

      Johannes Hâlzl 🌐 and Tobias Nipkow 🌐

      January 3, 2012

      Abstract

      This is a formalization of Markov models in Isabelle/HOL. It builds on Isabelle's probability theory. The available models are currently Discrete-Time Markov Chains and a extensions of them with rewards.

      As application of these models we formalize probabilistic model checking of pCTL formulas, analysis of IPv4 address allocation in ZeroConf and an analysis of the anonymity of the Crowds protocol. See here for the corresponding paper.

      BSD License

      Topics

      Theories of Markov_Models

      \ No newline at end of file diff --git a/web/entries/Marriage.html b/web/entries/Marriage.html --- a/web/entries/Marriage.html +++ b/web/entries/Marriage.html @@ -1,157 +1,157 @@ Hall's Marriage Theorem - Archive of Formal Proofs

      Hall's Marriage Theorem

      -

      Dongchen Jiang πŸ“§ and Tobias Nipkow 🌐 +

      Dongchen Jiang πŸ“§ and Tobias Nipkow 🌐

      December 17, 2010

      Abstract

      Two proofs of Hall's Marriage Theorem: one due to Halmos and Vaughan, one due to Rado.
      BSD License

      Change history

      [2011-09-09] Added Rado's proof

      Topics

      Theories of Marriage

      Used by

      \ No newline at end of file diff --git a/web/entries/Metalogic_ProofChecker.html b/web/entries/Metalogic_ProofChecker.html --- a/web/entries/Metalogic_ProofChecker.html +++ b/web/entries/Metalogic_ProofChecker.html @@ -1,194 +1,194 @@ Isabelle's Metalogic: Formalization and Proof Checker - Archive of Formal Proofs

      Isabelle's Metalogic: Formalization and Proof Checker

      -

      Tobias Nipkow 🌐 and Simon Roßkopf 🌐 +

      Tobias Nipkow 🌐 and Simon Roßkopf 🌐

      April 27, 2021

      Abstract

      In this entry we formalize Isabelle's metalogic in Isabelle/HOL. Furthermore, we define a language of proof terms and an executable proof checker and prove its soundness wrt. the metalogic. The formalization is intentionally kept close to the Isabelle implementation(for example using de Brujin indices) to enable easy integration of generated code with the Isabelle system without a complicated translation layer. The formalization is described in our CADE 28 paper.
      BSD License

      Topics

      Theories of Metalogic_ProofChecker

      \ No newline at end of file diff --git a/web/entries/MiniML.html b/web/entries/MiniML.html --- a/web/entries/MiniML.html +++ b/web/entries/MiniML.html @@ -1,166 +1,166 @@ Mini ML - Archive of Formal Proofs

      Mini ML

      -

      Wolfgang Naraschewski and Tobias Nipkow 🌐 +

      Wolfgang Naraschewski and Tobias Nipkow 🌐

      March 19, 2004

      Abstract

      This theory defines the type inference rules and the type inference algorithm W for MiniML (simply-typed lambda terms with let) due to Milner. It proves the soundness and completeness of W w.r.t. the rules.
      BSD License

      Topics

      Theories of MiniML

      Related Entries

      \ No newline at end of file diff --git a/web/entries/Monad_Memo_DP.html b/web/entries/Monad_Memo_DP.html --- a/web/entries/Monad_Memo_DP.html +++ b/web/entries/Monad_Memo_DP.html @@ -1,208 +1,208 @@ Monadification, Memoization and Dynamic Programming - Archive of Formal Proofs

      Monadification, Memoization and Dynamic Programming

      -

      Simon Wimmer 🌐, Shuwei Hu πŸ“§ and Tobias Nipkow 🌐 +

      Simon Wimmer 🌐, Shuwei Hu πŸ“§ and Tobias Nipkow 🌐

      May 22, 2018

      Abstract

      We present a lightweight framework for the automatic verified (functional or imperative) memoization of recursive functions. Our tool can turn a pure Isabelle/HOL function definition into a monadified version in a state monad or the Imperative HOL heap monad, and prove a correspondence theorem. We provide a variety of memory implementations for the two types of monads. A number of simple techniques allow us to achieve bottom-up computation and space-efficient memoization. The framework’s utility is demonstrated on a number of representative dynamic programming problems. A detailed description of our work can be found in the accompanying paper [2].
      BSD License

      Topics

      Theories of Monad_Memo_DP

      \ No newline at end of file diff --git a/web/entries/NormByEval.html b/web/entries/NormByEval.html --- a/web/entries/NormByEval.html +++ b/web/entries/NormByEval.html @@ -1,152 +1,152 @@ Normalization by Evaluation - Archive of Formal Proofs

      Normalization by Evaluation

      -

      Klaus Aehlig 🌐 and Tobias Nipkow 🌐 +

      Klaus Aehlig 🌐 and Tobias Nipkow 🌐

      February 18, 2008

      Abstract

      This article formalizes normalization by evaluation as implemented in Isabelle. Lambda calculus plus term rewriting is compiled into a functional program with pattern matching. It is proved that the result of a successful evaluation is a) correct, i.e. equivalent to the input, and b) in normal form.
      BSD License

      Topics

      Theories of NormByEval

      \ No newline at end of file diff --git a/web/entries/Pairing_Heap.html b/web/entries/Pairing_Heap.html --- a/web/entries/Pairing_Heap.html +++ b/web/entries/Pairing_Heap.html @@ -1,178 +1,178 @@ Pairing Heap - Archive of Formal Proofs

      Pairing Heap

      -

      Hauke Brinkop πŸ“§ and Tobias Nipkow 🌐 +

      Hauke Brinkop πŸ“§ and Tobias Nipkow 🌐

      July 14, 2016

      Abstract

      This library defines three different versions of pairing heaps: a functional version of the original design based on binary trees [Fredman et al. 1986], the version by Okasaki [1998] and a modified version of the latter that is free of structural invariants.

      The amortized complexity of pairing heaps is analyzed in the AFP article Amortized Complexity.

      BSD License

      Extra 0

      Origin: This library was extracted from Amortized Complexity and extended.

      Topics

      Theories of Pairing_Heap

      \ No newline at end of file diff --git a/web/entries/Prim_Dijkstra_Simple.html b/web/entries/Prim_Dijkstra_Simple.html --- a/web/entries/Prim_Dijkstra_Simple.html +++ b/web/entries/Prim_Dijkstra_Simple.html @@ -1,185 +1,185 @@ Purely Functional, Simple, and Efficient Implementation of Prim and Dijkstra - Archive of Formal Proofs

      Purely Functional, Simple, and Efficient Implementation of Prim and Dijkstra

      -

      Peter Lammich 🌐 and Tobias Nipkow 🌐 +

      Peter Lammich 🌐 and Tobias Nipkow 🌐

      June 25, 2019

      Abstract

      We verify purely functional, simple and efficient implementations of Prim's and Dijkstra's algorithms. This constitutes the first verification of an executable and even efficient version of Prim's algorithm. This entry formalizes the second part of our ITP-2019 proof pearl Purely Functional, Simple and Efficient Priority Search Trees and Applications to Prim and Dijkstra.
      BSD License

      Topics

      Theories of Prim_Dijkstra_Simple

      \ No newline at end of file diff --git a/web/entries/Priority_Queue_Braun.html b/web/entries/Priority_Queue_Braun.html --- a/web/entries/Priority_Queue_Braun.html +++ b/web/entries/Priority_Queue_Braun.html @@ -1,160 +1,160 @@ Priority Queues Based on Braun Trees - Archive of Formal Proofs

      Priority Queues Based on Braun Trees

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      September 4, 2014

      Abstract

      This entry verifies priority queues based on Braun trees. Insertion and deletion take logarithmic time and preserve the balanced nature of Braun trees. Two implementations of deletion are provided.
      BSD License

      Change history

      [2019-12-16] Added theory Priority_Queue_Braun2 with second version of del_min

      Topics

      Theories of Priority_Queue_Braun

      \ No newline at end of file diff --git a/web/entries/Priority_Search_Trees.html b/web/entries/Priority_Search_Trees.html --- a/web/entries/Priority_Search_Trees.html +++ b/web/entries/Priority_Search_Trees.html @@ -1,179 +1,179 @@ Priority Search Trees - Archive of Formal Proofs

      Priority Search Trees

      -

      Peter Lammich 🌐 and Tobias Nipkow 🌐 +

      Peter Lammich 🌐 and Tobias Nipkow 🌐

      June 25, 2019

      Abstract

      We present a new, purely functional, simple and efficient data structure combining a search tree and a priority queue, which we call a priority search tree. The salient feature of priority search trees is that they offer a decrease-key operation, something that is missing from other simple, purely functional priority queue implementations. Priority search trees can be implemented on top of any search tree. This entry does the implementation for red-black trees. This entry formalizes the first part of our ITP-2019 proof pearl Purely Functional, Simple and Efficient Priority Search Trees and Applications to Prim and Dijkstra.
      BSD License

      Topics

      Theories of Priority_Search_Trees

      \ No newline at end of file diff --git a/web/entries/Propositional_Proof_Systems.html b/web/entries/Propositional_Proof_Systems.html --- a/web/entries/Propositional_Proof_Systems.html +++ b/web/entries/Propositional_Proof_Systems.html @@ -1,221 +1,221 @@ Propositional Proof Systems - Archive of Formal Proofs

      Propositional Proof Systems

      -

      Julius Michaelis 🌐 and Tobias Nipkow 🌐 +

      Julius Michaelis 🌐 and Tobias Nipkow 🌐

      June 21, 2017

      Abstract

      We formalize a range of proof systems for classical propositional logic (sequent calculus, natural deduction, Hilbert systems, resolution) and prove the most important meta-theoretic results about semantics and proofs: compactness, soundness, completeness, translations between proof systems, cut-elimination, interpolation and model existence.
      BSD License

      Topics

      Theories of Propositional_Proof_Systems

      \ No newline at end of file diff --git a/web/entries/Regex_Equivalence.html b/web/entries/Regex_Equivalence.html --- a/web/entries/Regex_Equivalence.html +++ b/web/entries/Regex_Equivalence.html @@ -1,185 +1,185 @@ Unified Decision Procedures for Regular Expression Equivalence - Archive of Formal Proofs

      Unified Decision Procedures for Regular Expression Equivalence

      -

      Tobias Nipkow 🌐 and Dmitriy Traytel 🌐 +

      Tobias Nipkow 🌐 and Dmitriy Traytel 🌐

      January 30, 2014

      Abstract

      We formalize a unified framework for verified decision procedures for regular expression equivalence. Five recently published formalizations of such decision procedures (three based on derivatives, two on marked regular expressions) can be obtained as instances of the framework. We discover that the two approaches based on marked regular expressions, which were previously thought to be the same, are different, and one seems to produce uniformly smaller automata. The common framework makes it possible to compare the performance of the different decision procedures in a meaningful way. The formalization is described in a paper of the same name presented at Interactive Theorem Proving 2014.
      BSD License

      Topics

      Theories of Regex_Equivalence

      \ No newline at end of file diff --git a/web/entries/Regular-Sets.html b/web/entries/Regular-Sets.html --- a/web/entries/Regular-Sets.html +++ b/web/entries/Regular-Sets.html @@ -1,183 +1,183 @@ Regular Sets and Expressions - Archive of Formal Proofs

      Regular Sets and Expressions

      -

      Alexander Krauss 🌐 and Tobias Nipkow 🌐 +

      Alexander Krauss 🌐 and Tobias Nipkow 🌐 with contributions from Manuel Eberl 🌐 and Christian Urban 🌐

      May 12, 2010

      Abstract

      This is a library of constructions on regular expressions and languages. It provides the operations of concatenation, Kleene star and derivative on languages. Regular expressions and their meaning are defined. An executable equivalence checker for regular expressions is verified; it does not need automata but works directly on regular expressions. By mapping regular expressions to binary relations, an automatic and complete proof method for (in)equalities of binary relations over union, concatenation and (reflexive) transitive closure is obtained.

      Extended regular expressions with complement and intersection are also defined and an equivalence checker is provided.

      BSD License

      Change history

      [2011-08-26] Christian Urban added a theory about derivatives and partial derivatives of regular expressions
      [2012-05-10] Tobias Nipkow added equivalence checking with partial derivatives

      Topics

      Theories of Regular-Sets

      \ No newline at end of file diff --git a/web/entries/Root_Balanced_Tree.html b/web/entries/Root_Balanced_Tree.html --- a/web/entries/Root_Balanced_Tree.html +++ b/web/entries/Root_Balanced_Tree.html @@ -1,188 +1,188 @@ Root-Balanced Tree - Archive of Formal Proofs

      Root-Balanced Tree

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      August 20, 2017

      Abstract

      Andersson introduced general balanced trees, search trees based on the design principle of partial rebuilding: perform update operations naively until the tree becomes too unbalanced, at which point a whole subtree is rebalanced. This article defines and analyzes a functional version of general balanced trees, which we call root-balanced trees. Using a lightweight model of execution time, amortized logarithmic complexity is verified in the theorem prover Isabelle.

      This is the Isabelle formalization of the material decribed in the APLAS 2017 article Verified Root-Balanced Trees by the same author, which also presents experimental results that show competitiveness of root-balanced with AVL and red-black trees.

      BSD License

      Topics

      Theories of Root_Balanced_Tree

      \ No newline at end of file diff --git a/web/entries/Skew_Heap.html b/web/entries/Skew_Heap.html --- a/web/entries/Skew_Heap.html +++ b/web/entries/Skew_Heap.html @@ -1,174 +1,174 @@ Skew Heap - Archive of Formal Proofs

      Skew Heap

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      August 13, 2014

      Abstract

      Skew heaps are an amazingly simple and lightweight implementation of priority queues. They were invented by Sleator and Tarjan [SIAM 1986] and have logarithmic amortized complexity. This entry provides executable and verified functional skew heaps.

      The amortized complexity of skew heaps is analyzed in the AFP entry Amortized Complexity.

      BSD License

      Topics

      Theories of Skew_Heap

      \ No newline at end of file diff --git a/web/entries/Splay_Tree.html b/web/entries/Splay_Tree.html --- a/web/entries/Splay_Tree.html +++ b/web/entries/Splay_Tree.html @@ -1,177 +1,177 @@ Splay Tree - Archive of Formal Proofs

      Splay Tree

      -

      Tobias Nipkow 🌐 +

      Tobias Nipkow 🌐

      August 12, 2014

      Abstract

      Splay trees are self-adjusting binary search trees which were invented by Sleator and Tarjan [JACM 1985]. This entry provides executable and verified functional splay trees as well as the related splay heaps (due to Okasaki).

      The amortized complexity of splay trees and heaps is analyzed in the AFP entry Amortized Complexity.

      BSD License

      Change history

      [2016-07-12] Moved splay heaps here from Amortized_Complexity

      Topics

      Theories of Splay_Tree

      \ No newline at end of file diff --git a/web/entries/Trie.html b/web/entries/Trie.html --- a/web/entries/Trie.html +++ b/web/entries/Trie.html @@ -1,174 +1,174 @@ Trie - Archive of Formal Proofs

      Trie

      -

      Andreas Lochbihler 🌐 and Tobias Nipkow 🌐 +

      Andreas Lochbihler 🌐 and Tobias Nipkow 🌐

      March 30, 2015

      Abstract

      This article formalizes the ``trie'' data structure invented by Fredkin [CACM 1960]. It also provides a specialization where the entries in the trie are lists.
      BSD License

      Extra 0

      Origin: This article was extracted from existing articles by the authors.

      Topics

      Theories of Trie

      \ No newline at end of file