22 \author{Cezary Kaliszyk$^*$ and Christian Urban$^*$} |
22 \author{Cezary Kaliszyk$^*$ and Christian Urban$^*$} |
23 \institute{$^*$ Technical University of Munich, Germany} |
23 \institute{$^*$ Technical University of Munich, Germany} |
24 \maketitle |
24 \maketitle |
25 |
25 |
26 \begin{abstract} |
26 \begin{abstract} |
27 Higher-order logic (HOL), used in several theorem provers, is based on a |
27 Higher-order logic (HOL), used in several theorem provers, is based on a small |
28 small logic kernel, whose only mechanism for extension is the introduction |
28 logic kernel, whose only mechanism for extension is the introduction of safe |
29 of safe definitions and non-empty types. Both extensions are often performed by |
29 definitions and non-empty types. Both extensions are often performed by |
30 quotient constructions; for example finite sets are constructed by quotienting |
30 quotient constructions; for example finite sets are constructed by quotienting |
31 lists, or integers by quotienting pairs of natural numbers. To ease the work |
31 lists, or integers by quotienting pairs of natural numbers. To ease the work |
32 involved with quotient constructions, we re-implemented in Isabelle/HOL |
32 involved with quotient constructions, we re-implemented in Isabelle/HOL the |
33 the quotient package by Homeier. In doing so we extended his work |
33 quotient package by Homeier. In doing so we extended his work in order to deal |
34 in order to deal with compositions of quotients. Also, we designed |
34 with compositions of quotients. Also, we designed our quotient package so that |
35 our quotient package so that every step in a quotient construction |
35 every step in a quotient construction can be performed separately and as a |
36 can be performed separately. The importance to programming language research |
36 result were able to specify completely the procedure of lifting theorems from |
37 is that many properties of programming languages are more convenient to verify |
37 the raw level to the quotient level. The importance to programming language |
38 over $\alpha$-quotient terms, than over raw terms. |
38 research is that many properties of programming languages are more convenient |
|
39 to verify over $\alpha$-quotient terms, than over raw terms. |
39 \end{abstract} |
40 \end{abstract} |
40 |
41 |
41 % generated text of all theories |
42 % generated text of all theories |
42 \input{session} |
43 \input{session} |
43 |
44 |