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
Floris van Doorn
780e949992
feat(empty): define negation of types
2014-11-08 19:12:54 -08:00
Floris van Doorn
bf27a17dec
style(library): add some comments
2014-11-08 19:12:54 -08:00
Floris van Doorn
8c7fdd3708
style(library): rename set_category to discrete_category
2014-11-08 19:12:54 -08:00
Floris van Doorn
930cc11684
doc(algebra): update markdown files
2014-11-08 19:12:54 -08:00
Floris van Doorn
cd33d2e96d
refactor(typeof): move typeof to general_notation
2014-11-08 19:12:54 -08:00
Floris van Doorn
74779dd855
feat(hott/trunc): clean up some theorems, prove some basic theorems
2014-11-08 19:12:54 -08:00
Floris van Doorn
08c56188b6
feat(library/hott/trunc): prove that n-types are (n+1)-types.
2014-11-08 19:12:54 -08:00
Jeremy Avigad
4a955c0f92
feat(library/algebra/order): begin theory of orders
...
feat(library/algebra/order): begin theory of orders
2014-11-08 19:07:59 -08:00
Leonardo de Moura
b97d437011
refactor(library/data/nat/basic): use no_confusion
construction to simplify proofs
2014-11-08 19:00:40 -08:00
Leonardo de Moura
ac5a963db3
refactor(library/data/sum): use no_confusion
construction to simplify proofs
2014-11-08 18:58:56 -08:00
Leonardo de Moura
46149d0d50
refactor(library/data/prod): break into pieces to reduce dependencies
...
prod is needed for some automatically generated constructions.
So, it is important it is loaded in the environment as early as possible.
2014-11-08 10:19:29 -08:00
Leonardo de Moura
ad2ecfb7a8
refactor(library/logic/cast): move heq declaration to a separate module
...
heq is be needed for some automatically generated constructions.
So, we want it available with the least number of dependencies.
2014-11-08 10:19:29 -08:00
Leonardo de Moura
64d2cc60c2
feat(library/data/nat/wf): add nat.lt is well founded theorem
2014-11-07 10:48:31 -08:00
Jeremy Avigad
c28227d7a1
feat(library/algebra/group): add multiplicative and additive structures
2014-11-07 10:23:37 -08:00
Jeremy Avigad
05ec76185d
fix(library/hott/fibrant): set arguments for type class resolution
2014-11-07 10:23:37 -08:00
Leonardo de Moura
92b0a538c5
refactor(library/logic/wf): add well_founded class, and cleanup file
2014-11-07 10:18:24 -08:00
Leonardo de Moura
f16f215c2a
refactor(data/num/string): break into pieces to reduce dependencies
2014-11-07 08:53:14 -08:00
Leonardo de Moura
fd34fd17de
refactor(library/data/bool): break into pieces to reduce dependencies
2014-11-07 08:41:14 -08:00
Leonardo de Moura
e993486301
refactor(library/data/num): break into pieces to reduce dependencies
2014-11-07 08:24:29 -08:00
Leonardo de Moura
85d0521d48
feat(frontends/lean): add '[parsing-only]' modifier to notation declarations, closes #305
2014-11-06 21:34:05 -08:00
Jakob von Raumer
754901cf64
fix(library/hott) make universe index in ua.lean variable
2014-11-06 20:02:10 -05:00
Jakob von Raumer
b8ec1a1649
chore(library/hott) cleanup
2014-11-06 19:41:08 -05:00
Jakob von Raumer
f1cc0c4bd8
chore(library/hott) add note referring to missing substitution lemma
2014-11-06 19:27:27 -05:00
Jakob von Raumer
7dbd7b31f6
Added substitution lemma for equivalence calculations
2014-11-06 19:22:57 -05:00
Jakob von Raumer
fa9cbb1f6a
chore(library/hott) adapted univalence axiom to suit notation in book and def in Coq.
2014-11-06 19:22:57 -05:00
Jakob von Raumer
d842be9c52
feat(library/hott) add univalence axiom
2014-11-06 19:22:57 -05:00
Jakob von Raumer
28d1c6c5e4
chore(library/hott) move function extensionality into new axioms folder, adjust file(s) using it
2014-11-06 19:22:57 -05:00
Jakob von Raumer
9ad75108a3
chore(library/hott) clean up file and add class inference
2014-11-06 15:57:30 -08:00
Jakob von Raumer
1f5be44f51
chore(library/hott) clean up Equiv namespace
2014-11-06 15:57:30 -08:00
Jakob von Raumer
8e1949e9aa
feat(library/hott) add calc environment for equivalences
2014-11-06 15:57:29 -08:00
Jakob von Raumer
c50db9899d
feat(library/hott) add thm: to give a section of a fibration it suffices to provide it for the image of an equivalence
2014-11-06 15:57:29 -08:00
Leonardo de Moura
781f709bb4
feat(library/logic): import wf.lean in logic/default.lean
...
We will use well-founded recursion in the definitional package
2014-11-06 15:03:13 -08:00
Leonardo de Moura
194247f75b
refactor(library/logic/wf): minimize dependencies
2014-11-06 14:59:03 -08:00
Leonardo de Moura
b177c84b06
feat(library/logic): add well-founded recursion
...
It also removes the old well-founded induction theorem based on
classical principles
2014-11-06 14:49:53 -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
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
60eac0195d
feat(frontends/lean/structure_cmd): generate projection over constructor theorems for structures
2014-11-04 09:10:25 -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
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
d2b5af237e
refactor(library): use new 'structure' command to define prod and sigma
2014-11-03 18:57:55 -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
ae9d11c9c4
refactor(library/data): rename prod_ext and dpair_ext to prod.eta and sigma.eta
...
Reason: they will be generated automatically by definitional package.
2014-11-03 08:29:05 -08:00
Leonardo de Moura
4bdee07af2
refactor(library/algebra/category/basic): use calc assistant
2014-10-31 09:49:45 -07:00
Leonardo de Moura
8d3e9fdc20
refactor(library/data/nat/basic): remove unnecessary {}
2014-10-31 09:49:45 -07:00
Leonardo de Moura
8a4d4409cd
feat(frontends/lean/calc_proof_elaborator): add '{...⁻¹}' if needed in calc proofs, closes #268
...
This commit also simplifies library/data/nat/basic.lean
2014-10-31 01:02:49 -07:00
Leonardo de Moura
5f23179388
refactor(library/data/nat): remove unnecessary !
and eq.symm
...
The calc command automatically adds them now.
2014-10-30 23:28:35 -07:00
Leonardo de Moura
591e566472
feat(frontends/lean): try to inject symmetry (if needed) in calc proofs, add calc_symm command for configuring the symmetry theorem for a given operator
...
This is part of #268
2014-10-30 23:24:09 -07:00
Leonardo de Moura
09c6c05e26
chore(library/data/quotient): replace 'let' with 'have' and cleanup
2014-10-30 18:44:05 -07:00
Leonardo de Moura
407e35692b
feat(frontends/lean/calc): wrap calc proofs with 'proof-qed' annotation to identify places where proof influences what is being proved
...
Later, we will add a custom annotation and elaborator for calc proofs.
This is the first step for issue #268 .
Remark: we don't wrap the proof if it is of the form
- `by tactic`
- `begin tactic-seq end`
- `{ expr }`
2014-10-30 18:33:47 -07:00
Leonardo de Moura
9547e2d077
feat(library/tactic): add rotate_left/rotate_right tactics, closes #278
2014-10-29 19:13:55 -07:00
Leonardo de Moura
e22eb3543c
feat(library/tactic): add whnf tactic, closes #270
2014-10-28 23:18:49 -07:00
Leonardo de Moura
ea739100b3
fix(library/unifier): broken optimization in the unifier
...
See new comments and tests for details.
2014-10-28 16:09:41 -07:00
Leonardo de Moura
777aa63660
fix(kernel/inductive): relax eliminator generation rules for empty types
...
This commit also removes the workaround false.rec_type. It is not needed anymore
2014-10-28 10:31:00 -07:00
Leonardo de Moura
aafdbf57f0
fix(library/data/unit): missing file
2014-10-25 18:34:41 -07:00
Leonardo de Moura
c7f6a6b94e
feat(library/definitional/cases_on): automatically add 'cases_on'
2014-10-25 17:22:02 -07:00
Leonardo de Moura
758a17ab23
refactor(library/data/unit): break unit.lean into smaller pieces
...
The unit datatype is used by automation.
We want to be able to access its declaration without having to access
all dependencies (e.g., decidable, subsingleton, inhabited, ...).
This is *not* an optimization, but a way to make sure we can "import" unit
before we import other declarations.
2014-10-25 14:57:33 -07:00
Jakob von Raumer
b575c972bd
feat(library/hott) add the proof that the inverse of an equivalence is an equivalence
...
This is done by changing the order of theorems and using the adjointification.
2014-10-25 14:20:47 -07:00
Jakob von Raumer
e7aa5f65e7
fix(library/hott) close gaps and clean up adjointification proof
2014-10-25 14:16:24 -07:00
Jakob von Raumer
16a0e970f7
feat(library/hott) add adjointification proof up to two gaps
2014-10-25 14:16:24 -07:00
Leonardo de Moura
354b50a1f5
refactor(library/data/unit): make unit universe polymorphic
...
Motivation: we need it for "padding".
Example 1: defining a n-ary tuple type.
Example 2: defining cases-on for mutually recursive datatypes
2014-10-25 13:55:03 -07:00
Leonardo de Moura
cdcde661ef
feat(library/definitional/induction_on): automatically add 'induction_on'
2014-10-25 13:37:04 -07:00
Leonardo de Moura
a7a06ab0f8
feat(library/definitional/rec_on): automatically generate rec_on function for inductive datatypes
2014-10-25 13:08:59 -07:00
Soonho Kong
51125c1577
fix(library/data/quotient/default.lean): remove classical
2014-10-24 07:41:29 -07:00
Leonardo de Moura
79d0347721
feat(library/tactic): add generalize tactic, closes #34
...
Remark: the intros tactic has been added in a different commit: 7d0100a340
2014-10-23 22:40:15 -07:00
Leonardo de Moura
e750c9b67a
feat(frontends/lean): add 'info' tactic for producing PROOF_STATE info for emacs mode
2014-10-23 13:18:30 -07:00
Leonardo de Moura
00f9a10e82
refactor(library/tactic/unfold_tactic): use new 'tactic.expr' to implement 'unfold' tactic
...
This change also enabled us to remove hacks used in the tests modified
by this commit.
2014-10-23 10:26:19 -07:00
Leonardo de Moura
7c016191d2
chore(library/hott): add Jakob to list of authors
2014-10-22 22:28:21 -07:00
Jakob von Raumer
f182299459
fix(library/hott) fix funext.lean to match equivalence notation
2014-10-22 22:28:21 -07:00
Jakob von Raumer
abd5c574ad
fix(library/hott) : convert to new path notations
...
Convert definitions and proofs to new notations for inverse and cocatenation. Adapt to now right associative of concatenation.
2014-10-22 22:28:14 -07:00
Jakob von Raumer
a169f791df
feat(library/hott): add adjointification and closure properties for equivalences
...
Port features from the Coq Hott library
2014-10-22 22:22:08 -07:00
Leonardo de Moura
5a553603d1
fix(library/general_notation): mark \tr as left associative
2014-10-22 22:18:40 -07:00
Leonardo de Moura
3aec70b92c
feat(library/tactic): elaborate 'exact' tactic argument at tactic execution time
2014-10-22 22:13:37 -07:00
Leonardo de Moura
c50227ea6e
feat(library/tactic): change apply tactic semantics: goals are not reversed; and dependent arguments are not included
...
This commit also adds the tactic rapply that corresponds to the previous
semantics we have been using.
2014-10-22 18:11:09 -07:00
Leonardo de Moura
e95c7c5f70
refactor(library/tactic/rename_tactic): use new 'tactic.expr' to implement 'intro/intros' tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-10-22 17:29:50 -07:00
Leonardo de Moura
9a316092d1
refactor(library/tactic/rename_tactic): use new 'tactic.expr' to implement rename tactic
2014-10-22 17:29:50 -07:00
Leonardo de Moura
5e15ac0c92
feat(library/tactic): add new approach for embedding non-elaborated expressions into tactics
2014-10-22 17:29:50 -07:00
Leonardo de Moura
6b89080b1a
feat(frontends/lean): do not allow user to define notation using tokens !
and @
, closes #248
2014-10-21 16:28:36 -07:00
Leonardo de Moura
dea3357d7c
refactor(library/hott/path): use HoTT book notation for path concatenation and inverse
2014-10-21 16:11:55 -07:00
Leonardo de Moura
e24225fabf
feat(frontends/lean): validate infixl/infixr/postfix/prefix declarations against reserved notations
2014-10-21 15:39:47 -07:00
Leonardo de Moura
6c7e23ecaa
refactor(library): use 'reserve' notation in the standard library
2014-10-21 15:39:47 -07:00
Leonardo de Moura
45df5cffd8
refactor(library/hott): remove unnecessary generalizations
2014-10-21 09:11:22 -07:00
Leonardo de Moura
2e9141b7e1
refactor(library): remove unnecessary :max
hack in notation declarations
...
This hack is not needed anymore.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-10-20 18:45:52 -07:00
Leonardo de Moura
40fb66bf07
feat(frontends/lean): change default precedence to 1
2014-10-20 18:40:55 -07:00
Leonardo de Moura
e68007a727
fix(frontends/lean/builtin_tactics): adjust tactics precedence
2014-10-20 17:10:16 -07:00
Leonardo de Moura
854e72e665
refactor(library/data/list): minimize dependencies and avoid 'sorry' warning
2014-10-20 15:32:42 -07:00
Leonardo de Moura
f63d47fef3
feat(frontends/lean/pp): support foldl/foldr notation in the pretty printer
2014-10-19 11:16:24 -07:00
Leonardo de Moura
85339c0cc1
fix(library/data/list/basic): mark ::
as infixr
2014-10-19 08:58:52 -07:00
Leonardo de Moura
144150d47b
fix(library/type): modify declaration order and make sure Type1, Type2 and Type3 notations have precedence over Type' during pretty printing
2014-10-18 15:15:44 -07:00
Leonardo de Moura
58c9421bab
refactor(library/tactic): elaborate expressions nested in tactics with respect to current goal, save postponed constraints (e.g., flex-flex constraints) closes #44 , fixes #70
2014-10-14 17:18:40 -07:00
Soonho Kong
ba24d01dd2
chore(library/Makefile): remove unused Makefile
2014-10-14 08:41:19 -07:00
Leonardo de Moura
4a9e725ca7
refactor(library/algebra/category/morphism): make sure bug #231 has been fixed
2014-10-13 20:56:40 -07:00
Leonardo de Moura
9edf780a00
feat(frontends/lean): elaborate inductive datatypes and introduction rules as a single elaboration problem
2014-10-13 18:35:11 -07:00
Leonardo de Moura
5c1d5133dd
fix(library/data/prod): make the notation for tuples and product types consistent
2014-10-13 06:48:37 -07:00
Leonardo de Moura
a26618e0f2
feat(frontends/lean): add '[]' notation for marking arguments where class-instance resolution should be applied
2014-10-12 13:06:00 -07:00
Leonardo de Moura
f832212fc8
refactor(library/algebra/category): remove unnecessary sections
2014-10-11 16:40:26 -07:00
Floris van Doorn
c630b5ddb2
feat(library/algebra/category): use variables instead of parameters
2014-10-11 16:40:18 -07:00
Leonardo de Moura
d6d0593afb
refactor(library): remove some unnecessary sections
2014-10-10 16:33:58 -07:00
Leonardo de Moura
a41850227a
refactor(library/logic): use new K-like reduction to simplify some proofs
2014-10-10 14:52:21 -07:00
Leonardo de Moura
052bc6ff20
fix(frontends/lean/elaborator): better specific universe detection
2014-10-09 14:43:07 -07:00
Leonardo de Moura
8f1b6178a7
chore(*): minimize the use of parameters
2014-10-09 07:13:06 -07:00
Leonardo de Moura
f9e8503005
chore(library/algebra/category): add workaround
2014-10-09 00:05:37 -07:00
Leonardo de Moura
8c5d3392c7
fix(library/algebra/category): minor fixes to reflect recent changes, and fix tests
2014-10-08 23:44:09 -07:00
Floris van Doorn
0a58e3d1ae
feat(algebra/category/): minor additions, start on adjunction
2014-10-08 23:14:44 -07:00
Floris van Doorn
57bee2a659
feat(binary.lean): add helper theorem for associative functions
2014-10-08 23:14:44 -07:00
Floris van Doorn
8d376b93cd
feat(category): split category.lean in different files; add more constructions and theorems about isos
2014-10-08 23:14:44 -07:00
Floris van Doorn
ae3419f82f
feat(library): add definition of subsingleton and some other minor changes
2014-10-08 23:14:44 -07:00
Floris van Doorn
abee75c5e9
feat(quantifiers.lean): change exists_unique to a constructively stronger formulation
...
the previous formulation was constructively probably to weak to be useful
2014-10-08 23:14:44 -07:00
Leonardo de Moura
744cee8dd8
feat(frontends/lean): force 'classes' to be declared before instances are declared, closes #228
2014-10-07 18:02:15 -07:00
Leonardo de Moura
c9e5e40477
refactor(library/data/num): cleanup
2014-10-05 13:47:51 -07:00
Leonardo de Moura
86591c7272
refactor(library/data/prod): cleanup
2014-10-05 13:38:08 -07:00
Leonardo de Moura
d56266c524
refactor(data/sum): use sections
2014-10-05 13:20:04 -07:00
Leonardo de Moura
15779c5d1e
refactor(data/list): use '!' operator, and new name convention for declaration names
2014-10-05 13:10:35 -07:00
Leonardo de Moura
efaeeb0726
refactor(data/nat/sub): use new policy for marking implicit arguments and '!' operator
2014-10-05 12:39:13 -07:00
Leonardo de Moura
fa96596bf7
refactor(data/int/order): use '!' operator
2014-10-05 11:44:18 -07:00
Leonardo de Moura
a0d4d82f3f
refactor(data/nat/order): use new policy for marking implicit arguments and '!' operator
2014-10-05 11:36:39 -07:00
Leonardo de Moura
e91a64fb38
chore(library/logic): fix comments
2014-10-05 11:11:48 -07:00
Leonardo de Moura
73aa024c31
refactor(library/logic): remove 'core' subdirectory
2014-10-05 10:50:13 -07:00
Leonardo de Moura
0f90d10a13
refactor(logic/core/eq): use sections
2014-10-05 10:19:50 -07:00
Leonardo de Moura
317e910054
refactor(library/data/bool): use new style
2014-10-05 09:50:55 -07:00
Leonardo de Moura
5a927b6db4
refactor(library/logic/cast): define heq using inductive datatypes
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-10-03 21:40:51 -07:00
Leonardo de Moura
a52b21c92d
refactor(library): using section variables
2014-10-02 18:25:00 -07:00
Leonardo de Moura
d5cad765a0
feat(frontends/lean): enforce new semantics for section 'variables'
...
The library file logic/core/connectives uses the new feature.
2014-10-02 17:55:34 -07:00
Leonardo de Moura
4946f55290
refactor(frontends/lean): constant/axiom are top-level commands, parameter/variable/hypothesis/conjecture are section/context-level commands
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-10-02 17:55:34 -07:00
Leonardo de Moura
f78d831de3
refactor(frontends/lean): remove hardcoded Type', and define it using notation
2014-10-02 14:29:51 -07:00
Leonardo de Moura
76d21900a2
feat(library): add aliases for some sorts
2014-10-02 14:29:51 -07:00
Leonardo de Moura
98e66586e9
feat(frontends/lean/elaborator): elaborator rejects 'Type' if the universe is explicit
2014-10-02 14:29:51 -07:00
Leonardo de Moura
d42fd657fe
refactor(library): is_inhabited "theorems" should be "definitions", they are "data"
2014-10-02 09:00:34 -07:00
Leonardo de Moura
153e3927ac
feat(frontends/lean/elaborator): modify '!' semantics: it stops consuming arguments as soon it finds an argument that does not occur in the rest of the type.
2014-10-01 18:50:17 -07:00
Leonardo de Moura
e64d5c4a4a
refactor(library/data/nat): use new operator '!'
2014-10-01 18:39:47 -07:00
Leonardo de Moura
a978e30c81
refactor(library/data/nat): rename to_nat to of_num
2014-10-01 17:52:33 -07:00
Leonardo de Moura
716cd4d651
refactor(library): rename namespace eq_ops to eq.ops
2014-10-01 17:51:17 -07:00
Leonardo de Moura
bc6ebf34be
feat(library/data/bool): do not use !
as notation for bnot, rename band/bor -> and/or
2014-10-01 17:00:03 -07:00
Leonardo de Moura
3657d4c3ab
feat(frontends/lean): coercion num -> int even when nat is not open, closes #219
...
I also had to mark the coercions as reducible.
Otherwise, given the constraint
?M (int.of_num 0) =?= (int.of_nat (nat.to_nat 0))
the unifier will not generate the solution
?M := fun x, x
2014-10-01 11:09:10 -07:00
Leonardo de Moura
3ca1264f61
refactor(library): mark 'decidable' theorems as definitions
...
If we don't do that, then any 'if' term that uses one of these theorems
will get "stuck". That is, the kernel will not be able to reduce them
because theorems are always opaque
2014-09-30 09:02:37 -07:00
Leonardo de Moura
21be308884
feat(frontends/lean/inductive_cmd): infer implicit argument annotation after elaboration, allow user to disable it by using '()' annotation, closes #210
2014-09-29 11:11:17 -07:00
Leonardo de Moura
9c55bbb871
feat(frontends/lean/elaborator): report an error when Type becomes a Prop after elaboration, closes #208
2014-09-29 08:18:10 -07:00
Leonardo de Moura
397395bbc9
feat(frontends/lean): allow user to associate priorities to class-instances, closes #180
2014-09-28 12:20:42 -07:00
Floris van Doorn
3a95734fae
feat(library): changes in eq.lean sigma.lean and category.lean
...
in eq.lean, make rec_on depend on the proof, and add congruence theorems for n-ary functions with n between 2 and 5
in sigma.lean, finish proving equality of triples
in category.lean, define the functor category, and make the proofs of the arrow and slice categories easier for the elaborator
2014-09-26 19:45:23 -04:00
Floris van Doorn
05fb3aa060
feat(library/data/int): remove duplicate theorem, fix one sorry
2014-09-26 19:45:23 -04:00
Floris van Doorn
5396e422d2
feat(library): add constructions of categories, some changes in eq, sigma and path
...
in eq, add theorem for proof irrelevance and congruence for binary functions
in sigma, add some support for triplets
in path, comment out two unneccesary definitions
in category, add Cat, slice, coslice, product and arrow categories, also add fully bundled approach
2014-09-26 19:45:23 -04:00
Leonardo de Moura
86f06a54ea
refactor(library/data/vector): rename 'vec' to 'vector'
2014-09-19 16:20:50 -07:00
Leonardo de Moura
e430dc8bab
feat(frontends/lean): add 'irreducible' as syntax sugar for 'reducible [off]'
2014-09-19 15:54:32 -07:00
Leonardo de Moura
4e2377ddfc
refactor(frontends/lean): replace '[protected]' modifier with 'protected definition' and 'protected theorem', '[protected]' is not a hint.
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-19 15:54:32 -07:00
Leonardo de Moura
5d8c7fbdf1
refactor(frontends/lean): replace '[private]' modifier with 'private
...
definition' and 'private theorem', '[private]' is not a hint.
2014-09-19 15:54:32 -07:00
Leonardo de Moura
97b1998def
refactor(frontends/lean): replace '[opaque]' modifier with 'opaque
...
definition', '[opaque]' is not a hint, but a kind of definition
2014-09-19 15:54:32 -07:00
Leonardo de Moura
08ccd58eb6
feat(frontends/lean): add 'reducible' modifier for controlling which
...
definitions are unfolded during elaboration
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-19 15:54:32 -07:00
Leonardo de Moura
baf4c01de8
feat(frontends/lean): definitions are opaque by default
2014-09-19 15:54:32 -07:00
Leonardo de Moura
48dbd13eef
feat(frontends/lean): allow transient classes/instances, i.e.,
...
classes/instances that are not saved in .olean files
2014-09-19 15:54:32 -07:00
Leonardo de Moura
93c2c30310
feat(frontends/lean): allow transient coercions, i.e., coercions that
...
are not saved in .olean files
2014-09-19 15:54:32 -07:00
Leonardo de Moura
e3e2370a38
feat(frontends/lean): split 'opaque_hint' command into 'opaque' and 'transparent'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-16 18:03:40 -07:00
Leonardo de Moura
4b51d50ad4
fix(frontends/lean/elaborator): coercion overloading
2014-09-16 15:12:20 -07:00
Jeremy Avigad
74cb289d48
refactor(library): rename algebra directory to struc, move categories.lean to algebra
2014-09-16 13:13:01 -07:00
Jeremy Avigad
9988914189
refactor(library/logic): move files in classes directory to core
2014-09-16 13:13:01 -07:00
Leonardo de Moura
7ea6a17ae8
feat(library/data/num): add 'mul' and 'add' for binary numerals
2014-09-16 08:05:00 -07:00
Leonardo de Moura
8e52c478b1
refactor(library/data/num): add 'succ', 'pred' and 'size' (aka number of bits),
...
rename is_inhabited theorems
2014-09-15 16:05:17 -07:00
Leonardo de Moura
b7023ce1d8
fix(frontends/lean/placeholder_elaborator): do not truncate stream of
...
solutions during class-instance resolution, closes #183
For example, in theorem inverse_unique at category.lean, implicit
arguments are synthesized for inverse_compose. The first solution H' is
not good, and produces a type incorrect solution
2014-09-12 16:12:23 -07:00
Leonardo de Moura
a305012ce5
fix(library/data/category): mark definitions as abbreviations
2014-09-12 09:28:33 -07:00
Leonardo de Moura
c8e20ff3c0
fix(library/data/category): minor problem that was being masked by bug #182 , fixes #183
2014-09-11 16:58:32 -07:00
Floris van Doorn
7f1977694f
feat(library/data/category.lean) the definition of category doesn't depend on 'mor' anymore; make iso a class; add theorems
2014-09-11 16:39:47 -07:00
Leonardo de Moura
7ffe73b8ca
fix(frontends/lean): name clash inside section, fixes #181
2014-09-11 16:37:23 -07:00
Leonardo de Moura
8c11dc1ecd
chore(library/data/quotient): rename aux.lean to util.lean (fix problem with cloning lean repository on Windows machine)
...
See
http://stackoverflow.com/questions/3689137/error-git-checkout-index-unable-to-create-file
for additional details
2014-09-11 14:57:15 -07:00
Leonardo de Moura
746f5bff0d
refactor(library/data/list/basic): cleanup
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-10 16:42:49 -07:00
Leonardo de Moura
1a896a670c
refactor(library/data/list): cleanup, rename concat to assoc
2014-09-10 08:02:18 -07:00
Leonardo de Moura
9ac5f28b03
refactor(library/logic/core/eq): cleanup
2014-09-09 19:15:11 -07:00
Leonardo de Moura
b4d765ff2e
refactor(library/logic/core/cast): cleanup
2014-09-09 19:11:03 -07:00
Leonardo de Moura
9b9adf8831
refactor(library): replace decidable_eq with abbreviation
2014-09-09 16:09:05 -07:00
Leonardo de Moura
bd1bc336fb
feat(library/coercion): add simple trick for defining coercions to function-class in a convenient way, closes #31
2014-09-09 14:36:36 -07:00
Leonardo de Moura
38a4852e7d
feat(library/hott): add 'path' namespace
2014-09-09 14:03:45 -07:00
Leonardo de Moura
ff9a07500d
feat(library/data/int/basic): create alias for int.int
2014-09-09 14:03:44 -07:00
Leonardo de Moura
5087f03889
refactor(library/logic/classes/decidable): rename 'decidable_eq_to_decidable' theorem to 'of_decidable_eq'
2014-09-09 09:27:26 -07:00
Leonardo de Moura
b4793df653
feat(frontends/lean): rename '[fact]' to '[visible]'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-08 07:47:42 -07:00
Leonardo de Moura
35e68fea76
feat(library/logic/classes/decidable): generalize 'by_cases' theorem
2014-09-08 00:16:20 -07:00
Leonardo de Moura
fa25ddc8e6
chore(library/data/int/basic): remove unnecessary 'hinding' clause
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-07 22:50:43 -07:00
Leonardo de Moura
559dd586f2
feat(library): add 'decidable_eq' class
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-07 22:23:36 -07:00
Leonardo de Moura
c446327ec3
feat(library/data/list): add mem_is_decidable and not_mem_find theorems
2014-09-07 21:22:07 -07:00
Leonardo de Moura
f9b62c53e6
feat(library/data/nat): add nat.is_inhabited theorem
2014-09-07 19:59:34 -07:00
Leonardo de Moura
48e5a2b6ad
feat(library/classes/inhabited): add dfun_inhabited theorem
2014-09-07 19:08:31 -07:00
Leonardo de Moura
4e2f5572f3
feat(library/data/vector): add vec.is_inhabited theorem
2014-09-07 19:08:31 -07:00
Leonardo de Moura
fea516af24
feat(frontends/lean/elaborator): allow Pi/forall local instances
2014-09-07 18:16:33 -07:00
Leonardo de Moura
c378a58cc2
feat(frontends/lean): add [class] modifier for inductive datatypes as a shortcut for 'class' command.
2014-09-07 18:16:33 -07:00
Leonardo de Moura
bbff564a1c
feat(frontends/lean): persistent notation in sections
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-06 11:14:20 -07:00
Floris van Doorn
02d72e4c40
feat(library/data/category): add vector
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:57:04 -07:00
Floris van Doorn
e9fc4f14a0
feat(library/data/category): add category theory
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:56:57 -07:00
Floris van Doorn
d2a4bb8a27
feat(library/data/empty): add false.to_empty and false.rec_type theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-05 09:31:27 -07:00
Leonardo de Moura
561753e7f1
refactor(library/data/sigma): cleanup module
2014-09-05 08:01:24 -07:00
Leonardo de Moura
28f025c6d7
refactor(library/logic/core): use subscripts
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 22:43:30 -07:00
Leonardo de Moura
9412e604c8
refactor(library/data): cleanup datatypes
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 22:31:52 -07:00
Leonardo de Moura
6632a50015
refactor(library): add namespaces 'or', 'and' and 'iff'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 21:25:21 -07:00
Leonardo de Moura
68d9bef860
refactor(library): add 'eq' and 'ne' namespaces
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 18:41:06 -07:00
Leonardo de Moura
2bc6f92d33
refactor(library): add 'and' namespace
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 17:44:53 -07:00
Leonardo de Moura
364bba2129
feat(frontends/lean/inductive_cmd): prefix introduction rules with the name of the inductive datatype
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 17:26:36 -07:00
Leonardo de Moura
8743394627
refactor(kernel/inductive): replace recursor name, use '.rec' instead of '_rec'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-04 15:04:57 -07:00
Leonardo de Moura
7500761114
refactor(library/data/nat/basic): remove unnecessary nat_
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 16:14:29 -07:00
Leonardo de Moura
e51c4ad2e9
feat(frontends/lean): rename 'using' command to 'open'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 16:00:38 -07:00
Leonardo de Moura
f891485a26
refactor(library): use '[protected]' modifier
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-03 15:13:03 -07:00
Leonardo de Moura
6077b3158c
fix(library): remove unnecessary [fact] modifier
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-02 16:06:55 -07:00
Leonardo de Moura
8dec18018c
refactor(library/data/list): avoid placeholders '_', make first argument of false_elim implicit
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-01 19:44:04 -07:00
Leonardo de Moura
aace5c37cd
refactor(library/data/subtype): elaborator does not need help anymore (i.e., 'show'-expression) for this file
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-09-01 19:04:15 -07:00
Jeremy Avigad
39825d2dc9
fix(library): rename congr class to congruence
2014-08-29 22:28:22 -07:00
Jeremy Avigad
6ffd719c1a
refactor(library/logic): move identities from classical to identities
2014-08-29 22:28:22 -07:00
Soonho Kong
fcb6c71517
chore(library): add .project file
2014-08-29 10:31:16 -07:00
Soonho Kong
226f301044
chore(library/.gitignore): update
2014-08-29 10:31:16 -07:00
Leonardo de Moura
b43313ec43
fix(library/nat/div): remove unnecessary '_''s
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 17:40:57 -07:00
Jeremy Avigad
8094884c85
feat(library/data/nat/div.lean): remove dependence on funext
2014-08-28 17:37:32 -07:00
Jeremy Avigad
1864fc2f6c
refactor(library): move more notation to general_notation
2014-08-28 17:37:32 -07:00
Leonardo de Moura
b51fa2b547
chore(library): minor cleanup
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 13:04:17 -07:00
Leonardo de Moura
d536475e49
refactor(library): more implicit_args for: and_assoc, and_comm, or_assoc, or_comm, if_pos, if_neg
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 11:10:04 -07:00
Leonardo de Moura
6b7e79b62f
feat(library/data/nat): mark more arguments implicit
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-28 10:38:58 -07:00
Jeremy Avigad
00a049a667
refactor(library/logic): rename connectives -> core, basic -> connectives
2014-08-27 18:43:24 -07:00
Leonardo de Moura
2d78387541
refactor(library/logic/basic): rename absurd_elim to absurd, delete contrapos and trivial_not_true theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-27 18:34:09 -07:00
Jeremy Avigad
1011a8022c
refactor(library/logic/connectives): make dependence prop <- eq <- basic
2014-08-27 20:46:07 -04:00
Leonardo de Moura
e7fd8f54c4
fix(library/Makefile): ignore flycheck generated files in the Makefile, fixes #101
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-27 08:36:32 -07:00
Leonardo de Moura
a8d58fdd33
refactor(library): mark absurd_elim argument as implicit
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:27:39 -07:00
Leonardo de Moura
9bea23111f
feat(library/logic/connectives/basic): add not_not_em theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:07:09 -07:00
Leonardo de Moura
0099a7b224
refactor(library/logic/connectives/eq): simplify eq_rec_on_id proof
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 18:07:09 -07:00
Leonardo de Moura
44c597724b
fix(frontends/lean): fail if theorem type has metavariables after type elaboration (and before proof elaboration)
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-26 09:01:17 -07:00
Leonardo de Moura
99438f0ee0
chore(library): add 'universe polymorphism' to list of extra feat
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 23:00:50 -07:00
Jeremy Avigad
5eedca08ea
refactor(library): set up and document standard/classical/hott imports
2014-08-25 22:57:55 -07:00
Jeremy Avigad
413517b86d
fix(library): correct markdown directories, revise defaults for logic and data
2014-08-25 22:57:55 -07:00
Leonardo de Moura
9715d06f4a
feat(library): minor cleanup, replace 'refl _' with 'rfl', define equivalence relation for sets
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 22:54:44 -07:00
Leonardo de Moura
3903be34a4
feat(frontends/lean): process theorem statement independently of proof, thus we have the same behavior in sequential and parallel compilation modes, closes #84
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-25 21:26:17 -07:00
Leonardo de Moura
7cb2ca62f4
refactor(Makefile): do not use full path on makefile rules
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:28:34 -07:00
Leonardo de Moura
06da0ebaaf
refactor(library): rename Makefile.common to Makefile
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:10:39 -07:00
Leonardo de Moura
dbaf81e16d
refactor(library): remove unnecessary 'standard' subdirectory
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 18:08:09 -07:00
Jeremy Avigad
505b93b7cb
refactor(lean/examples/constable.lean): move to library/standard/logic/examples/nuprl_examples.lean
2014-08-23 17:55:00 -07:00
Jeremy Avigad
d0f0e58a85
refactor(library/standard/data/int): split basic.lean into basic.lean and order.lean
2014-08-23 17:53:02 -07:00
Jeremy Avigad
47a1c00a6d
refactor(library/standard): collect notation in general_notation
2014-08-23 17:53:02 -07:00
Jeremy Avigad
ad969b4695
feat(library/standard/logic): add identities
2014-08-23 17:53:02 -07:00
Leonardo de Moura
df60ab4ada
fix(frontends/lean/calc): allow calc_subst to be defined for multiple operators, allow calc cmds to be organized into namespaces, fixes #65
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-23 16:45:04 -07:00
Leonardo de Moura
e602c4ba49
feat(frontends/lean): change multicomment to /- ... -/
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-22 17:55:13 -07:00
Leonardo de Moura
a5f0593df1
feat(*): change inductive datatype syntax
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-22 15:46:10 -07:00
Leonardo de Moura
fdd37fb1f3
chore(library/standard/data/sum): remove hints, they are not needed after the fix
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 21:44:02 -07:00
Jeremy Avigad
1fdc483ab9
fix(library/standard/data/int): remove misnamed file
2014-08-21 21:41:28 -07:00
Jeremy Avigad
02fba6e949
feat(library/standard/hott/fibrant.lean): add fibrant to library
2014-08-21 21:41:28 -07:00
Jeremy Avigad
05d0089381
feat(library/standard/sum.lean): add properties of sum
2014-08-21 21:41:28 -07:00
Jeremy Avigad
3afad10a72
feat(library/standard): add decidability of le for int
2014-08-21 21:41:28 -07:00
Leonardo de Moura
c4cc837e34
refactor(library/standard): define abbreviations using '@'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 18:39:38 -07:00
Leonardo de Moura
07bc0727e2
feat(frontends/lean): 'let [inline]' is the default
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 18:24:22 -07:00
Leonardo de Moura
0df87bae24
chore(library/standard/data/nat/div): remove TODO
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-21 17:58:03 -07:00
Leonardo de Moura
ab404beb01
chore(library/standard/data/nat/order): remove unnecessary 'proofs'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 21:51:41 -07:00
Leonardo de Moura
38f46b1290
feat(library/standard/data/nat/order): add le_decidable, lt_decidable, ge_decidable, gt_decidable
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 21:47:37 -07:00
Leonardo de Moura
129bb5fa09
chore(library/standard/data/int/basic): remove TODO's that were addressed by recent improvements
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 19:04:48 -07:00
Jeremy Avigad
d78c26977b
feat(library/standard/data/nat/div): port div
2014-08-20 18:04:31 -07:00
Jeremy Avigad
6264fb52d6
fix(lean/library/standard): fix tests, more cleanup
2014-08-20 18:04:31 -07:00
Jeremy Avigad
148d475421
feat(library/standard): port int, and reorganize a lot
2014-08-20 18:03:24 -07:00
Jeremy Avigad
ad26c7c93c
feat(library/standard/data/quotient): import quotient from lean 0.1
2014-08-20 18:03:24 -07:00
Leonardo de Moura
be5d034b6e
chore(library/standard): remove workarounds
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 16:46:19 -07:00
Leonardo de Moura
9588336c15
refactor(kernel/type_checker): remove "global" constraint buffer from type_checker, and use constraint_seq instead
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-20 16:46:19 -07:00
Soonho Kong
76d310da8b
chore(library/.gitignore): add TAGS
2014-08-15 20:55:38 -07:00
Soonho Kong
009e9fb3e6
feat(library/Makefile.common): add tags target
2014-08-15 20:52:29 -07:00
Leonardo de Moura
670bfe24f5
chore(build): remove hott library directory, and move hott tests
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-15 13:30:56 -07:00
Jeremy Avigad
5b7fb1f61a
feat(library/standard/classes): add nonempty
2014-08-15 13:06:27 -07:00
Jeremy Avigad
39c1683546
feat(library/standard/logic): add class nonempty
2014-08-15 12:58:58 -07:00
Jeremy Avigad
2d69303344
feat(library/standard): add sigma types and subtypes, make inhabited constructive
2014-08-15 12:58:58 -07:00
Jeremy Avigad
a1645c5ce5
feat(library/standard/hott/path.lean): add theorems and clean up file
2014-08-15 12:58:58 -07:00
Jeremy Avigad
7d7655c3f1
refactor(library/standard): integrate hott with standard library
2014-08-15 12:58:58 -07:00
Jeremy Avigad
218c9dfc81
feat(library/hott): begin porting Coq HoTT
2014-08-15 12:58:58 -07:00
Jeremy Avigad
0ea2d287e1
feat(library/standard): add classes for relations
2014-08-15 12:58:58 -07:00
Soonho Kong
caa47b9a70
fix(library): add LEAN_VERSION_FILE to Makefile.common
2014-08-14 18:21:58 -07:00
Leonardo de Moura
2225a2acc5
feat(library/Makefile.common): generate .ilean files
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-14 18:05:48 -07:00
Leonardo de Moura
e1c97d1fc4
fix(library): remove LEAN_VERSION_FILE from Makefile.common, it breaks the build on Linux
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-14 18:05:48 -07:00
Soonho Kong
6f2c14be23
feat(library/Makefile.common): add dependency on bin/version
...
This is related with issue #43 .
[skip ci]
2014-08-14 15:46:13 -07:00
Soonho Kong
87632622ee
chore(library): add .gitignore
...
[skip ci]
2014-08-14 15:31:57 -07:00
Leonardo de Moura
60ab6d3bd8
feat(frontends/lean): remove feature that in declarations such as (A B : Type), forced A and B to be in the same universe
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-12 17:40:30 -07:00
Leonardo de Moura
f319d084d4
feat(library/Makefile.common): use new --cache/-c option at Makefile.common
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-10 11:20:08 -07:00
Leonardo de Moura
f6ba6da4b5
fix(library/standard): add missing 'end' of namespace
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-07 17:52:51 -07:00
Leonardo de Moura
1a67e69678
feat(library/scoped_ext): force user to end a scope with an identifier matching the one used in beginning of scope, closes #30
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-07 16:59:08 -07:00
Soonho Kong
e0bc5915fb
fix(library/standard): remove long comments introduced by b2c2d1d
2014-08-07 11:59:59 -07:00
Soonho Kong
8d4c7b4b2c
fix(library/hott/Makefile): specify LEAN_OPTIONS "--hott"
2014-08-07 09:59:15 -07:00
Leonardo de Moura
59f6cb5962
fix(build): delete incorrect/old .d and .olean files, detect errors when generating .d files.
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:48 -07:00
Leonardo de Moura
d5bb7d45ec
fix(library/unifier): constraint priority in the unifier, and remove hack from if.lean
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:47 -07:00
Leonardo de Moura
47d49643b0
feat(library/standard/logic/connectives/if): add more general if_congr theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-04 13:58:47 -07:00
Soonho Kong
d8ae285f93
fix(library/Makefile.common): clean remove olean/d files recursively
...
[skip ci]
2014-08-04 11:47:24 -07:00
Leonardo de Moura
94efd51fc5
chore(library/standard/logic/connectives/if): cleanup
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 23:11:52 -07:00
Leonardo de Moura
c3f57cdb1c
feat(library/standard/logic/classes): add 'by_contradiction' theorem for decidable propositions
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 22:58:12 -07:00
Leonardo de Moura
ae2e0fd3dc
feat(library/standard/logic/connectives/if): add 'if-then-else' congruence theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 21:41:01 -07:00
Leonardo de Moura
f3cb5f2f84
feat(library/standard/logic/connectives/quantifiers): add some theorems for simplifier
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-03 20:03:49 -07:00
Leonardo de Moura
aeebd942f2
refactor(library/standard): use relative paths in some files in the standard library
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 20:04:27 -07:00
Leonardo de Moura
4b030c5d5f
feat(library/module): relative module path
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 19:47:55 -07:00
Leonardo de Moura
700c911cf7
chore(library/standard/logic/class/decidable): add missing 'end'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 17:00:01 -07:00
Leonardo de Moura
148836d14b
feat(library/standard/data/option): add basic theorems for option types
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-02 16:59:01 -07:00
Jeremy Avigad
b832b2e33e
refactor(library/standard/data/nat): stylistic changes
2014-08-01 21:22:54 -07:00
Jeremy Avigad
b5db9a4797
feat(library/standard/data/nat): port most recent nat to lean 0.2
2014-08-01 21:22:53 -07:00
Jeremy Avigad
4b05e70762
feat(library/standard/logic/axioms): add import default
2014-08-01 21:22:53 -07:00
Jeremy Avigad
77931f2af8
feat(library/standard): add markdown documentation
2014-08-01 21:22:53 -07:00
Soonho Kong
3cb9b4c265
fix(library/Makefile.common): make OSX-compatible
2014-08-01 10:21:40 -07:00
Leonardo de Moura
d27c85e30c
fix(library/Makefile.common): avoid error message when .d files do not exist
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 10:11:01 -07:00
Leonardo de Moura
f75beb8087
fix(library/standard/data/list/basic): remove 'sorry'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 09:15:30 -07:00
Jeremy Avigad
b2c2d1dd44
refactor(library/standard): organize files into a hierarchy
2014-08-01 09:11:51 -07:00
Jeremy Avigad
fbaf8b7e77
refactor(library/standard): begin reorganization into hierarchy
2014-08-01 09:11:51 -07:00
Jeremy Avigad
df84c4c2ca
refactor(library/standard): clean up logic, reorder arguments to elim rules
2014-08-01 09:11:51 -07:00
Jeremy Avigad
c89c96b913
feat(library/standard/list.lean): add facts about lists
2014-08-01 09:11:51 -07:00
Jeremy Avigad
e846c8c76b
index on master: 9dc1baa feat(library/standard/congruence.lean): finish congruence classes for propositional logic
2014-08-01 09:11:51 -07:00
Jeremy Avigad
5847743573
feat(library/standard/congruence.lean): finish congruence classes for propositional logic
2014-08-01 09:11:51 -07:00
Jeremy Avigad
8ea5dad4c0
feat(library/standard/congruence.lean): add class to infer that a function is a congruence with respect to two relations
2014-08-01 09:11:51 -07:00
Jeremy Avigad
09d5d074ec
feat(library/standard/list.lean): begin to port lists from lean 0.1
2014-08-01 09:11:51 -07:00
Leonardo de Moura
b279c94037
feat(build): cread .d (dependency) files for .lean files
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-08-01 09:08:16 -07:00
Leonardo de Moura
105c29b51e
refactor(library/standard): use new coding style, rename bool.b0 and bool.b1 to bool.ff and bool.tt
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-28 19:59:38 -07:00
Leonardo de Moura
8ad6d7a98b
doc(doc/lean): update Lean tutorial to Lean 0.2, and use org-mode
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-28 10:52:09 -07:00
Leonardo de Moura
864fdd37da
refactor(library/aliases): aliases are from name to names
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 21:01:59 -07:00
Leonardo de Moura
5555d620cf
feat(library/standard): add or_inl and or_inr as short-hands for the commonly used 'or_intro_left _' and 'or_intro_right _'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 17:25:57 -07:00
Leonardo de Moura
99a1966fd6
refactor(library/standard/set): use the same style for mem_inter and mem_union
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:32:59 -07:00
Leonardo de Moura
88130f339e
feat(library/standard): add basic set theory that does not rely on classical axioms
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:18:33 -07:00
Leonardo de Moura
3a77226b92
feat(library/standard/bool): add bor_to_or theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 13:17:55 -07:00
Leonardo de Moura
25f7929ea3
feat(library/standard/bool): add band_assoc and bor_assoc theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-27 12:50:57 -07:00
Leonardo de Moura
d9ee994281
feat(library/hott): copy basic files to hott library
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-26 19:13:04 -07:00
Leonardo de Moura
abe1dbd7e0
refactor(library/standard): cleanup notation
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:36:28 -07:00
Leonardo de Moura
a450ad5a95
feat(frontends/lean/inductive_cmd): improve notation for declaring 'empty' inductive datatypes
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:24:01 -07:00
Leonardo de Moura
a5b9a7b296
fix(frontends/lean/decl_cmds): support for section declarations with implicit parameters, they must be tagged with '@' when creating aliases
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-25 11:10:45 -07:00
Leonardo de Moura
62483b793f
feat(library/standard): add notation for symm, trans and subst
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 22:49:12 -07:00
Leonardo de Moura
ebf34f2fe9
refactor(library/standard): mark 'not' as transparent
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 22:14:15 -07:00
Leonardo de Moura
d84a4bea5f
chore(library/standard): port (an older version of) Floris's nat library to Lean 0.2
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 20:31:28 -07:00
Leonardo de Moura
fd0deb4555
feat(library/standard): add basic properties of binary functions
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 17:48:30 -07:00
Leonardo de Moura
bfdf187ce7
refactor(library/standard): rename rec to rec_on
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 17:01:51 -07:00
Leonardo de Moura
5529ef1056
feat(library/standard): add function 'helper' module
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 16:29:39 -07:00
Leonardo de Moura
5296275c41
feat(library/standard/logic): add imp_or theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 12:29:23 -07:00
Leonardo de Moura
08174f904b
feat(library/standard/logic): mark 'not equal' as an abbreviation
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-24 12:01:09 -07:00
Leonardo de Moura
8adf6e25ef
refactor(library/standard/unit): make unit type similar to the one in the hott library
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:56:05 -07:00
Leonardo de Moura
c5cbe1cc2c
refactor(library/standard): rename bool_decidable to prop_decidable
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:53:05 -07:00
Leonardo de Moura
b522ea6f2d
refactor(library/standard): rename bit to bool
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:49:54 -07:00
Leonardo de Moura
5eaf04518b
refactor(*): rename Bool to Prop
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 09:43:18 -07:00
Leonardo de Moura
b7838f5db7
feat(library/standard/cast): add dcongr2 theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 05:58:58 -07:00
Leonardo de Moura
1e595e8027
feat(library/standard/decidable): decidable is proof irrelevant
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-22 03:54:28 -07:00
Leonardo de Moura
c0f862d88a
feat(library/standard): add Diaconescu's theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 21:15:48 -07:00
Leonardo de Moura
13804f75f9
feat(library/standard/logic): iff is refl, trans, and symm
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 21:10:30 -07:00
Leonardo de Moura
29b6d1081c
feat(library/standard/bool_decidable): cleanup bool_decidable, and remove the artificial dependency to bit
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-21 02:42:11 +01:00
Leonardo de Moura
293ed333c7
feat(library/standard/if): cleanup 'if-then-else' theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-21 02:40:43 +01:00
Leonardo de Moura
5e8c128b00
feat(library/standard): add more decidable instances
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 01:10:49 +01:00
Leonardo de Moura
c37b5afe93
feat(library/standard): add decidable class
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:32 +01:00
Leonardo de Moura
4a0e701f6d
feat(library/standard/bit): add theorems and notation
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:32 +01:00
Leonardo de Moura
8b70ffb0a4
feat(library/standard): add equivalence inductive predicate
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-20 00:19:31 +01:00
Leonardo de Moura
e817260c6d
feat(library/standard): add or_comm, and_comm, ... theorems, cleanup notation
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-19 09:29:04 +01:00
Leonardo de Moura
ae2ce356b4
feat(library/hott): use new 'parameters' command
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-17 20:49:53 +01:00
Leonardo de Moura
58da037410
feat(library/hott): add more definitions and theorems from the HoTT book
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-17 20:24:00 +01:00
Leonardo de Moura
dfe48e6abe
feat(library/hott): add more hott definitions
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 22:42:38 +01:00
Leonardo de Moura
f7317a7139
feat(build): compile HoTT library when building
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 21:56:36 +01:00
Leonardo de Moura
359bfe93d5
feat(library/hott): add basic HoTT definitions and theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-15 21:46:33 +01:00
Leonardo de Moura
f942c6f64c
feat(library/standard/classical): add Peirce's law
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 03:05:34 +01:00
Leonardo de Moura
e3f364e1ee
feat(library/standard): add well-founded induction theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 02:48:40 +01:00
Leonardo de Moura
638bdd5e12
feat(library/standard): add forall and exists theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 02:48:00 +01:00
Leonardo de Moura
9cb238534d
feat(library/standard): add hilbert's choice operator
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 01:39:35 +01:00
Leonardo de Moura
ea2fffc260
feat(library/standard): add inhabited_exists theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-13 00:24:58 +01:00
Leonardo de Moura
0bd943574e
fix(library/standard): make sure file can be compiled when processing theorems in parallel
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 23:55:50 +01:00
Leonardo de Moura
ae2f019c23
refactor(library/standard): reorganize cast and piext theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 20:24:36 +01:00
Leonardo de Moura
bd82f5e81c
chore(library/standard/piext): cleanup hcongr proof
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 19:08:53 +01:00
Leonardo de Moura
319b1fb8d1
feat(library/standard): add piext axiom, and theorems that follow from it
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 09:44:46 +01:00
Leonardo de Moura
cd806bfabb
refactor(library/standard): move cast and heq to separate file
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 07:08:12 +01:00
Leonardo de Moura
1d273fcfdd
chore(frontends/lean): rename 'obtains' to 'obtain'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 06:35:24 +01:00
Leonardo de Moura
24540056c5
feat(library/standard): add basic heq theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-12 06:21:00 +01:00
Leonardo de Moura
cf34f75ab5
feat(frontends/lean): add 'obtains' expression
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-11 04:08:51 +01:00
Leonardo de Moura
a3be63af73
feat(frontends/lean): add tactic_hint command
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-08 15:08:13 -07:00
Leonardo de Moura
08465f049a
feat(frontends/lean): remove [class] annotation and 'class' command, they are redundant, we only need [instance] and 'instance'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 16:09:30 -07:00
Leonardo de Moura
c16951aba6
fix(library/aliases): aliasing behavior
...
The new test '../../tests/lean/run/alias3.lean' demonstrates the issue being fixed.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 15:40:55 -07:00
Leonardo de Moura
d30f387e72
feat(library/standard): add namespace 'pair'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-07 14:48:19 -07:00
Leonardo de Moura
59755289e4
feat(library/unifier): case split on constraints of the form (f ...) =?= (f ...), where f can be unfolded, and there are metavariables in the arguments
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 15:52:40 -07:00
Leonardo de Moura
a52c9f4e2b
feat(library/unifier): add option 'unifier.unfold_opaque', remove option 'unifier.use_exceptions' (the user should not be able to change this)
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 09:43:16 -07:00
Leonardo de Moura
efabd2280c
feat(library/unifier): allow unifier to unfold opaque definitions of the current module
...
It is not clear whether this is a good idea or not. In some cases, it seems to do more harm than good.
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-05 00:46:03 -07:00
Leonardo de Moura
9e1d425a45
feat(library/standard): add 'classical' module
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 22:50:30 -07:00
Leonardo de Moura
00e1a7db23
feat(frontends/lean/elaborator): add class instance elaboration
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 15:45:50 -07:00
Leonardo de Moura
079672f6f9
feat(frontends/lean): add 'class' and 'instances' infrastructure
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 14:28:09 -07:00
Leonardo de Moura
a97f82be1a
fix(library/standard): orelse notation, avoid conflict with inductive datatype declaration
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 10:10:05 -07:00
Leonardo de Moura
e0501104e2
feat(library/tactic): add 'fixpoint' tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-04 01:30:28 -07:00
Leonardo de Moura
ce282a549a
feat(frontends/lean): add 'prefix' notation declaration command
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 21:37:56 -07:00
Leonardo de Moura
6d773a2ba4
fix(library/standard): not notation
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 21:29:15 -07:00
Leonardo de Moura
855ffcba34
feat(library/standard): add pairs
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 20:43:16 -07:00
Leonardo de Moura
9ec4f23522
fix(library/standard): congr1 and congr2 theorem definition, we should allow A and B to inhabit different universes
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 16:25:14 -07:00
Leonardo de Moura
7d27368708
refactor(library/standard): use inductive datatype to define inhabited
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 15:05:19 -07:00
Leonardo de Moura
abbd054b51
feat(library/tactic): add eassumption tactic, and remove redundant 'subgoals' from apply tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 13:04:46 -07:00
Leonardo de Moura
528d51bc57
feat(library/standard): add congr theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 09:44:36 -07:00
Leonardo de Moura
0ff145e59b
feat(library/tactic): add apply tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 09:20:01 -07:00
Leonardo de Moura
6b8b5f3dd8
feat(library/tactic): expose more builtin tactics, cleanup expr_to_tactic procedure
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-03 08:06:28 -07:00
Leonardo de Moura
60c637fb9d
feat(library/tactic): add 'exact' tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 18:37:32 -07:00
Leonardo de Moura
37b5b7c4c2
feat(library/tactic): rename 'exact' to 'assumption', 'exact' is a different tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 18:10:42 -07:00
Leonardo de Moura
0f27856e4a
feat(library/tactic): new apply tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 13:14:50 -07:00
Leonardo de Moura
6ab46396d8
feat(library/tactic): expose 'trace' tactic
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 10:52:45 -07:00
Leonardo de Moura
e1d909455c
refactor(library/tactic): add namespace 'tactic', improve expr_to_tactic failure error message
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 10:45:09 -07:00
Leonardo de Moura
9f9f93645b
feat(library/standard): add bit, char, and string types
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:36:05 -07:00
Leonardo de Moura
0198dfc7c5
feat(frontends/lean): parse numerals as expressions of type 'num.num'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:09:33 -07:00
Leonardo de Moura
7593ee1468
refactor(library/standard): remove parameter from 'tactic' inductive type
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-02 08:09:24 -07:00
Leonardo de Moura
b2b76b078f
feat(frontends/lean): remove build_tactic_cmds, and use expressions for representing tactics
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 20:43:53 -07:00
Leonardo de Moura
cbac21ec7f
feat(library/tactic): add trick for 'embedding' tactics inside Lean expressions
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 19:05:22 -07:00
Leonardo de Moura
5b69f88664
feat(frontends/lean/notation_cmd): make the notation for setting precedence uniform
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-07-01 16:55:41 -07:00
Leonardo de Moura
d4b29cd132
feat(library/standard/logic): add exists unique
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 18:22:28 -07:00
Leonardo de Moura
eff59211ce
feat(library/standard): add more basic theorems
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 18:01:31 -07:00
Leonardo de Moura
af230e73c6
feat(library/standard): define heq, and configure 'calc' for '='
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 14:35:57 -07:00
Leonardo de Moura
e3f9b21c30
fix(kernel/inductive): bug in inductive datatype computational rule, we *must* first instantiate universe variables, *and then* the arguments
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 14:15:16 -07:00
Leonardo de Moura
6e6f778ecf
fix(kernel/converter): missing case for local constants
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 12:57:25 -07:00
Leonardo de Moura
2ea1e68f25
feat(library/standard): add equal_f theorem
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 12:00:47 -07:00
Leonardo de Moura
c5828dcf6c
feat(library/standard): add function extensionality axiom
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 11:53:04 -07:00
Leonardo de Moura
15e4b18d62
chore(library/standard): add copyright to library files
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 11:44:47 -07:00
Leonardo de Moura
3650ffdd4f
feat(library/standard): add iff_mp_right and iff_mp_left
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-30 00:29:42 -07:00
Leonardo de Moura
6b538c5fc8
feat(library/standard): add 'iff' and 'cast'
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-29 22:56:56 -07:00
Leonardo de Moura
e1d807a077
feat(library/standard): add inhabited, and files option and unit
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-29 19:30:38 -07:00
Leonardo de Moura
5a7e198583
feat(build): add Makefile for libraries
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 18:41:53 -07:00
Leonardo de Moura
193ce35419
refactor(frontends/lean/inductive_cmd): redesign inductive datatype elaboration, use the new elaborator, and use simpler algorithm to infer the resulting universe
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 15:33:56 -07:00
Leonardo de Moura
0adacb5191
feat(kernel): add infer implicit, and use it to infer implicit arguments of inductive datatype eliminators, and tag whether parameters should be implicit or not in introduction rules in the module inductive_cmd
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 13:57:36 -07:00
Leonardo de Moura
0e015974ca
fix(library/unifier): bug in process_flex_rigid, also cleanup the code and break it into different cases
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 11:19:56 -07:00
Leonardo de Moura
47ff300d1a
fix(frontends/lean): '@' explicit mark
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 07:30:36 -07:00
Leonardo de Moura
1019cd60ef
feat(library/logic): add basic definitions
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-28 00:29:42 -07:00
Leonardo de Moura
79d32b768d
feat(shell): add '--hott' command line option
...
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
2014-06-16 15:50:27 -07:00