Leonardo de Moura
3e757d890a
feat(library/tactic/intro_tactic): allow '_' in interactive mode as the anonymous name for intros, cases, induction
2017-03-09 15:42:36 -08:00
Leonardo de Moura
b6f6126075
feat(frontends/lean/pp): add attribute [pp_using_anonymous_constructor] for marking structures we should use the anonymous constructor notation when pretty printing instances
2017-03-09 15:17:18 -08:00
Leonardo de Moura
77f8479457
feat(library/type_context): allow zeta during type class resolution and app_builder
2017-03-08 23:04:56 -08:00
Leonardo de Moura
8979663164
feat(library/tactic/simplify): relax reducibility constraints when matching implicit arguments
...
Motivation: if the explicit part matches (what the user sees), then the implicit part must morally match too.
If it doesn't because of reducibility setting, the behavior is usually counterintuitive.
2017-03-08 20:08:54 -08:00
Leonardo de Moura
4ab0a6d8d2
fix(library): problems with the subtype constructor and field renaming
...
The problem was not detected by the test suite because of issue #1446
2017-03-08 19:42:12 -08:00
Leonardo de Moura
ceeb77ec8c
fix(library/compiler/erase_irrelevant): erase types of irrelevant lambdas
...
This modification makes sure we do not create unnecessary closures,
and avoid artificial dependencies that may prevent destructive updates.
2017-03-08 14:48:45 -08:00
Leonardo de Moura
7a99d87cbd
fix(library/tactic/ac_tactics): allow nested ac_app macros in perm_ac macro
...
fixes #1442
2017-03-08 13:46:49 -08:00
Leonardo de Moura
8530e39375
fix(library/tactic/smt/congruence_closure): fixes #1430
...
@dselsam I did not include your repro in the test suite because it will not work after we
enforce the `is_inner_ginductive_ir` check.
2017-03-07 17:13:29 -08:00
Leonardo de Moura
839645c489
feat(library/system/io): replace io.monad with io.bind, io.return and io.map
2017-03-07 16:10:47 -08:00
Daniel Selsam
7dcc36277a
feat(frontends/lean/inductive_cmds.cpp): better resultant universe inference
2017-03-07 12:55:01 -08:00
Leonardo de Moura
943576b8e9
feat(library/compiler/extract_values): restrict extra_values to nat/int/char/string/name
2017-03-07 11:14:32 -08:00
Leonardo de Moura
faeac14ed7
feat(library/parray): add trace option for tracking destructive updates
2017-03-07 10:57:40 -08:00
Daniel Selsam
4330e733c5
feat(inductive_compiler): API for is_ginductive_inner_*
2017-03-06 14:01:59 -08:00
Daniel Selsam
5f0ebf90de
fix(frontends/lean/structure_cmd): call inductive compiler without params in type
2017-03-06 14:01:46 -08:00
Daniel Selsam
d122f4417a
chore(src/library/print): update to use Sort
2017-03-06 14:01:33 -08:00
Leonardo de Moura
1d71103f29
feat(library/tactic/cases_tactic): add support for generalized inductive datatypes at 'cases' tactic
2017-03-06 11:49:04 -08:00
Daniel Selsam
d461cb001e
feat(inductive_compiler): get_ginductive_num_indices
2017-03-06 10:53:58 -08:00
Leonardo de Moura
931820c06d
chore(library/equations_compiler/structural_rec): update comment
2017-03-05 11:03:36 -08:00
Leonardo de Moura
959fa737eb
fix(library/equations_compiler/structural_rec): motive for brec_on
2017-03-05 09:50:38 -08:00
Sebastian Ullrich
5d68938a9c
feat(frontends/lean): expr literals ```(...)
2017-03-05 08:37:16 -08:00
Leonardo de Moura
d50da0feb7
feat(library/tactic/induction_tactic): add support for ginductive in the induction tactic
2017-03-04 14:55:35 -08:00
Leonardo de Moura
c456bceafa
feat(library/tactic/cases_tactic): remove m_dep_elim since we are now always using dependent eliminators
2017-03-04 14:35:42 -08:00
Leonardo de Moura
22988bb95d
feat(library/compiler): avoid pack/unpack overhead produced by the inductive_compiler in the code generator
...
TODO: make sure the user is not manually using cases_on for the
auxiliary datatype generated by the inductive_compiler to
destruct nested inductives.
2017-03-04 13:54:44 -08:00
Leonardo de Moura
060d6b66b2
fix(library/inductive_compiler/ginductive): incorrect assertion
2017-03-04 13:31:34 -08:00
Leonardo de Moura
b74740648e
fix(library/tactic): fixes #1414
2017-03-03 20:50:00 -08:00
Daniel Selsam
4e1967c242
feat(inductive_compiler): is_pack and is_unpack API
2017-03-03 20:39:47 -08:00
Daniel Selsam
dc5b57bff6
fix(inductive_compiler/ginductive.cpp): populate new fields of entry
2017-03-03 20:39:39 -08:00
Daniel Selsam
616a4ce5c5
fix(inductive_compiler/ginductive.cpp): debug code did not compile
2017-03-03 20:39:27 -08:00
Daniel Selsam
e9c05f727c
feat(inductive_compiler): APIs for simulated constructor offsets
2017-03-03 12:43:48 -08:00
Leonardo de Moura
d9da6f05b5
fix(library/tactic/cases_tactic): issue reported by @johoelzl at slack
2017-03-02 18:00:55 -08:00
Daniel Selsam
5ef892bb45
feat(inductive_compiler): cases_on for mutual and nested
2017-03-02 16:08:00 -08:00
Daniel Selsam
9590f2b7d0
feat(inductive_compiler): support nested inductive propositions
2017-03-02 16:01:45 -08:00
Leonardo de Moura
259d9271ab
fix(library/equations_compiler): use ginductive API
...
fixes #1334
2017-03-02 15:48:03 -08:00
Leonardo de Moura
6b3e651de7
fix(library/util): get_datatype_level should not assume inductive datatype result type is a sort
...
It may be something that is reducible to a sort.
2017-03-02 11:42:16 -08:00
Leonardo de Moura
b1848efbc4
chore(library/init/meta): add head prefix to head reduction tactics, and add zeta tactic (that applies zeta reduction to all subterms)
2017-03-02 10:55:38 -08:00
Sebastian Ullrich
b9dc1c251e
fix(library/inductive_compiler/ginductive_decl): assertion
2017-03-02 08:02:55 -08:00
Sebastian Ullrich
852df8872b
fix(library/constructions/drec): assertion
2017-03-02 08:01:38 -08:00
Daniel Selsam
1f6306d068
perf(library/inductive_compiler): simplification with sizeof lemmas
2017-03-01 21:13:20 -08:00
Johannes Hölzl
f44cbb896c
fix(src/library/equations_compiler/elim_match): handle mixing of inaccessible terms and variables
2017-03-01 21:12:42 -08:00
Leonardo de Moura
1542cd750f
feat(library/tactic/induction_tactic): use drec in the induction tactic
...
The new test failed before this change.
2017-03-01 18:34:24 -08:00
Leonardo de Moura
e9f18502a7
chore(library/user_recursors): add drec_on and dcases_on
2017-03-01 15:56:06 -08:00
Leonardo de Moura
1ded3b70b8
feat(library/constructions/drec): add dcases_on
2017-03-01 15:46:19 -08:00
Leonardo de Moura
132a629eb7
fix(library/tactic/induction_tactic): use whnf when inferring C.rec name
2017-03-01 14:29:26 -08:00
Leonardo de Moura
7b0a18167b
feat(library/constructions/drec): add drec_on and refactor
2017-03-01 14:12:10 -08:00
Leonardo de Moura
17556758cb
feat(library/constructions,library/inductive_compiler): automatically generate dependent eliminator for inductive predicates
...
The dependent eliminator for an inductive predicate C is called C.drec
TODO: construct dcases_on and drec_on using C.drec
We need this recursor for implementing dependent elimination for
inductive predicates.
We don't need to define acc.drec and eq.drec in the standard library anymore.
2017-02-28 20:58:04 -08:00
diakopter
cbaf060a80
chore(library): override warning
2017-02-28 11:24:21 -08:00
Leonardo de Moura
2386c18ee5
fix(library/tactic/eval): make sure old position information nested in the expression being evaluated is not used in type error messages
...
see #1401
2017-02-26 22:38:24 -08:00
Leonardo de Moura
184d505d51
fix(library/compiler/preprocess): do not unfold noncomputable definitions in the compiler
...
see #1401
2017-02-26 22:05:16 -08:00
Gabriel Ebner
9bcfc06bd0
fix(library/module): has_sorry: check examples
2017-02-24 21:08:49 +01:00
Sebastian Ullrich
dd379e5b34
refactor(library/equations_compiler/elim_match): simplify is_complete_transition
2017-02-23 01:52:14 +01:00