lean4-htt/src
Leonardo de Moura 641a4548b6 fix(library/tactic/cases_tactic): use inj_arrow instead no_confusion when index is a nested and/or mutually recursive datatype
The `no_confusion` construction is only generated for inductive
datatypes supported in the kernel.
Before this commit, given `h : T`, `cases h` could leak the internal encoding
used by the inductive compiler WHEN a nested and/or mutual inductive
datatype is used to index the inductive datatype `T`.
The new test exposes the problem.

The solution implemented in this commit uses inj_arrow lemmas
generated by the inductive compiler. We only use the lemmas
if the target is a proposition. If it is not, we sign an error.
The reason for this limitation is documented in the source code.

cc @jroesch @dselsam

Jared: the information leakage has been fixed. So, students will not be
confused by the internal encoding used in the inductive compiler.
I added the example I posted on slack as a new test.
Note that, the workaround I used has been removed.
2017-11-27 21:56:35 -08:00
..
api feat(kernel/expr): allow metavariables to have user-facing names 2017-07-16 07:16:41 -07:00
checker feat(kernel/expr): allow metavariables to have user-facing names 2017-07-16 07:16:41 -07:00
cmake chore(*): remove last remnants of mpfr 2017-02-24 21:42:58 +01:00
frontends fix(frontends/lean/parser): unicode pattern aliases 2017-11-27 12:43:15 +01:00
init feat(init/init): write allocation stats to stderr 2017-02-28 11:56:52 -08:00
kernel perf(library/equations_compiler): performance problem for definitions that produce many equational lemmas 2017-11-22 16:16:11 -08:00
library fix(library/tactic/cases_tactic): use inj_arrow instead no_confusion when index is a nested and/or mutually recursive datatype 2017-11-27 21:56:35 -08:00
shared fix(shared/init): shared library initialization 2016-12-05 16:48:29 -08:00
shell fix(shell/lean): add missing newline 2017-08-29 16:40:04 +02:00
tests chore(library/standard): remove standard.lean (unused, and confusing given stdlib) 2017-07-28 16:47:53 +01:00
util fix(util/utf8): UTF8 decoding 2017-10-27 09:48:09 -07:00
CMakeLists.txt chore(src/emacs): move lean-mode to https://github.com/leanprover/lean-mode 2017-10-06 10:46:43 -07:00
CTestConfig.cmake
CTestCustom.cmake.in
Doxyfile
githash.h.in
memcheck.supp
version.h.in