-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cache reified lemmas with LetIn (#77)
Implementing a strategy devised in discussion with Andres: > Like, maybe we want to reify the cache using LetIn instead of let in, > have a variant of interp that takes a list of definitions (either > untyped or with types lifted from the syntax or maybe just with reified > types so that we can transport easily enough) that are supposed to be > equal to the cache, and proving equality with interp leaves over > subgoals for cache equality? > Have a version of interp that takes in a nat and asks for arguments > for the first n LetIns, and then does normal interp, and a lemma that > takes in n and the interps for the first n LetIns and proofs that the > values are correct, and proves that special interp equal to the normal > interp. Then we prove equality overall by App special_interp_eq [t; e; > constant1; eq_refl; constant1; eq_refl; ... ; constantn; eq_refl; > eq_refl] We use a slight variant of this, making use of the UnderLets monad to avoid the use of `nat`.
- Loading branch information
1 parent
8256bfb
commit e6e5e83
Showing
1 changed file
with
115 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters