Quotient-Paper/Paper.thy
changeset 1978 8feedc0d4ea8
parent 1975 b1281a0051ae
child 1994 abada9e6f943
equal deleted inserted replaced
1977:3423051797ad 1978:8feedc0d4ea8
     7 
     7 
     8 section {* Introduction *}
     8 section {* Introduction *}
     9 
     9 
    10 text {* TBD *}
    10 text {* TBD *}
    11 
    11 
       
    12 subsection {* Contributions *}
    12 
    13 
       
    14 text {*
       
    15   We present the detailed lifting procedure, which was not shown before.
       
    16 
       
    17   The quotient package presented in this paper has the following
       
    18   advantages over existing packages:
       
    19   \begin{itemize}
       
    20 
       
    21   \item We define quotient composition, function map composition and
       
    22     relation map composition. This lets lifting polymorphic types with
       
    23     subtypes quotiented as well. We extend the notions of
       
    24     respectfullness and preservation to cope with quotient
       
    25     composition.
       
    26 
       
    27   \item We allow lifting only some occurrences of quotiented
       
    28     types. Rsp/Prs extended. (used in nominal)
       
    29 
       
    30   \item We regularize more thanks to new lemmas. (inductions in
       
    31     nominal).
       
    32 
       
    33   \item The quotient package is very modular. Definitions can be added
       
    34     separately, rsp and prs can be proved separately and theorems can
       
    35     be lifted on a need basis. (useful with type-classes).
       
    36 
       
    37   \item Can be used both manually (attribute, separate tactics,
       
    38     rsp/prs databases) and programatically (automated definition of
       
    39     lifted constants, the rsp proof obligations and theorem statement
       
    40     translation according to given quotients).
       
    41 
       
    42   \end{itemize}
       
    43 *}
       
    44 
       
    45 section {* Quotient Type*}
       
    46 
       
    47 text {*
       
    48   Defintion of quotient,
       
    49 
       
    50   Equivalence,
       
    51 
       
    52   Relation map and function map
       
    53 *}
       
    54 
       
    55 section {* Constants *}
       
    56 
       
    57 text {*
       
    58   Rep and Abs, Rsp and Prs
       
    59 *}
       
    60 
       
    61 section {* Lifting Theorems *}
       
    62 
       
    63 section {* Related Work *}
       
    64 
       
    65 text {*
       
    66   \begin{itemize}
       
    67 
       
    68   \item Peter Homeier's package (and related work from there), John
       
    69     Harrison's one.
       
    70 
       
    71   \item Manually defined quotients in Isabelle/HOL Library (Larry's
       
    72     quotients, Markus's Quotient\_Type, Dixon's FSet, \ldots)
       
    73 
       
    74   \item Oscar Slotosch defines quotient-type automatically but no
       
    75     lifting.
       
    76 
       
    77   \item PER. And how to avoid it.
       
    78 
       
    79   \item Necessity of Hilbert Choice op.
       
    80 
       
    81   \item Setoids in Coq
       
    82 
       
    83   \end{itemize}
       
    84 *}
    13 
    85 
    14 (*<*)
    86 (*<*)
    15 end
    87 end
    16 (*>*)
    88 (*>*)