Leonardo de Moura
|
5baac1905f
|
fix: use private names for theorems that are created on demand
closes #1006
|
2022-02-07 13:16:22 -08:00 |
|
Leonardo de Moura
|
8cea32f42d
|
chore: fix test
|
2022-02-06 09:15:39 -08:00 |
|
Leonardo de Moura
|
6de0b1fc67
|
feat: add mkCongrSimp.mkProof
see #988
|
2022-02-04 17:57:28 -08:00 |
|
Leonardo de Moura
|
3ae455bccf
|
feat: add mkCongrSimp?
TODO: proof is still missing
see #988
|
2022-02-04 17:57:28 -08:00 |
|
Leonardo de Moura
|
e9d85f49e6
|
chore: remove tryPureCoe?
Based on the discussion at
https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/for.2C.20unexpected.20need.20for.20type.20ascription/near/269083574
The consensus seemed to be that "auto pure" is more confusing than its worth.
|
2022-02-03 16:25:24 -08:00 |
|
Leonardo de Moura
|
5f74cd4968
|
feat: add let pat := val | elseCase do-notation
|
2022-02-03 15:55:03 -08:00 |
|
Leonardo de Moura
|
17eab845ed
|
fix: improve tryPostponeIfMVar
see #992
|
2022-02-03 13:24:19 -08:00 |
|
Leonardo de Moura
|
42b3ed5903
|
test: add Pi.single test
see #988
|
2022-02-03 09:22:22 -08:00 |
|
Leonardo de Moura
|
c30380e2fa
|
feat: lift the restriction in congr theorems that all function arguments on the lhs must be free variables
see #988
|
2022-02-02 18:23:18 -08:00 |
|
Leonardo de Moura
|
b7c853692d
|
test: add test for decide congruence issue
TODO: congruence lemma must be automatically generated.
see #988
|
2022-02-02 17:49:03 -08:00 |
|
Leonardo de Moura
|
101fc12b54
|
feat: partially applied user congruence lemmas
see #988
|
2022-02-02 17:41:21 -08:00 |
|
Leonardo de Moura
|
188f0eb70f
|
fix: splitMatch tactic
Improve how we compute the motive for match-splitter eliminator.
closes #986
|
2022-02-02 15:06:03 -08:00 |
|
Leonardo de Moura
|
65e1fc1211
|
feat: at splitMatch only generalize discriminants that are not FVar
|
2022-02-02 15:06:03 -08:00 |
|
Leonardo de Moura
|
f02013fd76
|
fix: induction MetaM tactic
The major premise may be a let-declaration.
closes #983
|
2022-01-31 13:41:38 -08:00 |
|
Leonardo de Moura
|
e5ef61225b
|
fix: missing condition at lpo case 3
|
2022-01-28 09:47:35 -08:00 |
|
Leonardo de Moura
|
cb4a86ac68
|
fix: do not validate local eq theorems
see #973
|
2022-01-27 11:50:20 -08:00 |
|
Leonardo de Moura
|
2fff4c42b7
|
fix: make sure irreducible constants are not unfolded when using the default reducibility setting
|
2022-01-26 11:55:21 -08:00 |
|
Leonardo de Moura
|
02677cf326
|
fix: igore instance implicit arguments in term ordering used at simp
closes #972
|
2022-01-24 18:57:31 -08:00 |
|
Leonardo de Moura
|
7ada79bf2e
|
fix: use an AC-compatible ordering on Expr at simp
closes #968
|
2022-01-22 09:42:59 -08:00 |
|
Leonardo de Moura
|
0615020cf7
|
feat: make sure Expr.approxDepth does not overflow
|
2022-01-22 07:45:19 -08:00 |
|
Leonardo de Moura
|
0c959b6942
|
chore: fix tests
|
2022-01-20 15:25:59 -08:00 |
|
Leonardo de Moura
|
f9fa24435d
|
chore: remove problematic instance hasOfNatOfCoe
See #403
See https://github.com/leanprover-community/mathport/issues/94
|
2022-01-20 14:47:25 -08:00 |
|
Leonardo de Moura
|
d190d6dda4
|
fix: use default reducibility when proving equation theorems for definition
Addresses issue reported by @fpfu at #945
|
2022-01-20 08:23:51 -08:00 |
|
Leonardo de Moura
|
1e21815e41
|
fix: equality theorem generation when named patterns are used
closed #945
|
2022-01-18 14:37:51 -08:00 |
|
Leonardo de Moura
|
1c1e6d79a7
|
feat: add equality proof for named patterns
The user can optionally name the equality proof.
The new test demostrates how to name the equality proof.
closes #501
|
2022-01-18 12:43:01 -08:00 |
|
Leonardo de Moura
|
cd903bde77
|
refactor: [s : Setoid α] => {s : Setoid α} or (s : Setoid α)
See comment at https://github.com/leanprover/lean4/issues/952#issuecomment-1015265136
cc @gebner
|
2022-01-18 09:24:06 -08:00 |
|
Leonardo de Moura
|
da06bb6605
|
fix: matching inside new termination_by
|
2022-01-17 08:47:05 -08:00 |
|
Leonardo de Moura
|
189f4bd372
|
chore: fix tests
|
2022-01-15 12:18:09 -08:00 |
|
Leonardo de Moura
|
b0d9c16c7a
|
chore: rename PointedType => NonemptyType
|
2022-01-15 11:43:53 -08:00 |
|
Leonardo de Moura
|
e3241e82bc
|
feat: define PointedType as { α : Type u // Nonempty α }
|
2022-01-14 20:36:51 -08:00 |
|
Leonardo de Moura
|
1620987b6c
|
fix: recursive applications in discriminants
|
2022-01-13 09:56:33 -08:00 |
|
Leonardo de Moura
|
3fbf5acbee
|
fix: add missing [reducible] annotations Init/WF.lean
|
2022-01-12 17:12:55 -08:00 |
|
Leonardo de Moura
|
98864f707e
|
test: add test for #879
The new `termination_by` syntax should address issue #879
closes #879
|
2022-01-12 16:25:09 -08:00 |
|
Leonardo de Moura
|
9162901c86
|
fix: expandTerminationByNonCore
|
2022-01-12 16:22:54 -08:00 |
|
Leonardo de Moura
|
91a0ac8a12
|
feat: elaborate new termination_by syntax
|
2022-01-12 16:15:30 -08:00 |
|
Leonardo de Moura
|
111d09fda3
|
fix: must apply afterCompilation attributes *after* smart unfolding definition was declared
The `[simp]` attribute checks whether the smart unfolding defintion
has been declared.
closes #946
|
2022-01-12 08:28:03 -08:00 |
|
Leonardo de Moura
|
45bd328d5e
|
fix: tests and add WellFoundedRelation.rel to list of definitions to unfold at decreasing_tactic
|
2022-01-12 08:28:03 -08:00 |
|
Leonardo de Moura
|
068cc700d8
|
test: ackermann
|
2022-01-11 15:03:07 -08:00 |
|
Leonardo de Moura
|
381f66428a
|
chore: use termination_by'
We are going to define a higher level syntax for `termination_by`.
|
2022-01-11 15:00:53 -08:00 |
|
Leonardo de Moura
|
4c918a2363
|
feat: use default_decreasing_tactic at WF/Fix.lean
|
2022-01-10 14:55:38 -08:00 |
|
Leonardo de Moura
|
0dd3ce0598
|
chore: fix test
|
2022-01-10 14:31:23 -08:00 |
|
Leonardo de Moura
|
b797c982fc
|
feat: add mkUnfoldProof
|
2022-01-07 13:51:45 -08:00 |
|
Mario Carneiro
|
dcaf3c615f
|
fix: induction generalizing precedence
|
2022-01-07 10:45:45 +01:00 |
|
Leonardo de Moura
|
bef161caf7
|
feat: add better support for discharging equation theorem hypotheses
|
2022-01-06 14:42:23 -08:00 |
|
Leonardo de Moura
|
90b179bea9
|
fix: add equation theorems even if definition supports smart unfolding
See new test.
|
2022-01-06 13:53:03 -08:00 |
|
Leonardo de Moura
|
d8d7d63830
|
fix: registers eqns info before adding definition
Otherwise `[simp]` at definition will fail to generate equational theorems.
|
2022-01-06 12:24:40 -08:00 |
|
Leonardo de Moura
|
7acbbb4fbb
|
fix: auxiliary whnfAux used at mkEqns
|
2022-01-06 09:57:41 -08:00 |
|
Leonardo de Moura
|
60934bf1d5
|
feat: add support for removing [simp] attribute from definitions with equational theorems
|
2022-01-05 16:57:59 -08:00 |
|
Leonardo de Moura
|
c2e52bd577
|
feat: use getEqnsFor? when applying [simp] at definitions
|
2022-01-05 15:59:39 -08:00 |
|
Leonardo de Moura
|
030e932db8
|
feat: use getEqnsFor? at simp
|
2022-01-05 11:28:24 -08:00 |
|