aboutsummaryrefslogtreecommitdiff
path: root/todo
blob: 87fe2e220b1e7eaad035fa1723ab16cfb0ebf193 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
-*- mode:outline -*-

* Priorities
============
A (High)   to be fixed before release (Version 2.0)
B (Medium) desirable to fix at some point
C (Low)    probably not worth wasting time on

* This is a list of things which need doing in the generic interface
====================================================================

A Structured review of complete system. Is there redundant code?
  Can some of the LEGO/Coq specific code made generic? Re-engineering.
    (2h hhg & tms)

A Update source documentation and manual, in particular document bugs
  and workarounds
  (4h hhg & tms) 

A Implement more generic mechanism for large undos (2h)

    COQ: C-c u inside a Section should reset the whole section, then
         redo defns 

    LEGO: consider Discharge; perhaps unrol to the beginning of the
          module?
    
B Implement proof-find-previous-terminator and bind it to C-c C-a
  (45min tms)

B Technical documentation to record expertise and allow users of other
  proof systems to adopt generic package (40h hhg & tms)

A Fixing up errors caused by pbp-generated commands; currently, script
  management unwisely assumes that pbp commands cannot fail (2h tms)

C pbp code doesn't quite accord with the tech report; in particular it
  decodes annotations eagerly. Lazily would be faster, and it's what
  the tech report claims
  --- djs: probably not much faster, actually.

B file handling could be more robust; perhaps one should always cd to
  the directory corresponding to the script buffer (currently only
  done for the buffer which starts up the proof system) (30min tms)

B replace (current-buffer) by proof-shell-buffer/proof-script-buffer
  where ever possible (30 min tms)

B Allow bib-cite style clicking on Load/Import commands to go to file.

C LEGO and Coq modes overwrite each other.

C We need to go over to piped communication rather than ptys to fix
  the (Solaris) ^G bug. In this circumstance there's a bug in the
  eager annotation code

C Outline-mode does not work due to read-only restrictions of
  protected region

B Remove LEGO-specific code in proof.el: for example,
  proof-shell-eager-annotation-end, proof-included-files-list.
  (added by hhg)

* Here are things to be done to Lego mode
=========================================

A set up regular definitions to support definitions of the form
  id == term (10min; tms)

A fix Pbp implementation (10h; tms)

A LEGO mode might incorporate changes to Coq mode menu, in particular
  making help refer to the info file (30min tms)

A Sometimes e.g., ~tms/lego/imperative/recursion/Prepare_vc.l,
  annotations are recorded in the object file. This needs to be
  changed in the SML code. (initially 2h tms)

C Mechanism to save object file

A Equiv, Next,... aren't handled properly, because LEGO does not
  refresh the proof state. Perhaps it would be easiest to get LEGO to
  output more information in proof script mode (2h tms)

A Error messages need to be revised e.g., if an import fails, LEGO
  outputs

    Error in file: search: undefined or out of context: should
   (* closing file ./blah.l; time= 0.010000  gc= 0.0  sys= 0.0 *)
   Error: Unwinding to top-level

  but script management only prints the last line. (5h tms)

* Here are things to be done to Coq mode
========================================

B Add Patrick Loiseleur's commands to search for vernac or ml files.

C Sections and files are handled incorrectly.

A Lifted nested lemmas respond incorrectly to C-c u: Coq gets sent the
  correct command if I undo up to the lower lemma, but the buffer
  undoes to the upper lemma.  I.e., if I start Lemma x, then prove
  Lemma y, then finish x, and undo lemma x, then lemma y gets undone
  in the buffer as well. (45min hhg)
  [ This seems to have corrected itself... hhg ]

B Proof-by-Pointing (10h hhg)

A Add coq-add-tactic with a tactic name, which adds that tactic to the 
  undoable tactics and to the font-lock. (2h hhg)

* Emacs19
=========

B The proof-locked-span isn't set to read-only, because overlays don't 
  have that capability.  This needs to be done with text-regions.
  (2hr hhg)