Leonardo de Moura
1155d52702
chore: update TODO comment
2022-03-02 12:51:46 -08:00
Leonardo de Moura
093ab49b7f
feat: improve generateElements a bit
2022-03-02 11:58:47 -08:00
Leonardo de Moura
52403fca83
feat: add support for guessing (very) simple WF relations
...
There are a lot of TODOs, but it is already useful for simple cases.
closes #847
2022-03-02 11:52:00 -08:00
Leonardo de Moura
99204d2226
refactor: modify elabWFRel to CPS
2022-03-02 11:52:00 -08:00
Leonardo de Moura
88a2645a5f
refactor: add Lean/Meta/Tactic/LinearArith/Basic.lean
2022-03-02 11:52:00 -08:00
Leonardo de Moura
f171286e74
refactor: add src/Lean/Meta/Tactic/LinearArith/Nat
2022-03-02 11:52:00 -08:00
Sebastian Ullrich
c9713b1b69
fix: setExpectedFn
2022-03-02 16:28:53 +01:00
Leonardo de Moura
1e205d635e
fix: bug at wfRecursion
...
"After compilation" attributes were being applied to soon when we did
not need to generate auxiliary functions.
2022-03-01 17:48:06 -08:00
Leonardo de Moura
eac5bab429
chore: helper theorem
2022-03-01 16:54:25 -08:00
Leonardo de Moura
140559c447
feat: sizeOf for Thunks and Unit -> a
2022-03-01 16:40:11 -08:00
Leonardo de Moura
de51160929
fix: core library
2022-03-01 13:36:24 -08:00
François G. Dorais
e84699f130
fix: remove unnecessary hypotheses
2022-03-01 13:31:01 -08:00
Leonardo de Moura
89e0de9fbb
chore: use WF compiler to define Nat.mod and Nat.div
2022-03-01 13:08:59 -08:00
Leonardo de Moura
f16d8acb29
feat: eager normalization for proofs by reflection
2022-03-01 12:43:55 -08:00
Leonardo de Moura
0f796ac804
chore: avoid heterogeneous polymorphic operations and add add hugeFuel at Linear.lean
2022-03-01 11:25:15 -08:00
Leonardo de Moura
9bd82b798a
chore: use bif instead of if at Linear.lean
2022-03-01 10:55:03 -08:00
Leonardo de Moura
da55789c26
feat: add a proper BEq instance for Nat
2022-03-01 09:01:08 -08:00
Leonardo de Moura
85a1a5233b
chore: workaround for compiler closed term extraction issue
2022-03-01 09:01:08 -08:00
Leonardo de Moura
5948003601
feat: add support for constant folding Nat.beq, Nat.blt, and Nat.ble
2022-03-01 09:01:08 -08:00
Gabriel Ebner
a7c9d2735f
fix: do not apply eta for structures in Prop
...
The eta-expansion contains invalid projections, and the eta-rule is
subsumed by proof irrelevance anyhow.
2022-03-01 09:00:46 -08:00
Gabriel Ebner
3746005f5f
fix: reject projection (_ : ∃ x, p).2
...
The inferred type of this projection does not even type check, in general.
2022-03-01 09:00:46 -08:00
Leonardo de Moura
0f06fbf648
feat: LawfulBEq must be reflexive
2022-02-28 19:27:51 -08:00
Leonardo de Moura
7a49f71328
feat: add bif notation for cond function
2022-02-28 18:34:59 -08:00
Leonardo de Moura
4e310ac63d
feat: improve SimpTheorem preprocessor
2022-02-28 18:27:36 -08:00
Leonardo de Moura
e8fb0c96ac
feat: add helper theorems
2022-02-28 18:06:02 -08:00
Leonardo de Moura
5ddb3c3435
feat: faster PolyCnstr.combine
2022-02-28 17:24:26 -08:00
Leonardo de Moura
adf3510e08
chore: increase maxHeartbeats default values
...
We now increase the number of heartbeats at `expr_eq_fn`. Thus, the
old default values are too small.
2022-02-28 15:44:08 -08:00
Leonardo de Moura
b5f28239af
feat: add List helper theorems
2022-02-28 15:16:13 -08:00
Leonardo de Moura
3005bab970
feat: helper theorem and tactic for WF
2022-02-28 15:11:00 -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
802922ddaf
feat: add helper sizeOf simp theorems
2022-02-28 12:28:37 -08:00
Leonardo de Moura
2ba3205f94
feat: add Prod.Lex.right'
2022-02-28 11:19:28 -08:00
Leonardo de Moura
10657f5e81
feat: add trace <string> tactic
2022-02-28 11:16:42 -08:00
Leonardo de Moura
63a5cd5056
fix: trace_state messages should not be lost during backtracking
2022-02-28 11:07:41 -08:00
Leonardo de Moura
d89fa9d4c3
fix: endPos missing at trace messages
2022-02-28 10:55:45 -08:00
Leonardo de Moura
46b97c2b70
fix: ExceptT.run_lift
2022-02-28 07:25:00 -08:00
Sebastian Ullrich
53d313c74c
chore: fix function name
2022-02-28 16:16:22 +01: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
c5baf759e2
fix: we must use addAsAxiom before getFixedPrefix
...
`getFixedPrefix` uses `isDefEq`, and it will fail if it needs to
retrieve the type of one of the recursive function being defined.
2022-02-27 09:01:52 -08:00
Sebastian Ullrich
6c6f66b812
feat: propagate actual file name in file worker
...
Also stop recreating the FileMap for every command, that's quadratic!
2022-02-27 10:33:27 +01:00
Leonardo de Moura
90055fb7d4
chore: clarify error message at decreasing_tactic
2022-02-26 10:15:05 -08:00
Leonardo de Moura
f22b48b226
fix: display all remaining goals at fail tactic error message
2022-02-26 09:49:06 -08:00
Leonardo de Moura
f7f886dcb2
feat: improve error message for decreasing_tactic failures
2022-02-26 09:42:59 -08:00
Leonardo de Moura
cabd599de1
feat: add fail tactic
2022-02-26 09:31:19 -08:00
Leonardo de Moura
0242eb7ede
feat: use simp (config := { arith := true }) at decreasing_tactic
...
closes #262
2022-02-26 09:12:34 -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