Commit graph

46 commits

Author SHA1 Message Date
Floris van Doorn
dc37ec954d refactor(hott): rename apdo to apd 2016-04-11 09:45:59 -07:00
Floris van Doorn
5cacebcf86 feat(hott): replace assert by have and merge namespace equiv.ops into equiv
The coercion A ≃ B -> (A -> B) is now in namespace equiv. The notation ⁻¹ for symmetry of equivalences is not supported anymore. Use ⁻¹ᵉ
2016-03-03 10:13:21 -08:00
Leonardo de Moura
101cf1ec4c feat(frontends/lean): remove difference between 'have' and 'assert' 2016-02-29 11:28:20 -08:00
Leonardo de Moura
30d6853ffd refactor(hott,tests): make sure HoTT library and tests still work if we introduce checkpoints in have-expressions 2016-02-04 16:58:32 -08:00
Leonardo de Moura
42fbc63bb6 fix(library/tc_multigraph): avoid name collisions
@avigad, @fpvandoorn, @rlewis1988, @dselsam

I changed how transitive instances are named.
The motivation is to avoid a naming collision problem found by Daniel.
Before this commit, we were getting an error on the following file
tests/lean/run/collision_bug.lean.

Now, transitive instances contain the prefix "_trans_".
It makes it clear this is an internal definition and it should not be used
by users.

This change also demonstrates (again) how the `rewrite` tactic is
fragile. The problem is that the matching procedure used by it has
very little support for solving matching constraints that involving type
class instances. Eventually, we will need to reimplement `rewrite`
using the new unification procedure used in blast.

In the meantime, the workaround is to use `krewrite` (as usual).
2016-02-04 13:15:42 -08:00
Leonardo de Moura
f177082c3b refactor(*): normalize metaclass names
@avigad and @fpvandoorn, I changed the metaclasses names. They
were not uniform:
- The plural was used in some cases (e.g., [coercions]).
- In other cases a cryptic name was used (e.g., [brs]).

Now, I tried to use the attribute name as the metaclass name whenever
possible. For example, we write

   definition foo [coercion] ...
   definition bla [forward] ...

and

  open [coercion] nat
  open [forward] nat

It is easier to remember and is uniform.
2015-12-28 10:39:15 -08:00
Leonardo de Moura
193a9d8cde refactor(library/norm_num): avoid manual constant name initialization
@rlewis1988 We group all Lean constants used in the C++ code at
src/library/constants.txt

Jeremy and Floris check this file before renaming constants in the
library. So, they can quickly decide whether C++ code will be affected
or not.

We also have a python script for initializing the C++ name objects.
To use the script:
   - go to src/library
   - execute
       python ../../script/gen_constants_cpp.py constants.txt

It will create the boring initialization and finalization code, and
declare a procedure get_<id>_name() for each constant in the file constants.txt.

I also move the norm_num1.lean to the set of unit tests that are
executed whenever we push a commit to the main branch.

I found an assertion violation at line 606. Could you take a look?

Best,
Leo
2015-12-13 21:38:59 -08:00
Leonardo de Moura
999f23cbc0 feat(kernel/expr_eq_fn): take names into account when CompareBinderInfo is true
This is the correct fix for the id declaration pretty printing
discrepancy reported by Daniel.

