equal
deleted
inserted
replaced
1262 spec: @{syntax typespec} @{syntax mixfix}? '=' \\ |
1262 spec: @{syntax typespec} @{syntax mixfix}? '=' \\ |
1263 @{syntax type} '/' ('partial' ':')? @{syntax term} \\ |
1263 @{syntax type} '/' ('partial' ':')? @{syntax term} \\ |
1264 (@'morphisms' @{syntax name} @{syntax name})?; |
1264 (@'morphisms' @{syntax name} @{syntax name})?; |
1265 "} |
1265 "} |
1266 |
1266 |
1267 The injection from a quotient type to a raw type is called @{text rep_t}, |
|
1268 its inverse @{text abs_t} unless explicit @{keyword (HOL) |
|
1269 "morphisms"} specification provides alternative names. |
|
1270 |
|
1271 @{rail " |
1267 @{rail " |
1272 @@{command (HOL) quotient_definition} constdecl? @{syntax thmdecl}? \\ |
1268 @@{command (HOL) quotient_definition} constdecl? @{syntax thmdecl}? \\ |
1273 @{syntax term} 'is' @{syntax term}; |
1269 @{syntax term} 'is' @{syntax term}; |
1274 |
1270 |
1275 constdecl: @{syntax name} ('::' @{syntax type})? @{syntax mixfix}? |
1271 constdecl: @{syntax name} ('::' @{syntax type})? @{syntax mixfix}? |
1276 "} |
1272 "} |
1277 |
1273 |
1278 \begin{description} |
1274 \begin{description} |
1279 |
1275 |
1280 \item @{command (HOL) "quotient_type"} defines quotient types. |
1276 \item @{command (HOL) "quotient_type"} defines quotient types. The injection from a quotient type |
|
1277 to a raw type is called @{text rep_t}, its inverse @{text abs_t} unless explicit @{keyword (HOL) |
|
1278 "morphisms"} specification provides alternative names. |
1281 |
1279 |
1282 \item @{command (HOL) "quotient_definition"} defines a constant on the quotient type. |
1280 \item @{command (HOL) "quotient_definition"} defines a constant on the quotient type. |
1283 |
1281 |
1284 \item @{command (HOL) "print_quotmaps"} prints quotient map functions. |
1282 \item @{command (HOL) "print_quotmaps"} prints quotient map functions. |
1285 |
1283 |