Leonardo de Moura
05f27b8f0e
feat(frontends/lean/structure): add option for controlling whether we automatically generate eta and projection-over-intro theorems for structures
...
It seems most of the time these theorems are not used at all.
They are just polluting the namespace.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-12-09 12:40:09 -08:00
Jakob von Raumer
116e7ff82e
feat(library/hott) port Jeremy's group file to use path equality
2014-12-09 10:00:37 -08:00
Jeremy Avigad
057615532e
feat(library/data/int): replace int definition with structure and better computational behavior
2014-12-05 22:24:42 -08:00
Jakob von Raumer
133f935fce
fix(library/hott): issues resulting from merge
2014-12-05 22:21:49 -08:00
Jakob von Raumer
7c1b75c818
feat(library/hott): add proof that the type of nat trafos is a set
...
The characteriszation of nat trafo by sigma types up to equivalence is still to be done (two unsuccessful proof attempts included)
2014-12-05 22:21:36 -08:00
Jakob von Raumer
cc2de8a8d9
feat(library/hott): complete proof that object types of proper hott categories are one truncated
2014-12-05 22:21:31 -08:00
Jakob von Raumer
aad4592cad
feat(library/hott): complete theorems about truncatedness of isomorphism sets
2014-12-05 22:21:26 -08:00
Jakob von Raumer
5923392395
chore(library/hott): make precategory use the isomorphic structure
2014-12-05 22:21:21 -08:00
Jakob von Raumer
63afac301c
chore(library/hott): turn isomorphic into structure
2014-12-05 22:21:16 -08:00
Jakob von Raumer
dbce41114a
feat(library/hott): add definition of category
2014-12-05 22:21:12 -08:00
Jakob von Raumer
39ba9429f5
chore(library/hott): make constructions.lean compile, still lots of work to do
2014-12-05 22:21:06 -08:00
Jakob von Raumer
91862926e3
chore(library/hott): change precategory to structure, fix morphism.lean
2014-12-05 22:20:57 -08:00
Jakob von Raumer
6124b87870
fix(library/hott): adjust expliciteness of arguments
2014-12-05 22:20:51 -08:00
Jakob von Raumer
cda828bfe8
chore(library/algebra): change category to be a structure
2014-12-05 22:20:46 -08:00
Jakob von Raumer
b37a77d25e
chore(library/hott): move precategory definition to its own folder
2014-12-05 22:20:40 -08:00
Jakob von Raumer
9631c6b1a1
feat(library/hott): add iso_of_path lemma for precategories
2014-12-05 22:20:33 -08:00
Jakob von Raumer
a1b468d104
feat(library/hott): port a part of algebra/category/constructions.lean, slice category still to do
2014-12-05 22:20:25 -08:00
Jakob von Raumer
67f71ee376
feat(library/hott): finish porting of natural_transformation.lean
2014-12-05 22:20:18 -08:00
Jakob von Raumer
ae618c20fb
fix(library/hott): finish associativity proof
2014-12-05 22:20:11 -08:00
Jakob von Raumer
d8e2206bbc
feat(library/hott): try to replace the proof irrelevance
2014-12-05 22:19:50 -08:00
Jakob von Raumer
5fe8ee606f
feat(library/hott): port Floris' category implementation
2014-12-05 22:19:26 -08:00
Leonardo de Moura
e72c4977f0
feat(frontends/lean): nicer notation for dependent if-then-else
2014-12-04 11:13:09 -08:00
Leonardo de Moura
7d19b5b743
refactor(library/data/vector): cleanup
2014-12-03 21:06:17 -08:00
Floris van Doorn
e52157a8ea
feat(hott/types): start characterization of pi-types and W-types
2014-12-03 20:29:16 -08:00
Floris van Doorn
2913035a61
style(hott/types): some style fixes in prod and sigma
2014-12-03 20:29:16 -08:00
Floris van Doorn
ff5e3d4403
style(hott/path): indent within namespace, add variables
2014-12-03 20:29:16 -08:00
Floris van Doorn
4b799a9da4
fix(hott/trunc): add explicit coercion so that the notation works if nat is not opened
2014-12-03 20:29:16 -08:00
Floris van Doorn
b62b4754cb
feat(library/algebra): modify categories to use definitions, prove basic theorems about discrete categories
2014-12-03 20:29:16 -08:00
Leonardo de Moura
811bc6a31f
feat(library/init/measurable): add 'measurable' type class
2014-12-03 18:54:24 -08:00
Leonardo de Moura
af978e40e8
refactor(library/data/option): move 'option' declaration to init.datatypes
2014-12-03 18:53:23 -08:00
Leonardo de Moura
fca97d5bb2
feat(library/definitional): add brec_on construction, closes #272
2014-12-03 10:39:32 -08:00
Jeremy Avigad
57effaf1a9
refactor(library/algebra): use new naming conventions, add information to speed up proofs
2014-12-02 12:14:14 -08:00
Jeremy Avigad
1bffd8dd21
refactor(library/algebra/order): change strong order pair, adopt new naming conventions
2014-12-02 12:14:14 -08:00
Leonardo de Moura
73429547ba
fix(init/reserved_notation): remove "invisible" character at \/
2014-12-02 12:06:39 -08:00
Leonardo de Moura
06f436840f
fix(library/unifier): postpone class-instance constraints whose type could not be inferred
2014-12-01 22:27:23 -08:00
Leonardo de Moura
e6672b958f
fix(library/tactic/inversion_tactic): add missing case
2014-12-01 19:11:44 -08:00
Leonardo de Moura
b094c1cf43
refactor(library/init): move num->nat coercion to init
2014-12-01 08:23:31 -08:00
Leonardo de Moura
5d4b6a3de2
chore(library/logic/logic.md): adjust documentation
2014-11-30 21:19:56 -08:00
Leonardo de Moura
697d4359e3
refactor(library): add 'init' folder
2014-11-30 20:34:12 -08:00
Leonardo de Moura
8dfd22e66c
feat(frontends/lean): add 'prelude' command, and init directory
2014-11-30 17:03:08 -08:00
Leonardo de Moura
7dc055cfc9
chore(library/data/nat/decl): remove leftover
2014-11-30 15:10:10 -08:00
Leonardo de Moura
dad94eafbe
refactor(data/nat/decl): use new naming convention at data/nat/decl.lean
2014-11-30 15:07:09 -08:00
Leonardo de Moura
f24eed50af
refactor(library/logic/heq): minor change
2014-11-30 13:52:34 -08:00
Leonardo de Moura
c08f4672e4
feat(library/tactic): add 'assert' tactic, closes #349
2014-11-29 21:34:49 -08:00
Leonardo de Moura
1a7dd56f0f
fix(library/tools/tactic): 'cases' argument precedence
2014-11-29 21:03:45 -08:00
Leonardo de Moura
f51fa93292
feat(library/tactic): add 'fapply' tactic, closes #356
2014-11-29 19:20:41 -08:00
Leonardo de Moura
2281fb30c8
refactor(library): use "symbolic" precedences in the standard library
2014-11-29 19:08:37 -08:00
Leonardo de Moura
2c0472252e
feat(frontends/lean): allow expressions to be used to define precedence, closes #335
2014-11-29 18:29:48 -08:00
Leonardo de Moura
bed9467315
chore(library/hott/trunc): remove set_option
2014-11-29 08:55:47 -08:00
Leonardo de Moura
d7042c4618
fix(library/logic/heq): heq.to_eq must be transparent because it is needed in the 'inversion' tactic used by definitional package
2014-11-28 23:49:17 -08:00
Leonardo de Moura
cab99e2e22
refactor(library/data/vector): simplify 'vector' using new 'inversion' tactic
2014-11-28 23:19:53 -08:00
Leonardo de Moura
ae0daf9639
fix(library/data/prod/decl): give preference to unicode version when pretty printing
2014-11-28 23:02:19 -08:00
Jeremy Avigad
a9001166fd
fix(library/algebra/category/morphism): remove sorry that was introduced by accident
2014-11-28 22:54:15 -08:00
Jeremy Avigad
bb8d436e75
refactor(library/algebra/relation, library/logic/instances): revise equivalence relations and congruences to use structure command
2014-11-28 22:54:15 -08:00
Jeremy Avigad
7571f50870
feat(library/binary, library/relation): introduce general properties for binary operations and relations
2014-11-28 22:54:15 -08:00
Jeremy Avigad
89380f088e
feat(library): reorganize and declare some notation
2014-11-28 22:54:15 -08:00
Jeremy Avigad
58e325f0af
feat(library/algebra): add to developments of group, ordered_group, and ring
2014-11-28 22:54:15 -08:00
Jeremy Avigad
f923d6a24c
feat(library/data/sum): use + notation for sum
2014-11-28 22:54:15 -08:00
Jakob von Raumer
7c81044a99
chore(library/hott) change is_pointed to structure
2014-11-28 22:50:43 -08:00
Jakob von Raumer
0417c21bbb
chore(library/hott) change naming in equiv_precomp
2014-11-28 22:50:43 -08:00
Jakob von Raumer
4587e46c67
chore(library/hott) change naming to leo's naming proposal
2014-11-28 22:50:43 -08:00
Jakob von Raumer
7374149758
chore(library/hott) change equiv.lean to use structures and more typeclass inference
2014-11-28 22:50:43 -08:00
Leonardo de Moura
011e955fed
refactor(library/data/fin): simplify 'fin' module using new inversion tactic
2014-11-28 22:46:06 -08:00
Leonardo de Moura
e0debca771
feat(library/tactic/inversion_tactic): add 'case ... with ...' variant that allows user to specify names for new hypotheses
2014-11-28 22:25:37 -08:00
Leonardo de Moura
c2602baf2b
feat(library/tools/tactic): add 'cases' alias for 'inversion' tactic
2014-11-28 19:33:11 -08:00
Leonardo de Moura
ebd320a6b3
feat(library/tactic): add first step of 'inversion' tactic
2014-11-26 21:28:00 -08:00
Leonardo de Moura
f7deabfd19
feat(library/rename): add notation for rename
2014-11-26 19:02:11 -08:00
Leonardo de Moura
e55397d422
feat(library/tactic): add 'clears' and 'reverts' variants
2014-11-26 14:49:48 -08:00
Leonardo de Moura
2bd8f969d5
feat(library/tactic): add 'revert' tactic, closes #346
2014-11-26 14:23:42 -08:00
Leonardo de Moura
df51ba8b7c
feat(library/definitional/projection): use strict implicit inference, closes #344
2014-11-25 18:04:06 -08:00
Jakob von Raumer
53d66c91fc
chore(library/hott) made ua_implies_funext a class instance
2014-11-23 17:43:55 -08:00
Jakob von Raumer
757cdcb130
feat(library/hott) funext from ua now with arbitrary universe levels for funext!
2014-11-23 17:43:55 -08:00
Jakob von Raumer
228205634d
chore(library/hott) make funext more general
2014-11-23 17:43:55 -08:00
Jakob von Raumer
12429c93c8
fix(library/hott) fix equiv_precomp, doesn't look nice now
2014-11-23 17:43:55 -08:00
Jakob von Raumer
1f6b6ff8e6
chore(library/hott) adjust funext_from_ua.lea to typeclass axioms
2014-11-23 17:43:55 -08:00
Jakob von Raumer
2d9621892b
fix(library/hott) fill both gaps (I don't know why it works that way), change name from funext.apply to funext.ap, since apply seems to be a tactic name?
2014-11-23 17:43:55 -08:00
Jakob von Raumer
fd47a162de
chore(library/hott) adapted theories to typeclass axioms
2014-11-23 17:43:55 -08:00
Jakob von Raumer
d8d2ea998d
feat(library/hott) change axioms to Leo's axioms-as-typeclass proposal
2014-11-23 17:43:55 -08:00
Leonardo de Moura
64686c1278
feat(frontends/lean): allow user to associate precedence to binders, closes #323
2014-11-23 17:30:46 -08:00
Leonardo de Moura
7231a36ec7
refactor(library/data/nat/div): remove unnecessary annotations
2014-11-23 17:30:46 -08:00
Leonardo de Moura
13fba433b0
feat(library/tactic/generalize): add 'generalizes' syntax sugar, closes #327
2014-11-23 17:30:22 -08:00
Floris van Doorn
3523a70b4c
fix(hott/path): make recursion-like definitions reducible
2014-11-22 17:44:13 -08:00
Floris van Doorn
e97b0b4e8e
feat(hott/types): port more of the sigma library from Coq
...
prove theorems about interaction of sigma types and n-types, including the fact that sigmas preserve n-types
2014-11-22 17:44:12 -08:00
Floris van Doorn
25f5c56bb2
refactor(data/sigma): move notation from sigma.thms to sigma.decl
2014-11-22 17:44:12 -08:00
Floris van Doorn
7bfbe039d9
refactor(data.prod): move theorems about products from data.quotient.util to data.prod.thms
2014-11-22 17:44:12 -08:00
Floris van Doorn
24e35a9f2c
fix(hott/trunc): comment out sorry
2014-11-22 17:44:12 -08:00
Floris van Doorn
bc807212ac
feat(hott/path): add notation for higher and dependent transports
2014-11-22 17:44:12 -08:00
Floris van Doorn
e8b076e460
feat(hott/types/sigma): port large part of the sigma library from the hott library
...
most importantly, prove the characterization of paths in sigma types
2014-11-22 17:44:12 -08:00
Leonardo de Moura
616f2d9b82
fix(library/data/nat/div): notation should be local
2014-11-22 17:33:42 -08:00
Leonardo de Moura
ab9c51bd4b
refactor(library/data/nat/div): simplify 'gcd' definition
2014-11-22 17:19:24 -08:00
Leonardo de Moura
2af5ce364d
feat(library/data/nat/decl): add 'measure'
2014-11-22 17:19:03 -08:00
Leonardo de Moura
d07481f60f
feat(library/data/nat/div): remove some 'sorry's
2014-11-22 14:59:35 -08:00
Leonardo de Moura
9368b879bf
refactor(library/data/nat/div): use well-founded library for defining div, mod and gcd
2014-11-22 13:26:55 -08:00
Leonardo de Moura
21b16fd97c
feat(library/data/nat): add more basic theorems for definitional package
2014-11-22 13:25:46 -08:00
Leonardo de Moura
faf736a9d2
feat(library/logic/default): add wf_k
2014-11-22 13:25:46 -08:00
Leonardo de Moura
a3daff702a
fix(library/logic/wf): typo
2014-11-22 13:25:46 -08:00
Leonardo de Moura
47b6cfb28d
feat(library/logic/if): add dependent if-then-else: dite
2014-11-22 09:56:32 -08:00
Leonardo de Moura
9c9f5bba1a
refactor(library/data/nat): prove auxiliary theorems about < and sub asap for the definitional package
2014-11-22 09:36:33 -08:00
Leonardo de Moura
29a0d3109b
refactor(library/logic/connectives): mark theorems used to prove 'decidable' theorems as transparent
...
if we don't this, then 'if-then-else' expressions depending on theorems
such as 'and_decidable', 'or_decidable' will not compute inside the kernel
2014-11-22 09:32:43 -08:00
Leonardo de Moura
064ecd3e3d
refactor(library/data/nat): declare lt and le asap using inductive definitions, and make key theorems transparent for definitional package
...
We also define key theorems that will be used to generate the
automatically generated a well-founded subterm relation for inductive
datatypes.
We also prove decidability and wf theorems asap.
2014-11-22 00:19:39 -08:00
Leonardo de Moura
7c54dbce10
refactor(library/logic/if): mark basic theorem transparent
2014-11-22 00:19:05 -08:00
Leonardo de Moura
acf1c501ad
refactor(library/logic/prop): allow 'absurd' to generate Type
2014-11-22 00:19:05 -08:00
Leonardo de Moura
2e121182de
refactor(library/logic/decidable): rename decidable_rel -> decidable_pred, and decidable_rel2 -> decidable_rel
2014-11-21 11:49:31 -08:00
Jakob von Raumer
19d0afe160
feat(library/hott) completed the funext_from_ua proof with a somewhat restricted generality on universe levels
2014-11-21 10:46:16 -08:00
Jakob von Raumer
bc33af9f51
feat(library/hott) add universe polymorphism to paths, truncation, etc... get stuck at ua to funext proof anyway
2014-11-21 10:46:16 -08:00
Leonardo de Moura
47e3f0e770
fix(library/logic/wf_k): missing file
2014-11-21 10:03:20 -08:00
Leonardo de Moura
dbb3b7c72a
refactor(library/data/nat/sub): cleanup 'max' theorems
2014-11-18 17:56:42 -08:00
Leonardo de Moura
e77cd59368
refactor(library/logic): add basic definitions for relations at logic/relation.lean
...
We need them for wf and definitional package
2014-11-18 17:32:22 -08:00
Leonardo de Moura
99c30db805
feat(library/data/fin): add fin type
2014-11-17 23:44:57 -08:00
Leonardo de Moura
e2ceb86884
feat(library/data/nat/order): add calc_trans commands for lt and le
2014-11-17 23:44:27 -08:00
Leonardo de Moura
5dc42762de
feat(library/data): define 'nat.addl' addition using recursion on the first argument, prove it to be equivalent to 'add', and use it to define vector.append
2014-11-17 22:03:39 -08:00
Jakob von Raumer
fdafb1c11f
fix(library/hott) adapt trunc.lean to missing equiv coercion
2014-11-17 18:39:02 -08:00
Jakob von Raumer
59fbe8b53e
chore(library/hott) fix universe issue. note: this should be fixed when contr is not bound to universe level 1 anymore
2014-11-17 18:39:02 -08:00
Jakob von Raumer
992aad9661
feat(library/hott) postcomposition from ua lemma is done up to the last gap
2014-11-17 18:39:02 -08:00
Jeremy Avigad
4420f0dc0c
feat(library/algebra/group): add ordered semigroups
2014-11-17 18:32:14 -08:00
Leonardo de Moura
3cd3da5a84
refactor(library/data/prod/wf): remove duplication, and import wf's for sigma and prod
2014-11-16 21:19:10 -08:00
Leonardo de Moura
b7725c2949
feat(library/data/sigma/wf): define 'lex' for 'sigma' types and prove wf theorem
2014-11-16 20:08:52 -08:00
Leonardo de Moura
dd0b1ecdbf
refactor(library/data/sigma): break file into smaller pieces to reduce dependencies
2014-11-16 18:22:03 -08:00
Leonardo de Moura
53ac754328
refactor(library/data/option): cleanup using 'no_confusion'
2014-11-16 17:56:51 -08:00
Leonardo de Moura
de209f929e
feat(library/data/prod/wf): define relational product and prove wf theorem for it
2014-11-16 17:47:07 -08:00
Leonardo de Moura
bf5f48730c
refactor(library/data/subtype): define subtype using 'structure' command
2014-11-16 15:01:14 -08:00
Leonardo de Moura
b5404cd979
refactor(library/data/vector): cleanup, use variables, add concat
2014-11-15 22:36:52 -08:00
Leonardo de Moura
85f24e4c80
feat(library/data/vector): add 'zip' and 'unzip' functions
2014-11-15 22:19:23 -08:00
Leonardo de Moura
a7adfde84f
feat(library/data/vector): use 'mechanical' definitions, and add 'last' function
...
The 'mechanical' definitions are "mimicking" what the definitional
package will do.
2014-11-15 20:21:18 -08:00
Leonardo de Moura
627c7cb531
chore(library/logic/wf): remove unnecessary :max
2014-11-14 17:37:05 -08:00
Jeremy Avigad
0d982cceed
feat(library/algebra/ring): begin theory of semirings and rings
2014-11-14 17:27:35 -08:00
Leonardo de Moura
e7a7458922
feat(library/general_notation): reserve unary minus
2014-11-13 22:08:20 -08:00
Jeremy Avigad
1ed7794264
feat(library/algebra/group): add theorems for calculation
2014-11-13 20:44:58 -08:00
Jakob von Raumer
e740fbe8c4
chore(library/hott) remove hott.axoims.ua from imports of funext_from_ua.lean
2014-11-13 20:43:46 -08:00
Jakob von Raumer
b514a978b2
fix(library/hott) changed pointed.lean to use trunc.lean correctly
2014-11-13 20:43:46 -08:00
Jakob von Raumer
8dfa78e070
feat(library/hott) almost completed portin UnivalenceImpliesFunext.v
2014-11-13 20:43:46 -08:00
Jakob von Raumer
df4a8db23d
feat(library/hott) add to trunc.lean: contractible types are equivalent to unit
2014-11-13 20:43:46 -08:00
Jakob von Raumer
3ee703f5d5
feat(library/hott) Ported part of UnivalenceImpliesFunext.v
2014-11-13 20:43:46 -08:00
Jakob von Raumer
2ed7032997
chore(library/hott) cleaned up the proof a bit
2014-11-13 20:43:46 -08:00
Jakob von Raumer
b5d564431a
feat(library/hott) port the rest of Funext_Varieties.v
2014-11-13 20:43:46 -08:00
Jakob von Raumer
6296f8e092
feat(library/hott) port a good portion of FunextVarieties.v
2014-11-13 20:43:46 -08:00
Jakob von Raumer
be8c758be1
feat(library/hott) ported Pointed.v
2014-11-13 20:43:45 -08:00
Leonardo de Moura
edd04881ee
fix(library/logic): import prod and unit declarations in logic
...
Reason: we need them for automatically generating constructions needed
by the definitional package
2014-11-12 16:54:50 -08:00
Leonardo de Moura
6bc89f0916
feat(library/definitional): define ibelow and below
...
These are helper definitions for brec_on and binduction_on
2014-11-12 16:38:46 -08:00
Leonardo de Moura
ef5a3e83ad
feat(library/data/vector): expand 'vector' module
2014-11-11 22:33:47 -08:00
Leonardo de Moura
21b93bd2e5
chore(library/data/prod/wf): remove dependency on opaque theorem
2014-11-11 00:39:53 -08:00
Leonardo de Moura
54213b48dc
feat(library/data/prod/wf): lex of well-founded relations is well-founded
2014-11-11 00:29:21 -08:00
Leonardo de Moura
76711d00c1
feat(library/data/nat/wf): define measure using inverse image
2014-11-11 00:28:46 -08:00
Leonardo de Moura
4623a62ec3
feat(library/data/nat/wf): predecessor relation is well-founded
2014-11-10 22:15:15 -08:00
Leonardo de Moura
9c93816211
chore(library/logic/wf): cleanup
2014-11-10 21:19:38 -08:00
Leonardo de Moura
4ebd3e2c27
feat(library/logic/wf): transitive closure of a well-founded relation is well-founded
2014-11-10 21:07:28 -08:00
Leonardo de Moura
22b7a0615f
fix(frontends/lean): coercion affects other modules
2014-11-10 20:14:19 -08:00
Leonardo de Moura
64043094f4
feat(library/logic/wf): some basic definitions for constructing well_founded relations
2014-11-10 17:57:55 -08:00
Leonardo de Moura
189e5e6b48
refactor(library/data/nat/wf): mark theorem as transparent
...
It doesn't really help since
le_imp_lt_or_eq, succ_le_cancel, lt_imp_le_succ and or.elim
are still opaque
2014-11-10 12:52:02 -08:00
Floris van Doorn
107a9cf8e4
feat(library): port more of truncation library from Coq HoTT
...
Everything directly about truncations in the basic truncation library is ported.
Some theorems about other structures still need to be ported.
Also made some minor changes in hott.equiv
2014-11-08 19:12:54 -08:00