# HG changeset patch # User Cezary Kaliszyk # Date 1276508527 -7200 # Node ID e907165b953b51bc0bb4d9892b816576fb0be516 # Parent 5e98b3f231a03a424e15270d09e291edc23fed49 qpaper / REG diff -r 5e98b3f231a0 -r e907165b953b Quotient-Paper/Paper.thy --- a/Quotient-Paper/Paper.thy Mon Jun 14 10:14:39 2010 +0200 +++ b/Quotient-Paper/Paper.thy Mon Jun 14 11:42:07 2010 +0200 @@ -417,7 +417,7 @@ \)"} and @{text "REP (\, \)"} whose clauses are given below. The idea behind them is to recursively descend into types @{text \} and @{text \}, and generate the appropriate @{text "Abs"} and @{text "Rep"} in places where the types differ. Therefore - we returning just the identity whenever the types are equal. All clauses + we return just the identity whenever the types are equal. All clauses are as follows: \begin{center} @@ -706,17 +706,23 @@ involving raw types are replaced by appropriate aggregate relations. It is defined as follows: - \begin{itemize} - \item @{text "REG (\x : \. t, \x : \. s) = \x : \. REG (t, s)"} - \item @{text "REG (\x : \. t, \x : \. s) = \x : \ \ Res (REL (\, \)). REG (t, s)"} - \item @{text "REG (\x : \. t, \x : \. s) = \x : \. REG (t, s)"} - \item @{text "REG (\x : \. t, \x : \. s) = \x : \ \ Res (REL (\, \)). REG (t, s)"} - \item @{text "REG ((op =) : \, (op =) : \) = (op =) : \"} - \item @{text "REG ((op =) : \, (op =) : \) = REL (\, \) : \"} - \item @{text "REG (t\<^isub>1 t\<^isub>2, s\<^isub>1 s\<^isub>2) = REG (t\<^isub>1, s\<^isub>1) REG (t\<^isub>2, s\<^isub>2)"} - \item @{text "REG (v\<^isub>1, v\<^isub>2) = v\<^isub>1"} - \item @{text "REG (c\<^isub>1, c\<^isub>2) = c\<^isub>1"} - \end{itemize} + \begin{center} + \begin{tabular}{rcl} + \multicolumn{3}{@ {\hspace{-4mm}}l}{abstractions (with same types and different types):}\\ + @{text "REG (\x : \. t, \x : \. s)"} & $\dn$ & @{text "\x : \. REG (t, s)"}\\ + @{text "REG (\x : \. t, \x : \. s)"} & $\dn$ & @{text "\x : \ \ Res (REL (\, \)). REG (t, s)"}\\ + \multicolumn{3}{@ {\hspace{-4mm}}l}{quantification (over same types and different types):}\\ + @{text "REG (\x : \. t, \x : \. s)"} & $\dn$ & @{text "\x : \. REG (t, s)"}\\ + @{text "REG (\x : \. t, \x : \. s)"} & $\dn$ & @{text "\x : \ \ Res (REL (\, \)). REG (t, s)"}\\ + \multicolumn{3}{@ {\hspace{-4mm}}l}{equality (with same types and different types):}\\ + @{text "REG ((op =) : \, (op =) : \)"} & $\dn$ & @{text "(op =) : \"}\\ + @{text "REG ((op =) : \, (op =) : \)"} & $\dn$ & @{text "REL (\, \) : \"}\\ + \multicolumn{3}{@ {\hspace{-4mm}}l}{application, variable, constant:}\\ + @{text "REG (t\<^isub>1 t\<^isub>2, s\<^isub>1 s\<^isub>2)"} & $\dn$ & @{text "REG (t\<^isub>1, s\<^isub>1) REG (t\<^isub>2, s\<^isub>2)"}\\ + @{text "REG (v\<^isub>1, v\<^isub>2)"} & $\dn$ & @{text "v\<^isub>1"}\\ + @{text "REG (c\<^isub>1, c\<^isub>2)"} & $\dn$ & @{text "c\<^isub>1"}\\ + \end{tabular} + \end{center} In the above definition we omitted the cases for existential quantifiers and unique existential quantifiers, as they are very similar to the cases