Jeremy Avigad
8a00a431e8
refactor(library/data/finset/basic): rename theorem
2015-12-31 15:16:57 -08:00
Jeremy Avigad
a28ded641c
refactor(library/algebra/interval): rename intervals to interval
2015-12-31 15:16:57 -08:00
Jeremy Avigad
86b64cf43b
feat(library/data/set/*,library/algebra/group_bigops): better finiteness lemmas, reindexing for big operations
2015-12-31 15:16:57 -08:00
Leonardo de Moura
c3dfabf741
feat(library/blast/strategies/portfolio): add 'rec_simp'
...
recursors followed by simplification
2015-12-31 15:00:38 -08:00
Leonardo de Moura
4134fdd925
feat(library/blast/strategies/rec_strategy): give priority to user defined recursors
2015-12-31 14:55:00 -08:00
Leonardo de Moura
bd03619b5c
refactor(library/data/list/basic): test 'rec_inst_simp' blast strategy
...
recursor + instantiate [simp] lemmas + congruence closure
2015-12-31 13:03:47 -08:00
Leonardo de Moura
b35abcc6a8
refactor(library): rename strategy "msimp" ==> "inst_simp"
...
"inst_simp" means "instantiate simplification lemmas"
The idea is to make it clear that this strategy is *not* a simplifier.
2015-12-31 12:45:48 -08:00
Leonardo de Moura
dc6a3e30c0
refactor(library): test simp and msimp in the standard library
2015-12-30 11:22:58 -08:00
Leonardo de Moura
41a01bb606
feat(library/blast/forward/ematch): add option 'blast.ematch.max_instances'
2015-12-29 20:36:11 -08:00
Leonardo de Moura
0148bb08fd
feat(library/blast): add 'ematch_simp' strategy for blast and msimp
shortcut for it.
...
This strategy is based on ematching and congruence closure, but it uses
the [simp] lemmas instead of [forward] lemmas.
2015-12-29 20:04:31 -08:00
Leonardo de Moura
7462874a4a
refactor(library): cleanup nat/int proofs
2015-12-29 12:39:53 -08:00
Leonardo de Moura
a307a0691b
refactor(library/data/nat/basic): cleanup some of the nat proofs
2015-12-29 11:43:56 -08:00
Leonardo de Moura
726867a8fb
refactor(library/algebra/ring): minor cleanup
2015-12-29 11:16:18 -08:00
Leonardo de Moura
3557bd36e7
refactor(library/algebra/group): cleanup proofs using simp and add [simp] attribute
2015-12-29 10:48:47 -08:00
Leonardo de Moura
b117a10f82
refactor(library/blast/simplifier): use priority_queue to store simp/congr lemmas, use name convention used at forward/backward lemmas, normalize lemmas when blast starts, cache get_simp_lemmas
2015-12-28 17:52:57 -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
Jeremy Avigad
c52ffda0e0
feat(library/algebra/intervals): add notation for intervals
2015-12-26 10:45:53 -08:00
Jeremy Avigad
395eab7c2c
feat(library/theories/topology/basic): start on topology (with Jacob Gross)
2015-12-26 10:29:58 -08:00
Jeremy Avigad
549feb5d7f
feat(library/data/set/basic): add notation and theorems for large unions and intersections
2015-12-26 08:02:04 -08:00
Jeremy Avigad
d83e5d25fc
feat(library/theories/measure_theory/extended_real): start on extended reals
2015-12-24 16:27:48 -05:00
Jeremy Avigad
84cdf3d36d
feat(library/theories/analysis/normed_space): start theory of normed spaces for analysis
2015-12-22 16:39:13 -05:00
Jeremy Avigad
08fbf127c6
feat(library/theories/analysis/metric_space,real_limit): define complete metric space, make real an instance
2015-12-22 16:39:13 -05:00
Jeremy Avigad
5b3fbf1618
feat(library/algebra/module): make a start on modules and vector spaces (with material from Nathaniel Thomas)
2015-12-22 16:39:13 -05:00
Jeremy Avigad
6913eb0c76
refactor(library/init/subtype.lean): put subtype notation in the namespace
...
The notation { x : A | P x } is overloaded in set, and is ambiguous.
2015-12-22 16:39:13 -05:00
Jeremy Avigad
8ccafc4267
fix(library/init/function): fix typo
2015-12-22 16:39:13 -05:00
Jeremy Avigad
baf11d0018
feat(library/algebra/ring_bigops): make start on file with more properties of sums and products
2015-12-22 16:39:13 -05:00
Jeremy Avigad
0e3b13f1a0
refactor(library/algebra): combine group_bigops and group_set_bigops
2015-12-22 16:39:13 -05:00
Soonho Kong
f1daf8f24e
fix(algebra/group.lean): remove unnecessary use of add.assoc from theorem bit0_add_bit1_helper
2015-12-22 09:12:57 -05:00
Floris van Doorn
da5f10ce63
feat(hott): minor fixes. allow the usage of numerals for trunc_index
2015-12-17 12:46:16 -08:00
Leonardo de Moura
61ecf018e9
feat(frontends/lean,library/tactic): add easy tactic parsing support for at ...
and with ...
2015-12-17 12:18:32 -08:00
Leonardo de Moura
c824a0e050
chore(library,hott): enforce naming conventions
2015-12-17 11:36:58 -08:00
Leonardo de Moura
13419d1561
chore(hott/library): cleanup
2015-12-17 11:31:07 -08:00
Leonardo de Moura
42eda36225
chore(library/algebra/ordered_ring): use 'note'
2015-12-15 09:33:57 -08:00
Sebastian Ullrich
2185ee7e95
feat(library/tactic): make let tactic transparent, introduce new opaque note tactic
...
The new let tactic is semantically equivalent to let terms, while `note`
preserves its old opaque behavior.
2015-12-14 10:14:02 -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
e3a35ba4fd
feat(frontends/lean): add 'with_attributes' tactical
...
closes #494
2015-12-13 18:27:44 -08:00
Leonardo de Moura
d4e49a8434
feat(library/tactic/intros_tactic): intro without argument should introduce a single variable
...
see #695
2015-12-13 16:28:39 -08:00
Leonardo de Moura
49eae56db4
test(library/theories/group_theory): test auto-include in the group theory library
2015-12-13 13:40:54 -08:00
Leonardo de Moura
ef546c5c5b
refactor(library): use anonymous instance implicit arguments
2015-12-13 11:46:48 -08:00
Floris van Doorn
2325d23f68
feat(hott): port nat and int from the standard library
2015-12-09 12:36:11 -08:00
Floris van Doorn
46739c8b70
feat(hott/algebra): port abstract structures
2015-12-09 12:34:06 -08:00
Leonardo de Moura
1b80dc0df6
feat(library/data/real/basic): improve performance
2015-12-09 10:57:16 -08:00
Jacob Gross
ab91f8dd5f
feat(library/data/set/basic): add sInter_insert
...
add sInter supporting lemma
2015-12-07 21:39:30 -08:00
Leonardo de Moura
50df6b5698
feat(frontends/lean): rename '[intro]' ==> '[intro!]' and '[backward]' ==> '[intro]'
2015-12-07 21:33:35 -08:00
Leonardo de Moura
041c1cbb17
feat(library/blast): add strategies "grind" and "core_grind"
2015-12-07 20:30:59 -08:00
Leonardo de Moura
48bc18d492
feat(library/blast/grinder/intro_elim_lemmas): add intro/elim lemmas validation
2015-12-07 18:43:15 -08:00
Leonardo de Moura
295b1d21f5
feat(frontends/lean): add '[intro]' and '[elim]' annotations
2015-12-07 18:43:15 -08:00
Leonardo de Moura
85379b7706
feat(library/blast/actions/simple_actions): make sure contradiction action works even if classical logic support is not enabled
...
not (not (not a)) -> not a
2015-12-07 09:30:14 -08:00
Leonardo de Moura
732a92de05
feat(frontends/lean): add 'simp' as shortcut for 'with_options [blast.strategy "simp"] blast'
2015-12-06 13:14:04 -08:00
Leonardo de Moura
b36ce49f2b
fix(tests,doc): adjust tests to changes in the standard library
2015-12-05 23:52:16 -08:00
Leonardo de Moura
b94e31a72c
refactor(library): remove algebra namespace
2015-12-05 23:50:01 -08:00
Daniel Selsam
7a117c45bf
feat(init/setoid): tag equivalence relation
2015-12-05 11:54:27 -08:00
Leonardo de Moura
fa938bb94c
feat(frontends/lean/decl_cmds): allow modifier to be provided after the 'attribute' keyword, test 'at' keyword
2015-12-05 11:50:08 -08:00
Daniel Selsam
934b502c6f
refactor(algebra/numeral): prove lemmas incrementally
2015-12-05 08:56:56 -08:00
Daniel Selsam
2e4765482b
fix(algebra/ring): fix names
2015-12-05 08:56:56 -08:00
Daniel Selsam
a04c28d4c9
refactor(library/algebra): construct simplifier sets incrementally
2015-12-04 18:28:56 -08:00
Leonardo de Moura
5da1b52e47
feat(library/blast/unit/unit_propagate): make sure unif_propagate works even if 'not' is marked as '[reducible]'
2015-12-04 16:49:21 -08:00
Leonardo de Moura
00e34683f2
feat(library/app_builder): (try to) address not-issue and other reducibility annotation related issues in the app_builder
2015-12-04 16:03:06 -08:00
Daniel Selsam
6e478696d2
feat(library/blast/unit): preprocessor placeholder
2015-12-04 08:30:04 -08:00
Daniel Selsam
2bf9989bd9
refactor(library/blast/unit): simplify module
2015-12-04 08:30:03 -08:00
Jacob Gross
dd6bed371a
feat(library/data/set/basic): Added a supporting lemma for sUnion, which will be essential for proofs by induction on finite sets
2015-12-02 23:05:59 -08:00
Joe Hendrix
719a78d541
style(library/data/bv): Use syntax for dite
2015-12-02 23:01:26 -08:00
Joe Hendrix
3574ad1f11
style(library/data/bv): Simplify from_bv and bv_mul
2015-12-02 23:01:26 -08:00
Joe Hendrix
fd1999a97f
feat(library/data/bv): Add signed/unsigned comparisons.
2015-12-02 23:01:26 -08:00
Joe Hendrix
5cf6e18af0
refactor(library/data/bv): Cleanup formatting inconsistencies
2015-12-02 23:01:26 -08:00
Joe Hendrix
3fddca81b5
feat(library/data/bv): Add preliminary bitvector ops.
2015-12-02 23:01:26 -08:00
Joe Hendrix
e4c839f362
feat(library/data/tuple): Add tuple combinators
2015-12-02 23:01:26 -08:00
Joe Hendrix
42afd89583
feat(library/data/list): Add additonal list combinators.
2015-12-02 23:01:26 -08:00
Joe Hendrix
63a17a3f48
feat(library/data/bool): Add bxor definition
2015-12-02 23:01:26 -08:00
Leonardo de Moura
5721bc13a7
feat(library/init/logic): annotate logical connectives as [no_pattern]
2015-11-24 18:48:22 -08:00
Leonardo de Moura
d240b06ba2
feat(library/init/logic): add new simp rules
2015-11-22 17:04:25 -08:00
Floris van Doorn
0537ef2bd9
chore(*): add me as author to files where I made nontrivial contributions
2015-11-22 14:21:26 -08:00
Floris van Doorn
482c68b387
feat(*/list): add some computation rules for lists in both libraries
2015-11-22 14:21:26 -08:00
Floris van Doorn
cc03ca9c6d
fix(reserved_notation): make :: bind stronger than ++
...
this allows us to write l1 ++ a :: l2 without parentheses
2015-11-22 14:21:26 -08:00
Floris van Doorn
5abc450fad
feat(list): port list.basic from the standard library
2015-11-22 14:21:26 -08:00
Leonardo de Moura
564e8f947d
refactor(library): cleanup
2015-11-22 14:10:02 -08:00
Leonardo de Moura
c49caf3740
feat(library/blast/congruence_closure): add support for user-defined congruence lemmas in the congruence closure module
2015-11-21 14:43:51 -08:00
Leonardo de Moura
5a98a2538c
refactor(library): move basic simp/congr rules to init folder, delete some legacy files
2015-11-20 16:38:10 -08:00
Leonardo de Moura
3de9a89d93
feat(library/blast/congruence_closure): congruence_closure basics
2015-11-17 18:45:22 -08:00
Daniel Selsam
2eeab1c757
fix(algebra/simplifier): use export
2015-11-16 20:39:15 -08:00
Daniel Selsam
49ff8640d9
fix(library/blast/simplifier): use ac rules for numerals
2015-11-16 20:39:15 -08:00
Daniel Selsam
8ca5d87f0b
feat(library/blast/simplifier): rely on norm_num for recursion
2015-11-16 20:33:22 -08:00
Leonardo de Moura
b3ca5faa49
fix(tests/lean): some of the simplifier tests
2015-11-16 11:01:53 -08:00
Leonardo de Moura
dfaf1c2ba3
refactor(library): move basic theorems to init, remove sorry's from algebra/simplifier.lean
2015-11-16 10:26:09 -08:00
Daniel Selsam
5e8068b2b2
feat(library/blast/simplifier): draft of fusion
2015-11-16 09:13:07 -08:00
Daniel Selsam
30b1b79c4e
fix(algebra/simplifier): update numeral simp rules
2015-11-16 09:12:29 -08:00
Leonardo de Moura
0dc31227f8
feat(library/init/logic): mark ne reducible
2015-11-15 15:09:02 -08:00
Leonardo de Moura
4d68e2a520
feat(library,hott): add eq.mpr and eq.mp lemmas
2015-11-14 15:40:47 -08:00
Daniel Selsam
4ba6b4f3f1
fix(algebra/simplifier): reference norm_num namespace
2015-11-12 21:28:11 -08:00
Daniel Selsam
00a5cd519e
feat(algebra/simplifier): simp rule set for units
2015-11-12 21:23:28 -08:00
Daniel Selsam
e7890fb456
feat(algebra/simplifier): useful simp rule sets
2015-11-12 21:23:28 -08:00
Jeremy Avigad
98ddc62f6c
feat(library/data/complex): add complex numbers
2015-11-12 21:05:38 -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
5ceac83b6a
feat(frontends/lean/elaborator): restrict the number of places where coercions are considered
...
We do not consider coercions around meta-variables anymore.
2015-11-11 12:37:19 -08:00
Leonardo de Moura
9bedbbb739
refactor(library,hott): remove coercions between algebraic structures
...
They are classes, and mixing coercion with type class resolution is a
recipe for disaster (aka counterintuitive behavior).
2015-11-11 11:57:44 -08:00
Daniel Selsam
bacb9f99aa
fix(logic/quantifiers): restore original
2015-11-08 14:05:03 -08:00
Daniel Selsam
34f4e315ee
feat(logic/quantifiers): tag congruence theorems
2015-11-08 14:05:02 -08:00
Jeremy Avigad
697df0e68c
refactor(library/*): use type classes for div and mod
2015-11-08 14:04:59 -08:00
Jeremy Avigad
eea4e4ec55
fix(tests/lean/*): fix tests
2015-11-08 14:04:59 -08:00
Jeremy Avigad
2beb0030d6
refactor(library/*): protect sub in nat, div in nat and int
2015-11-08 14:04:59 -08:00
Jeremy Avigad
b1719c3823
refactor(library/real/*): protect theorems
2015-11-08 14:04:59 -08:00
Jeremy Avigad
9e5a27dc77
refactor(library/{pnat,rat,real}/*): protect theorems in pnat and rat
2015-11-08 14:04:59 -08:00
Jeremy Avigad
da5bd03656
refactor(library/init/nat,library/data/nat/*): chagne dots to underscores in protected names
2015-11-08 14:04:59 -08:00
Jeremy Avigad
6dfaf1863c
refactor(library/data/int/{basic,order}): protect theorem names
2015-11-08 14:04:59 -08:00
Jeremy Avigad
dc8858d764
refactor(library/init/nat,library/): protect more nat theorems
2015-11-08 14:04:59 -08:00
Jeremy Avigad
7bb2ffb79a
refactor(library/data/nat/*): protect some theorems in nat
2015-11-08 14:04:59 -08:00
Leonardo de Moura
4eafcfe945
chore(library/data/fintype/function): fix indentation
2015-11-08 14:04:58 -08:00
Leonardo de Moura
33006919b3
refactor(library/theories/group_theory/hom): cleanup definition
2015-11-08 14:04:58 -08:00
Leonardo de Moura
a10aef0792
fix(library/data/tuple): modify definition to make sure we can compile it using new type class resolution procedure
...
The issue are universe level constraints that cannot be solved by the
new procedure.
2015-11-08 14:04:58 -08:00
Leonardo de Moura
5468076400
refactor(library/data): cleanup proofs
2015-11-08 14:04:58 -08:00
Leonardo de Moura
bd41b6ea13
refactor(library/data/rat/basic): cleanup proof
2015-11-08 14:04:58 -08:00
Leonardo de Moura
ac01e9e352
refactor(library/data/int/basic): cleanup proof
2015-11-08 14:04:58 -08:00
Leonardo de Moura
bceac9ece5
refactor(library/data/nat/sub): cleanup nasty proofs
2015-11-08 14:04:58 -08:00
Leonardo de Moura
c2ed5d3f1f
fix(library/algebra/category/constructions): make proof more robust
2015-11-08 14:04:58 -08:00
Leonardo de Moura
65d7c05737
fix(library/algebra/complete_lattice): avoid looping instances
2015-11-08 14:04:57 -08:00
Leonardo de Moura
9348701a5b
fix(library/logic/examples/instances_test): we do not support the set_option class.conservative false
anymore
2015-11-08 14:04:57 -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
13ccbaa0d9
refactor(library/data/encodable): mark auxiliary theorems as private
2015-11-08 14:04:56 -08:00
Leonardo de Moura
f14d0523ec
refactor(library/data/set/filter): add missing [instance] attribute
2015-11-08 14:04:56 -08:00
Leonardo de Moura
08c061e1fa
refactor(library/data/set): remove [reducible]
annotation from set operations
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
Rob Lewis
0aaa8a9770
feat(theories/analysis/real_limit): fix analysis.real_limit
2015-11-08 14:04:56 -08:00
Leonardo de Moura
6779cb4fc6
refactor(library/data/real/division): make sure \sy and / notation for reals is available even when we do not open the namespace algebra
2015-11-08 14:04:56 -08:00
Leonardo de Moura
7838ed386d
refactor(frontends/lean/pp,library/init/reserved_notation): pretty print "nat numerals" nicely even when namespace nat is not open
2015-11-08 14:04:56 -08:00
Leonardo de Moura
840f0ea05d
fix(library/theories/analysis/real_limit): minor
2015-11-08 14:04:55 -08:00
Leonardo de Moura
9fb59a05f5
fix(library/theories/analysis/metric_space): minor correction
2015-11-08 14:04:55 -08:00
Leonardo de Moura
fa937395d9
fix(library/data/real): minor adjustments
2015-11-08 14:04:55 -08:00
Rob Lewis
670ac6ae19
fix(real/order): remove sorry
2015-11-08 14:04:55 -08:00
Rob Lewis
06c1a97259
feat(library/real): fix real.complete
2015-11-08 14:04:55 -08:00
Rob Lewis
0d0df0417d
fix(library/real): fix real.division
2015-11-08 14:04:55 -08:00
Rob Lewis
f4e1f3bb1b
feat(library/data/real): fix real.order
2015-11-08 14:04:55 -08:00
Leonardo de Moura
fbe80d48dc
chore(library): remove "set_option pp.*" commands
2015-11-08 14:04:55 -08:00
Leonardo de Moura
ce21996635
feat(library): define custom recursors for nat, and minimize the use of krewrite
2015-11-08 14:04:55 -08:00
Leonardo de Moura
6e44a42779
refactor(library/data/int,library/data/rat): rename theorems: of_nat_zero, of_nat_one, of_int_zero, of_int_one
2015-11-08 14:04:55 -08:00
Leonardo de Moura
e8454fad26
fix(library/data/real/basic): remove obsolete notation declarations
2015-11-08 14:04:55 -08:00
Jeremy Avigad
7f88e9ad33
fix(library/data/real,library/theories/group_theory): group theory and real/basic
2015-11-08 14:04:55 -08:00
Jeremy Avigad
ffbb2be6ac
fix(library/theories/group_theory): group_theory
2015-11-08 14:04:55 -08:00
Leonardo de Moura
0eec984485
fix(library/data/equiv): minor adjustment
2015-11-08 14:04:55 -08:00
Leonardo de Moura
724aacb2c1
fix(library): remove "-[notations]" hack at "open -[notations] algebra"
2015-11-08 14:04:55 -08:00
Leonardo de Moura
26eb6fa849
feat(*): new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
8ee214f133
checkpoint: new numeral encoding
2015-11-08 14:04:55 -08:00
Leonardo de Moura
f6d22c0002
fix(library/theories/group_theory/finsubg): fix compilation errors
2015-11-08 14:04:55 -08:00
Leonardo de Moura
8657ccfc04
fix(library/data/int/gcd): remove sorry
2015-11-08 14:04:55 -08:00
Leonardo de Moura
a9f5735bb5
fix(library/data/int/basic): remove sorry's
2015-11-08 14:04:55 -08:00
Leonardo de Moura
843e95ade6
fix(library/data/real/basic): some real theorems
2015-11-08 14:04:55 -08:00
Leonardo de Moura
c0990d1902
fix(library/data/pnat): pnat with type classes
2015-11-08 14:04:55 -08:00
Leonardo de Moura
a23c05549e
fix(library/data/int/div): int div
2015-11-08 14:04:54 -08:00
Jeremy Avigad
1ffe62341b
fix(library/data/int): more int problems
2015-11-08 14:04:54 -08:00