Lean 4 fork for HoTT-compatible kernel extensions (Path types, transport, HITs). Maintained against upstream leanprover/lean4.
Find a file
Leonardo de Moura 769220fa4e fix(library/equations_compiler): structural recursion and partial equations
The equational compiler was failing to generate equational lemmas for
equations such as:

   def f : nat → nat → nat
   | (x+1) (y+1) := f (x+10) y
   | _     _     := 1

It would fail when trying to prove the following equation:

   forall x, f 0 x = 1

using a "refl" proof. This equation does not hold definitionally.
It is not blocked by the internal pattern matching based on the
cases_on recursor, but it is blocked by the outer most brec_on
used to implement structural recursion. The solution is to
"complete" the set of equations. So, the structural_rec
module will replace the equation above with

   def f : nat → nat → nat
   | (x+1) (y+1) := f (x+10) y
   | _     0     := 1
   | _     (y+1) := 1

and then (as before)

   def f : Pi (x y : nat), below y → nat
   | (x+1) (y+1) F := F^.fst^.fst (x+10)
   | _     0     F := 1
   | _     (y+1) F := 1
2017-02-16 14:51:31 -08:00
bin refactor(gitignore): remove old ignore entries 2016-12-10 08:42:39 -08:00
doc feat(kernel,library,frontends/lean,api): remove global universe levels from kernel and APIs 2017-02-08 17:41:44 -08:00
extras chore(extra/latex/*): update to changes in syntax 2017-01-03 11:22:04 -08:00
images chore(CMakeLists.txt): move Lean logo to make sure we can test leanemacs without installing Lean 2015-01-31 17:38:49 -08:00
library fix(library/equations_compiler): performance issues at structural_rec module and equational lemma generator 2017-02-15 21:31:28 -08:00
old_library refactor(gitignore): remove old ignore entries 2016-12-10 08:42:39 -08:00
script refactor(emacs/load-lean): install emacs dependencies directly from (M)ELPA 2016-12-02 16:50:50 -08:00
src fix(library/equations_compiler): structural recursion and partial equations 2017-02-16 14:51:31 -08:00
tests fix(library/equations_compiler): structural recursion and partial equations 2017-02-16 14:51:31 -08:00
tmp refactor(library/debugger): move debugger to tools 2016-12-17 10:50:13 -08:00
.appveyor.yml chore(CMakeLists): make sure we change the version number in a single place 2017-01-19 18:28:51 -08:00
.appveyor.yml.in chore(CMakeLists): make sure we change the version number in a single place 2017-01-19 18:28:51 -08:00
.codecov.yml feat(.travis.yml): add codecov 2016-12-02 17:01:58 -08:00
.gitignore chore(.gitignore): ignore VSCode config file 2016-12-18 12:35:25 -08:00
.travis.yml chore(.travis.yml): reduce ctest verbosity 2017-02-04 13:49:30 -08:00
.travis.yml.in chore(.travis.yml): reduce ctest verbosity 2017-02-04 13:49:30 -08:00
LICENSE Add LICENSE file 2013-07-15 18:55:48 -07:00
README.md workaround instruction for gperftools on macOS Sierra 2017-01-17 16:37:06 -08:00

logo

LicenseWindowsLinux / macOSTest Coverage
Codecov

Issue Stats

About

Requirements

Installing required packages at

Windows

Linux

OS X

Build Instructions

Miscellaneous