forked from coq/coq
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reimplement ring reification in ltac instead of typeclasses
While we may at some point use an ocaml (or Ltac2?) implementation (for instance variable list manipulation is still done by side effect through the evar map, not the nicest), this helps find out what the typeclasses do when reifying. Notable finds: - the `reify` typeclass gets 1 instance outside Ncring_tac, from nsatz to reify IZR applied to ground ints. We replace this with a tactic redefition. Alternatives welcomed (redefinition isn't very modular so if we find another case we will have to come up with something). - typeclasses do some conversion, eg the instance ~~~coq Instance reify_zero (R:Type) lvar op `{Ring (T:=R)(ring0:=op)} : reify (ring0:=op)(PEc 0%Z) lvar op. ~~~ will also apply to `@zero R (@zero_notation R op ...)`. The reimplementation matches syntactically `op` (the one appearing in the type of the proof of `Ring` prealably inferred) and `@zero _ _`.
- Loading branch information
1 parent
ec31a6e
commit 9b0dbb4
Showing
5 changed files
with
132 additions
and
156 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
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
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
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
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