FIXME-TODO
author Cezary Kaliszyk <kaliszyk@in.tum.de>
Wed, 13 Jan 2010 16:23:32 +0100
changeset 865 5c6d76c3ba5c
parent 794 f0a78fda343f
child 866 f537d570fff8
permissions -rw-r--r--
Put relation_error as a separate function.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     1
Highest Priority
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     2
================
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     3
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     4
- better lookup mechanism for quotient definition
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     5
  (see fixme in quotient_term.ML)
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     6
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     7
- check needs to be fixed in mk_resp_arg (quotient_term.ML),
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     8
  see test for (_, Const _)
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
     9
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    10
- clever code in quotiet_tacs.ML needs to be turned into
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    11
  boring code
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    12
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    13
- comment about regularize tactic needs to be adapted
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    14
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    15
- Check all the places where we do "handle _"
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    16
  (They make code changes very difficult: I sat 1/2
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    17
  a day over a simplification of calculate_inst before
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    18
  I understood things; the reason was that my exceptions
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    19
  where caught by the catch all. There is no problem
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    20
  with throwing and handling exceptions...it just must
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    21
  be clear who throws what and what is thrown.)
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    22
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    23
503
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    24
Higher Priority
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    25
===============
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    26
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    27
- If the user defines twice the same quotient constant,
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    28
  for example funion, then the line 
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    29
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    30
    val Free (lhs_str, lhs_ty) = lhs
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    31
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    32
  in quotient_def raises a bind exception.
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    33
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    34
- If the constant definition gives the wrong definition
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    35
  term, one gets a cryptic message about absrep_fun
503
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    36
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    37
- have FSet.thy to have a simple infrastructure for 
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    38
  finite sets (syntax should be \<lbrace> \<rbrace>,
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    39
  look at Set.thy how syntax is been introduced)
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    40
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    41
- Handle theorems that include Ball/Bex. For this, would 
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    42
  it help if we introduced separate Bex and Ball constants 
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    43
  for quotienting?
512
8c7597b19f0e First version of the deterministic rep-abs-inj-tac.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 503
diff changeset
    44
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    45
- The user should be able to give quotient_respects and 
760
c1989de100b4 various tunings; map_lookup now raises an exception; addition to FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 753
diff changeset
    46
  preserves theorems in a more natural form.
503
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    47
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    48
503
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    49
Lower Priority
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    50
==============
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    51
768
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    52
- Maybe a quotient_definition should already require
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    53
  a proof of the respectfulness (in this way one
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    54
  already excludes non-sensical definitions)
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    55
778
54f186bb5e3e added "Highest Priority" category; and tuned slightly code
Christian Urban <urbanc@in.tum.de>
parents: 768
diff changeset
    56
- accept partial equivalence relations
716
1e08743b6997 FSet3 minor fixes + cases
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 713
diff changeset
    57
768
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    58
- think about what happens if things go wrong (like
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    59
  theorem cannot be lifted) / proper diagnostic 
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    60
  messages for the user
760
c1989de100b4 various tunings; map_lookup now raises an exception; addition to FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 753
diff changeset
    61
713
54cb69112477 Updated TODO list together.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 700
diff changeset
    62
- inductions from the datatype package have a strange
54cb69112477 Updated TODO list together.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 700
diff changeset
    63
  order of quantifiers in assumptions.
54cb69112477 Updated TODO list together.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 700
diff changeset
    64
794
f0a78fda343f added an item about when the same quotient constant is defined twice (throws a bind exception in quoteint_def.ML)
Christian Urban <urbanc@in.tum.de>
parents: 778
diff changeset
    65
- wrapper for lifting ... to be used as an attribute
713
54cb69112477 Updated TODO list together.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 700
diff changeset
    66
503
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    67
- find clean ways how to write down the "mathematical"
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    68
  procedure for a possible submission (Peter submitted 
d2c9a72e52e0 first version of internalised quotient theorems; added FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    69
  his work only to TPHOLs 2005...we would have to go
506
91c374abde06 removed quot argument...not all examples work anymore
Christian Urban <urbanc@in.tum.de>
parents: 503
diff changeset
    70
  maybe for the Journal of Formalised Mathematics)
91c374abde06 removed quot argument...not all examples work anymore
Christian Urban <urbanc@in.tum.de>
parents: 503
diff changeset
    71
515
b00a9b58264d Fixes after big merge.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 514
diff changeset
    72
- add tests for adding theorems to the various thm lists
b00a9b58264d Fixes after big merge.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 514
diff changeset
    73
746
5ef8be0175f6 FIXME/TODO.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 716
diff changeset
    74
- Maybe quotient and equiv theorems like the ones for
5ef8be0175f6 FIXME/TODO.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 716
diff changeset
    75
  [QuotList, QuotOption, QuotPair...] could be automatically
5ef8be0175f6 FIXME/TODO.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 716
diff changeset
    76
  proven?
753
544b05e03ec0 Removed lambdas on the right hand side. This fixes all 'PROBLEM' comments.
Cezary Kaliszyk <kaliszyk@in.tum.de>
parents: 746
diff changeset
    77
768
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    78
- Examples: Finite multiset.
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    79
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    80
- The current syntax of the quotient_definition is
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    81
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    82
      "qconst :: qty"
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    83
      as "rconst"
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    84
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    85
  Is it possible to have the more Isabelle-like
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    86
  syntax
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    87
   
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    88
      qconst :: "qty"
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    89
      as "rconst"
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    90
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    91
  That means "qconst :: qty" is not read as a term, but
e9e205b904e2 get_fun needed change to cope with "('a fset) fset" types...this needs composition (op o); now id_simps contains also id_o and o_id, and map_id is also added in QuotList.thy; regularize and cleaning needed to be hacked (indicated by "HACK")...THIS NEEDS ATTENTION!!!; except two lemmas in IntEx, all examples go through; added considerable material to FSet3; tuned FIXME-TODO
Christian Urban <urbanc@in.tum.de>
parents: 760
diff changeset
    92
  as two entities.