| author | Christian Urban <urbanc@in.tum.de> |
| Tue, 22 Dec 2009 20:51:37 +0100 | |
| changeset 773 | d6acae26d027 |
| parent 768 | e9e205b904e2 |
| child 778 | 54f186bb5e3e |
| permissions | -rw-r--r-- |
Higher Priority =============== - if the constant definition gives the wrong definition term, one gets a cryptic message about get_fun - have FSet.thy to have a simple infrastructure for finite sets (syntax should be \<lbrace> \<rbrace>, look at Set.thy how syntax is been introduced) - Handle theorems that include Ball/Bex. Would it help if we introduced separate Bex and Ball constants for quotienting? - user should be able to give quotient_respects and preserves theorems in a more natural form. - the test in the (_, Const _) needs to be fixed Lower Priority ============== - Maybe a quotient_definition should already require a proof of the respectfulness (in this way one already excludes non-sensical definitions) - accept partial equvalence relations - think about what happens if things go wrong (like theorem cannot be lifted) / proper diagnostic messages for the user - inductions from the datatype package have a strange order of quantifiers in assumptions. - wrapper that translates an an original theorem given a list of quotient_types as an attribute - find clean ways how to write down the "mathematical" procedure for a possible submission (Peter submitted his work only to TPHOLs 2005...we would have to go maybe for the Journal of Formalised Mathematics) - use lower-case letters where appropriate in order to make Markus happy - add tests for adding theorems to the various thm lists - Check all the places where we do "handle _" - We shouldn't use the command 'quotient' as this shadows Larry's quotient. Call it 'quotient_type' - Maybe quotient and equiv theorems like the ones for [QuotList, QuotOption, QuotPair...] could be automatically proven? - Examples: Finite multiset. - The current syntax of the quotient_definition is "qconst :: qty" as "rconst" Is it possible to have the more Isabelle-like syntax qconst :: "qty" as "rconst" That means "qconst :: qty" is not read as a term, but as two entities.