From: Tobias Nipkow <nipkow@in.tum.de>
Verifying a Decision Procedure for Pattern Completeness
René Thiemann and Akihisa Yamada
Pattern completeness is the property that the left-hand sides of a functional
program or term rewrite system cover all cases w.r.t. pattern matching. We
verify a recent (abstract) decision procedure for pattern completeness that
covers the general case, i.e., in particular without the usual restriction of
left-linearity. In two refinement steps, we further develop an executable
version of that abstract algorithm. On our example suite, this verified
implementation is faster than other implementations that are based on
alternative (unverified) approaches, including the complement algorithm, tree
automata encodings, and even the pattern completeness check of the GHC Haskell
compiler.
https://www.isa-afp.org/entries/Pattern_Completeness.html
Sorted Terms
Akihisa Yamada and René Thiemann
This entry provides a basic library for many-sorted terms and algebras. We view
sorted sets just as partial maps from elements to sorts, and define sorted set
of terms reusing the data type from the existing library of (unsorted) first
order terms. All the existing functionality, such as substitutions and contexts,
can be reused without any modifications. We provide predicates stating what
substitutions or contexts are considered sorted, and prove facts that they
preserve sorts as expected.
https://www.isa-afp.org/entries/Sorted_Terms.html
Enjoy!
Last updated: Jan 04 2025 at 20:18 UTC