Leonardo de Moura
a9515ac7a4
feat(library/tactic/rewrite_tactic): try to fold nested recursive applications after unfolding a recursive function
...
See issue #692 .
The implementation still has some rough spots.
It is not clear what the right semantic is.
Moreover, the folds in e_closure could not be eliminated automatically.
2015-07-08 21:19:18 -04:00
Leonardo de Moura
77d5657813
refactor(library/algebra/function): move function.lean to init folder
...
Motivation: this file defines basic things such as function composition.
In the HoTT library, it is located in the init folder.
2015-07-06 07:29:56 -07:00
Leonardo de Moura
97b3fd45ce
fix(library/logic/axioms/prop_decidable): fixes #704
2015-06-26 19:14:36 -07:00
Jeremy Avigad
d28eb919f1
refactor(library/logic/axioms/examples/diaconescu.lean): mild reformatting, to match tutorial
2015-06-20 21:13:00 -07:00
Leonardo de Moura
ff5022c2f4
feat(library/data/axioms): add 'type_decidable'
...
In Lean standard mode, Hilbert choice implies that all types are
decidable.
2015-06-14 17:33:22 -07:00
Jeremy Avigad
1c93c5bbb2
feat(library/logic/{connectives.lean,quantiers.lean}): add iff congruence rules
2015-06-08 16:58:08 +10:00
Floris van Doorn
ff41886a32
feat(nat/bquant): give instances for quantification bounded with le
...
also add theorems c_iff_c to logic/connectives, where c is a connective
2015-06-04 20:14:13 -04:00
Floris van Doorn
876aa20ad6
feat(hott): Port remainder of §6.3 and §7.2 from the HoTT book
...
Also prove a theorem similar to Lemma 7.3.1
There are still some sorry's in hit.suspension
2015-06-04 20:14:12 -04:00
Jeremy Avigad
df69bb4cfc
feat(library/*): add theorems from Haitao on sets and functions, clean up
2015-06-04 11:55:25 -07:00
Jeremy Avigad
03952ae12c
feat(library/logic/{connectives,identities},library/algebra/function): cleanup and some additions from Haitao Zhang
2015-06-04 11:55:25 -07:00
Leonardo de Moura
16d03c17ee
refactor(library/logic/eq): use 'substvars' tactic
2015-06-02 23:55:51 -07:00
Leonardo de Moura
2f9005827c
feat(library/init/logic): 'if-then-else' and 'dependent-if-then-else' congruence theorems
...
We will use these theorems to test the new simplifier.
2015-06-02 13:27:50 -07:00
Leonardo de Moura
1238f43575
feat(library/logic/examples): add "double-negation translation" example
2015-05-31 18:18:10 -07:00
Jeremy Avigad
8bebd104ff
refactor(library/*): remove 'Module:' lines
2015-05-23 20:52:23 +10:00
Jeremy Avigad
db7bdce451
refactor(logic/funext.lean, algebra/function.lean): delete logic/funext, merge into algebra/function
2015-05-23 16:16:36 +10:00
Leonardo de Moura
396f77aa68
fix(library,hott): comment 'exit' commands to avoid warnings during compilation
2015-05-11 11:49:23 -07:00
Leonardo de Moura
8086ad7461
feat(library/init): define quot.hrec_on and quot.hrec_on₂ based on heterogeneous equality
...
They are easier to use than the version with nested eq.rec's
2015-05-09 09:49:41 -07:00
Leonardo de Moura
57ea660963
refactor(*): start process for eliminating of opaque
definitions from the kernel
...
see issue #576
2015-05-08 16:06:04 -07:00
Jeremy Avigad
e4c75ae8ae
feat(library/logic/connective.lean): add distributivity laws
2015-05-08 19:51:37 +10:00
Leonardo de Moura
7aa0e466a5
test(library): test new 'obtain' expression in the standard library
2015-05-05 18:30:16 -07:00
Leonardo de Moura
cd17618f4a
refactor(library): replace 'calc_trans', 'calc_symm', 'calc_refl' and 'calc_subst' commands with attributes '[symm]', '[refl]', '[trans]' and '[subst]'
...
These attributes are used by the calc command.
They will also be used by tactics such as 'reflexivity', 'symmetry' and
'transitivity'.
See issue #500
2015-05-02 15:15:35 -07:00
Leonardo de Moura
458d13025f
refactor(library,hott): define 'congr' in the initialization files
2015-05-02 11:29:31 -07:00
Leonardo de Moura
9760968b45
refactor(library,hott): use/test new 'contradiction' tactic in the standard and hott libraries
2015-04-30 13:56:12 -07:00
Leonardo de Moura
1149ead14c
chore(library/logic/examples/colog88): remove unnecessary annotation
2015-04-24 12:45:06 -07:00
Leonardo de Moura
a5306e70eb
feat(library/logic/examples/negative): add example showing that allowing negative inductive datatypes would lead to inconsistency
2015-04-24 09:33:09 -07:00
Leonardo de Moura
15c331591e
feat(library/logic/examples/colog88): add example from COLOG-88 paper
2015-04-24 09:33:09 -07:00
Leonardo de Moura
670eac9d50
refactor(library): avoid 'context' command in the standard library
2015-04-21 19:13:19 -07:00
Jeremy Avigad
53919699bc
refactor(library/logic/axioms/prop_decidable.lean): simplify proof of prop_decidable (using arbitrary instead of epsilon)
2015-04-18 11:39:52 -07:00
Leonardo de Moura
10954a073c
feat(library/logic/examples): add new example from Martín Escardó paper
2015-04-17 15:22:52 -07:00
Leonardo de Moura
9cb759e0a9
feat(library/logic/axioms/examples/leftinv_of_inj): add classical example
2015-04-16 22:39:51 -07:00
Leonardo de Moura
df8ebeeefc
feat(library/logic/axioms/examples/diaconescu): remove redundant hypothesis
2015-04-16 14:04:09 -07:00
Leonardo de Moura
1d87016f03
refactor(library): move some theorems to init
2015-04-07 07:46:11 -07:00
Jeremy Avigad
e76e445ece
feat(library/logic/connectives.lean): add calculation rules for true and false, and move exists unique to quantifiers
2015-04-05 12:15:21 -04:00
Leonardo de Moura
ed1acd9fb0
feat(library/init): move propext to init/quot, add Jeremy's funext theorem
2015-04-01 12:36:33 -07:00
Leonardo de Moura
ce5e83eb3e
refactor(library/init): move subsingleton to init folder
2015-04-01 11:57:29 -07:00
Leonardo de Moura
6e6cc749a8
feat(library/logic/axioms): break prop_complete into propext and em
...
The user may want to use propext without assuming em.
2015-03-31 18:51:43 -07:00
Leonardo de Moura
3d4a02089a
feat(library/logic/examples/propositional): add different encoding
2015-03-30 07:13:19 -07:00
Leonardo de Moura
9d34431bb6
feat(library/logic/examples/propositional/soundness): cleanup precedence levels
2015-03-30 05:42:47 -07:00
Leonardo de Moura
5ef88bfbc8
feat(library/logic/examples/propositional): add example based on Floris Coq files formalizing propositional Calculus
2015-03-30 05:12:29 -07:00
Jeremy Avigad
8e007b3441
feat(library/logic/axioms/hilbert.lean): add 'some' operator
2015-03-25 18:29:06 -07:00
Leonardo de Moura
368f9d347e
refactor(frontends/lean): approach used to parse tactics
...
The previous approach was too fragile
TODO: we should add separate parsing tables for tactics
2015-03-05 18:11:21 -08:00
Leonardo de Moura
c04c610b7b
feat(frontends/lean): add 'assert H : A, ...' as notation for 'have H [visible] : A, ...'
2015-02-25 14:30:42 -08:00
Jeremy Avigad
e513b0ead4
refactor(library,hott): rename theorems for decidable and inhabited
...
The convention is this: we use e.g. nat.is_inhabited and nat.has_decidable_eq
for these two purposes only, to avoid clashing with "inhabited" and "decidable_eq"
in a namespace. Otherwise, we use "decidable_foo" and "inhabited_foo".
2015-02-25 14:05:07 -08:00
Leonardo de Moura
3ede8e9150
refactor(library): use []
binder annotation when declaring instances
2015-02-24 16:12:39 -08:00
Leonardo de Moura
1cd44e894b
feat(library/tactic/class_instance_synth): conservative class-instance resolution: expand only definitions marked as reducible
...
closes #442
2015-02-24 16:12:35 -08:00
Leonardo de Moura
a35cce38b3
feat(frontends/lean): new semantics for "protected" declarations
...
closes #426
2015-02-11 14:09:25 -08:00
Jeremy Avigad
5ef510f290
feat(library/logic/axioms/prop_complete): add by_cases, by_contradiction
2015-02-01 11:17:45 -08:00
Jeremy Avigad
003a2c1e2c
refactor(library/logic/axioms): rename files, import logic.axioms.classical now imports all classical axioms
2015-02-01 11:17:45 -08:00
Jeremy Avigad
ba15da8d83
refactor(library/init/reserved_notation): increase binding strength of ^-1 to max+10
2015-01-26 20:38:21 -05:00
Leonardo de Moura
8246feff67
refactor(library/logic/eq): cleanup proof
2015-01-13 17:12:21 -08:00