Leonardo de Moura
e499f8e20a
feat(kernel/inductive): relax conditions for an inductive datatype in Prop to be able to eliminate into Type
...
The new relaxed version allows us to define the "accessability"
proposition and have an eliminator into Type.
See justification in the new comments at inductive.cpp
2014-11-06 09:36:54 -08:00
Leonardo de Moura
8723f5b613
fix(frontends/lean/inductive_cmd): inductive datatype elaborator was 'fixing' parameter mismatches.
...
Given a datatype C with parameters As, if the declaration contained
(C Bs), the elaborator would silently replace it with (C As).
This bug would confuse users and make them believe they define something
different.
2014-11-05 23:12:00 -08:00
Leonardo de Moura
d306c42a1f
refactor(library/logic): cleanup some of the proofs in cast.lean, remove piext axiom
...
Remark: the main motivation for piext was Lean 0.1 simplifier.
We are using a different approach in Lean 0.2.
The axiom is not needed anymore.
It is also not used in any part of the standard library
2014-11-05 16:43:31 -08:00
Jakob von Raumer
09b533a965
fix(library/hott) rename IsEquiv.ap to IsEquiv.ap_closed to avoid name clashes
2014-11-05 15:14:14 -08:00
Jakob von Raumer
02abc5c2ad
chore(library/hott) fixed the copyright in equiv_precomp.lean
2014-11-05 15:14:14 -08:00
Jakob von Raumer
807224f3c1
chore(library/hott) cleaned up the proof a bit
2014-11-05 15:14:14 -08:00
Jakob von Raumer
2712b9b18f
feat(library/hott) add theorem: if f is an equivalence, so is ap f
2014-11-05 15:14:14 -08:00
Leonardo de Moura
b3ad8c704a
feat(frontends/lean/structure_cmd): allow inheritance from two identical structures, closes #296
2014-11-05 15:01:05 -08:00
Leonardo de Moura
4650791108
feat(frontends/lean): add 'print fields' command
2014-11-05 14:06:54 -08:00
Leonardo de Moura
354baf4d13
test(tests/lean/run): add structure command test
2014-11-05 12:54:03 -08:00
Leonardo de Moura
f8a2bc41a5
fix(frontends/lean/structure_cmd): bad test output
2014-11-05 12:02:53 -08:00
Leonardo de Moura
677e0aeef6
fix(frontends/lean/structure_cmd): accept ': Type' when universe levels are not specified
2014-11-05 12:02:52 -08:00
Leonardo de Moura
d6dc624ca8
fix(frontends/lean/structure_cmd): error parsing structure without parameters followed by ': Type'
2014-11-05 12:02:52 -08:00
Leonardo de Moura
defc2478b5
feat(frontends/lean): add 'record' as an alias for 'structure' command
2014-11-05 12:02:52 -08:00
Soonho Kong
e71db7109d
fix(emacs/lean-mode.el): remove quotation marks in lean-execute
...
Close #294
2014-11-05 09:20:14 -05:00
Leonardo de Moura
5b87d060cf
fix(frontends/lean/structure_cmd): universe level validation
2014-11-04 22:19:23 -08:00
Jakob von Raumer
588ad210a2
feat(library/hott) add theorem: assuming function extensionality, precomposing and postcomposing of equivalences is an equivalence
2014-11-04 18:47:34 -08:00
Jakob von Raumer
efa33c5b52
chore(library/hott) move theorem about precomposition to its own file
2014-11-04 18:47:34 -08:00
Jakob von Raumer
0ed046ed80
fix(library/hott) fix funext.lean by making funext an instance
2014-11-04 18:47:34 -08:00
Leonardo de Moura
6944c7d902
fix(frontends/lean/placeholder_elaborator): local context must be adjusted when performing class-instance resolution modulo Pi-abstraction, fixes #293
2014-11-04 18:41:27 -08:00
Leonardo de Moura
b5ad0fb504
refactor(frontends/lean/local_context): add 'const' modifier
2014-11-04 18:37:31 -08:00
Leonardo de Moura
3bfe5b0b7e
fix(frontends/lean): type information for "atomic" notation declaration, fixes #292
2014-11-04 18:01:20 -08:00
Leonardo de Moura
fa405d7884
refactor(frontends/lean): combine info annotations in a single module
2014-11-04 18:01:20 -08:00
Leonardo de Moura
c6c090eda6
feat(src/emacs/lean-mode): add shortcut for restarting lean server
2014-11-04 18:01:20 -08:00
Soonho Kong
2273f75e9b
fix(emacs/lean-mode): handle when there is spaces in filenames
2014-11-04 19:22:35 -05:00
Soonho Kong
53e18d0e39
chore(src/CMakeLists.txt): copy linja and ltag to bin when install
2014-11-04 18:16:04 -05:00
Soonho Kong
33be645122
chore(bin/lmake): remove
2014-11-04 18:16:04 -05:00
Leonardo de Moura
60eac0195d
feat(frontends/lean/structure_cmd): generate projection over constructor theorems for structures
2014-11-04 09:10:25 -08:00
Leonardo de Moura
d58c3e498d
feat(frontends/lean/builtin_cmds): add 'print prefix' command
2014-11-04 08:40:32 -08:00
Leonardo de Moura
3454e70017
fix(frontends/lean/inductive_cmd): bug in expression position propagation, fixes #289
...
Fix incorrect line/column number information in error messages produced
during inductive datatype elaboration.
2014-11-04 07:44:47 -08:00
Leonardo de Moura
795f664964
fix(library/hott/funext): compilation error
2014-11-04 06:53:21 -08:00
Jakob von Raumer
261f8a014a
feat(library/hott) use class inference for IsEquiv
2014-11-04 06:49:42 -08:00
Jakob von Raumer
479eabb416
feat(library/hott) add: if precompositions with f are equivalences, then f is
2014-11-04 06:49:42 -08:00
Leonardo de Moura
b6722a5d33
feat(frontends/lean/structure_cmd): add 'private' modifier for parent structures
...
When it is used coercions/instances to parent structure are to registered
2014-11-03 23:16:49 -08:00
Leonardo de Moura
b24165dc7b
feat(frontends/lean/structure_cmd): remove 'cases_on' for structures since it may confuse users, add 'destruct' as alternative name for 'rec_on'
2014-11-03 23:06:33 -08:00
Leonardo de Moura
7897e21a14
feat(frontends/lean/structure_cmd): allow fields to be suppresed, but constructor to be provided
2014-11-03 22:55:51 -08:00
Leonardo de Moura
08b4ce2db9
feat(frontends/lean/structure_cmd): use 'mk' as constructor name when it is not provided
2014-11-03 22:40:08 -08:00
Leonardo de Moura
8f3139231b
feat(frontends/lean/structure_cmd): allow structure declarations that contains only a header
2014-11-03 22:17:43 -08:00
Leonardo de Moura
91749d2364
fix(frontends/lean/structure_cmd): modify coercion generation
...
The previous coercion was more efficient, but the computation was
getting stuck when processing algebraic structures
2014-11-03 19:37:11 -08:00
Leonardo de Moura
d2b5af237e
refactor(library): use new 'structure' command to define prod and sigma
2014-11-03 18:57:55 -08:00
Leonardo de Moura
ea7470375f
fix(tests/lean): to reflect changes in the standard library
2014-11-03 18:46:53 -08:00
Floris van Doorn
d8a616fa70
refactor(library): major changes in the library
...
I made some major changes in the library. I wanted to wait with pushing
until I had finished the formalization of the slice functor, but for
some reason that is very hard to formalize, requiring a lot of casts and
manipulation of casts. So I've not finished that yet.
Changes:
- in multiple files make more use of variables
- move dependent congr_arg theorems to logic.cast and proof them using heq (which doesn't involve nested inductions and fewer casts).
- prove some more theorems involving heq, e.g. hcongr_arg3 (which do not
require piext)
- in theorems where casts are used in the statement use eq.rec_on
instead of eq.drec_on
- in category split basic into basic, functor and natural_transformation
- change the definition of functor to use fully bundled
categories. @avigad: this means that the file semisimplicial.lean will
also need changes (but I'm quite sure nothing major). You want to
define the fully bundled category Delta, and use only fully bundled
categories (type and ᵒᵖ are notations for the fully bundled
Type_category and Opposite if you open namespace category.ops). If you
want I can make the changes.
- lots of minor changes
2014-11-03 18:45:12 -08:00
Leonardo de Moura
edd94c00df
fix(library/definitional): add missing files
2014-11-03 18:36:25 -08:00
Leonardo de Moura
c306bfa83c
feat(frontends/lean/structure_cmd): add 'eta' theorem for structures
2014-11-03 18:33:44 -08:00
Leonardo de Moura
101e9966fd
fix(emacs/lean-syntax): bug in syntax highlight, examples do not have names
2014-11-03 18:32:18 -08:00
Leonardo de Moura
186d910d0b
feat(frontends/lean/structure_cmd): mark coercion to parents as coercions and instances (when both structures as classes)
2014-11-03 17:55:59 -08:00
Leonardo de Moura
9531203d9d
feat(frontends/lean/structure_cmd): mark structure as 'class' when [class] modifier is used
2014-11-03 17:47:08 -08:00
Leonardo de Moura
b112f3c582
feat(frontends/lean/structure_cmd): add coercions to parent structures
2014-11-03 17:39:52 -08:00
Leonardo de Moura
922e66c42f
fix(frontends/lean/decl_cmds): do not save 'examples' in .ilean file
2014-11-03 16:13:46 -08:00
Leonardo de Moura
7afa69577e
feat(frontends/lean/structure_cmd): add aliases for structure decls
2014-11-03 15:50:41 -08:00