Leonardo de Moura
f171286e74
refactor: add src/Lean/Meta/Tactic/LinearArith/Nat
2022-03-02 11:52:00 -08:00
Leonardo de Moura
4e310ac63d
feat: improve SimpTheorem preprocessor
2022-02-28 18:27:36 -08:00
Leonardo de Moura
55bc048656
feat: make sure inequalities are normalized when no monomial was cancelled
2022-02-28 15:10:39 -08:00
Leonardo de Moura
e455df9c95
fix: use a def-eq aware mapping at toLinearExpr
...
The new test exposes the problem fixed by this commit.
In the termination proof we have two `sizeOf xs` terms that are not
syntactically identical (only definitional equal) because the
instances are different.
2022-02-28 13:46:36 -08:00
Leonardo de Moura
c5fdd54cd8
feat: support for acyclicity at unifyEqs
...
closes #1022
2022-02-27 10:03:40 -08:00
Leonardo de Moura
89f88b1caa
feat: simplify nested arith expressions
2022-02-27 09:01:52 -08:00
Leonardo de Moura
ff76958959
feat: basic support for linear Nat arithmetic at simp
2022-02-26 08:58:32 -08:00
Leonardo de Moura
41a5c2bce4
feat: add support for negation at simpCnstr?
2022-02-25 18:30:09 -08:00
Leonardo de Moura
5030e613a2
feat: add isSimpCnstrTarget
2022-02-25 17:18:50 -08:00
Leonardo de Moura
7217ee7754
fix: GE.ge and GT.gt support at simpCnstr?
2022-02-25 17:12:27 -08:00
Leonardo de Moura
0681d818ec
chore: add helper function for simp
2022-02-25 16:42:41 -08:00
Leonardo de Moura
38da48c5cf
refactor: LinearArith/Basic.lean => LinearArith/Solver.lean
2022-02-25 16:35:36 -08:00
Leonardo de Moura
3f636b9f83
feat: add Lean.Meta.Linear.Nat.simpCnstr?
2022-02-25 16:27:21 -08:00
Leonardo de Moura
4f7067fe7f
fix: substEqs may close input goal
...
closes #1029
2022-02-25 08:07:23 -08:00
Leonardo de Moura
f7f04483b1
feat: add src/Lean/Meta/Tactic/LinearArith/Nat.lean
2022-02-24 15:24:59 -08:00
Leonardo de Moura
a430b2ad71
chore: add copyright
2022-02-24 13:45:34 -08:00
Leonardo de Moura
43c2169f78
fix: when performing contextual simplification, and arrow may become a dependent arrow
...
fixes #1024
2022-02-23 18:43:32 -08:00
Leonardo de Moura
49c64040a2
feat: add support for HEq at injections tactic
2022-02-23 17:31:17 -08:00
Leonardo de Moura
07d1ec1926
fix: simp_all was "self-simplifying" simplified hypotheses
...
fixes #1027
2022-02-23 16:48:28 -08:00
Leonardo de Moura
3e0ea7fbae
fix: use instantiateMVars before invoking pure function findIfToSplit
2022-02-23 16:25:33 -08:00
Leonardo de Moura
a1366fcb3b
chore: cleanup
2022-02-23 16:24:42 -08:00
Leonardo de Moura
c491659970
feat: improve split tactic error message
2022-02-23 16:00:42 -08:00
Leonardo de Moura
52ff840321
feat: support for HEq at injection
2022-02-22 17:24:11 -08:00
Leonardo de Moura
c73d177c94
perf: simpH? at MatchEqns.lean
2022-02-21 12:04:03 -08:00
Leonardo de Moura
33b1d2fd98
fix: preserve arrow binder names and info at simp
...
We use the idiom `revert; simp; ...; intro` in a few places. Some of
the reverted hypotheses manifest themselves as arrows in the target.
Before this commit, `simp` would lose the binder names and info when
simplifying an arrow, and we would get inaccessible names when
reintroducing them.
2022-02-20 16:27:40 -08:00
Sebastian Ullrich
4b03666ecc
chore: include orphan file
2022-02-15 09:44:19 +01:00
Leonardo de Moura
0649e5fa8a
feat: Basic model-based solver for linear arithmetic
2022-02-11 18:38:33 -08:00
Leonardo de Moura
c685a2d9ed
feat: add splitIte flag to splitTarget? tactic
2022-02-09 17:38:04 -08:00
Leonardo de Moura
7fc12014da
fix: make sure splitTarget? skips match expressions that produce type errors at splitMatch
...
We can now generate the equation theorem for
```
attribute [simp] Array.heapSort.loop
```
see #998
2022-02-09 17:07:10 -08:00
Leonardo de Moura
e574c5373f
feat: improve delta? method
...
Use zeta reduction to create new opportunities of beta-reduction.
This issue fixes on the problems that were affecting the generation of
equation theorems for `Array.heapSort.loop` (see issue: #998 ).
After this fix, the equation theorem generation fails at `splitMatch`.
2022-02-09 13:31:55 -08:00
Leonardo de Moura
33ed496661
feat: improve contradiction
2022-02-08 13:26:05 -08:00
Leonardo de Moura
c1777c17e3
feat: add simpTargetStar
2022-02-08 11:43:45 -08:00
Leonardo de Moura
824d0aa8a5
chore: remove leftover
2022-02-08 11:43:45 -08:00
Leonardo de Moura
a9bb646d4f
chore: cleanup
2022-02-07 17:35:07 -08:00
Leonardo de Moura
8d7f0ea2f2
feat: add removeUnnecessaryCasts
...
see #988
2022-02-07 17:24:32 -08:00
Leonardo de Moura
9d34d9bc5a
feat: cache and optimize mkCongrSimp? at simp
...
see #988
2022-02-07 17:01:21 -08:00
Leonardo de Moura
007f0e1d71
feat: use mkCongrSimp? at simp
...
TODO: cache auto generated congr theorems, and `removeUnnecessaryCasts`
see #988
2022-02-07 16:45:01 -08:00
Leonardo de Moura
93bd4a7f88
chore: lemma => thm
2022-02-07 13:55:23 -08:00
Leonardo de Moura
9c2942c36d
chore: "simp lemma" => "simp theorem"
2022-02-06 09:15:39 -08:00
Leonardo de Moura
d6dc077c86
refactor: CongrLemma => SimpCongrTheorem
2022-02-06 09:15:39 -08:00
Leonardo de Moura
96bae46045
refactor: SimpLemma => SimpTheorem
2022-02-06 09:15:39 -08:00
Leonardo de Moura
12e2a79170
chore: fix codebase after removing auto pure
2022-02-03 18:08:14 -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
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
630bf4e129
chore: update error message for throwNestedTacticEx
2022-02-02 15:06:03 -08:00
Leonardo de Moura
3101b98f50
feat: used nested tactic exception at splitMatch
2022-02-02 15:06:03 -08:00
Leonardo de Moura
b1617fe04c
feat: add throwNestedTacticEx
...
closes #194
2022-01-31 16:25:44 -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