TODO: decide whether we need another eq-mode where names are ignored.
For example, in blast, it makes sense to increase sharing by ignoring
binder names.
2015-12-13 14:47:11 -08:00
Daniel Selsam
934b502c6f refactor(algebra/numeral): prove lemmas incrementally 2015-12-05 08:56:56 -08:00
Leonardo de Moura
f78e57fd52 feat(shell,frontends/lean): add command line option --dir
See #821
See #788
2015-11-19 08:34:23 -08:00
Rob Lewis
44a099f6f1 feat(norm_num): performance and style fixes 2015-11-12 20:53:37 -08:00
Rob Lewis
4bf0519843 feat(norm_num): numeral normalizer works for +, -, *, / 2015-11-12 20:53:37 -08:00
Rob Lewis
616450be64 feat(library/norm_num): extend norm_num to handle subtraction 2015-11-12 20:53:37 -08:00
Leonardo de Moura
ba477a0e98 feat(library/congr_lemma_manager): handle simple congruence lemmas 2015-11-08 14:05:02 -08:00
Leonardo de Moura
809168c05b test(tests/lean/extra): add temp test for congruence manager 2015-11-08 14:05:02 -08:00
Leonardo de Moura
c361fc1f6f fix(frontends/lean/parser): method for parsing decimals
"division" has been renamed to "div"
2015-11-08 14:04:59 -08:00
Rob Lewis
ce1cbcc205 feat(library/norm_num): give better error message when norm_num fails 2015-11-08 14:04:56 -08:00
Rob Lewis
958add9ef8 feat(library/norm_num): fix numeral normalization to work on new numeral structure; add support for multiplication 2015-11-08 14:04:56 -08:00
Leonardo de Moura
6df31d3406 refactor(library/data/nat/basic): mark some theorems as protected to avoid overloading 2015-11-08 14:04:56 -08:00
Leonardo de Moura
4e78e35f77 fix(tests/lean): adjust remaining tests to changes in the standard library 2015-11-08 14:04:56 -08:00
Leonardo de Moura
e4f0f6a9b4 feat(library): numeral normalization skeleton 2015-10-08 12:49:12 -07:00
Leonardo de Moura
9fcf3d4675 fix(tests/lean/extra): discrepancy between tests output when compiling Lean with IGNORE_SORRY 2015-08-18 12:42:22 -07:00
Leonardo de Moura
d2eb99bf11 refactor(library/logic): move logic/choice.lean to init/classical.lean
choice axiom is now in the classical namespace.
2015-08-12 18:37:33 -07:00
Leonardo de Moura
b4024982a2 refactor(library/data): move vector as indexed family to examples folder 2015-08-12 15:05:14 -07:00
Leonardo de Moura
0309a1e131 fix(tests/lean/extra/show_goal_bag): adjust test to recent changes in the standard library 2015-08-04 06:52:20 +02:00
Leonardo de Moura
656b642c4a fix(frontends/lean): identifier size when using unicode
see issue #756
2015-07-30 11:32:24 -07:00
Leonardo de Moura
cc4f18c062 feat(frontends/lean): add "--info" command line option for extracting identifier/keyword information
see issue #756
2015-07-30 10:18:03 -07:00
Leonardo de Moura
ed41a01a51 fix(frontends/lean/elaborator): fixes #755 2015-07-29 16:41:30 -07:00
Leonardo de Moura
cfa9412f96 fix(frontends/lean): "show goal" localization, add "position", support "by tactic" 2015-07-28 12:48:12 -07:00
Leonardo de Moura
08b23d8b4f test(tests/lean/extra): add test for "show goal" feature 2015-07-27 21:03:16 -07:00
Leonardo de Moura
a3b570c852 test(tests/lean/extra): test for Soonho 2015-07-27 19:32:27 -07:00
Leonardo de Moura
496189feed feat(kernel/default_converter): cache failures for (f t =?= f s) heuristic
See item 4 at
https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/lean-discuss/oJXwW5wT2Ds/d1Dgr8B-pE0J

See also
https://github.com/leanprover/lean/pull/659
2015-06-08 10:41:30 -07:00
Floris van Doorn
ff01774fd7 renaming(hit): rename type_quotient to quotient, and quotient to set_quotient
This renaming is because type_quotient is a nonstandard name.  I've had a discussion with Egbert
Rijke, Steve Awodey and Dan Licata, and the consensus for a better name was 'quotient'.  I had to
make changes in src/kernel/hits/hits.cpp, I renamed g_type_quotient* by g_hit_quotient* (to avoid
name clash the standard library quotient, although I don't know whether that name clash would
matter).
2015-06-04 20:14:13 -04:00
Floris van Doorn
a127a676eb fix(tests): fix tests to reflect changes 2015-05-26 21:37:02 -07:00
Leonardo de Moura
89581cead7 fix(frontends/lean/parser): fixes #616 2015-05-20 23:33:41 -07:00
Leonardo de Moura
e0b39079eb test(tests/lean/extra): add test for issue #597 2015-05-13 15:34:34 -07:00
Soonho Kong
8243ed6339 fix(test*.sh): allow spaces in filename
fix #515
2015-03-28 23:29:52 -04:00
Leonardo de Moura
2a6ccb252e test(tests/lean/extra): add regression tests for issue #422 2015-02-04 10:55:03 -08:00
Leonardo de Moura
9d1e312c12 test(tests/lean/extra): add extra tests for 'print' command 2015-02-01 20:20:26 -08:00
Leonardo de Moura
7d9d89bae6 test(tests/lean/extra): add test for saving recursive equation pre-terms 2015-02-01 19:49:14 -08:00
Leonardo de Moura
7f7d318b22 feat(library/definitional/equations): add dependent pattern matching compilation 2015-01-02 22:06:40 -08:00
Leonardo de Moura
86f3d029c7 test(tests/lean/extra): more tests for equations compiler 2014-12-15 19:22:17 -08:00
Leonardo de Moura
c9365db41b test(tests/lean/extra): more tests for equation elaborator 2014-12-12 15:43:41 -08:00
Leonardo de Moura
ab873cfff9 feat(frontends/lean/elaborator): replace metavariables in the equation lhs with fresh local constants before invoking compiler 2014-12-11 19:51:49 -08:00
Leonardo de Moura
91ce99d921 feat(frontends/lean): type check 'decreasing' proofs in definition using well-founded recursion 2014-12-11 18:13:35 -08:00
Leonardo de Moura
b8f665e561 feat(frontends/lean): elaborate recursive equations
Remark: we are not compiling them yet.
2014-12-10 22:25:40 -08:00