TODO
author Cezary Kaliszyk <kaliszyk@in.tum.de>
Mon, 20 Jun 2011 09:36:16 +0900
changeset 2873 fac8b28f2a23
parent 2783 8412c7e503d4
child 2874 1628e47fa57c
permissions -rw-r--r--
Update TODO

Function definitions

- nominal_datatype should export proofs about alpha_bn: reflexivity, induction, ...?

- nominal_datatype should declare xxx.fv_bn_eqvt as [eqvt]

- equations that talk about True/False, for example
    | "simp p (App t1 t2) = (if True then (App (simp p t1) (simp p t2)) else t1)"
  do not work (since 'function' does not work)

- equivariance for functions can be derived automatically (knowing termination and
  equivariance of the graph).

- for multiple simultanously defined functions, compatibility cases should fold the
  definition and derive eqvt_at for the folded one

- equivariance of the graph for multiple functions does not use equivariance
  infrastructure

Nominal_Datatype Parser should check that:

- types of bindings match types of binding functions
- fsets are not bound in lst bindings
- bound arguments are not datatypes
- binder is referred to by name and not by type

Smaller things:

- maybe <t1_t2>.perm_simps should be called permute_<type>.simps;
  that would conform with the terminology in Nominal2


Other:

- nested recursion, like types "trm list" in a constructor

- store information about defined nominal datatypes, so that
  it can be used to define new types that depend on these