Commit graph

371 commits

Author SHA1 Message Date
Joe Hendrix
01104cc81e
chore: bool and prop lemmas for Mathlib compatibility and improved confluence (#3508)
This adds a number of lemmas for simplification of `Bool` and `Prop`
terms. It pulls lemmas from Mathlib and adds additional lemmas where
confluence or consistency suggested they are needed.

It has been tested against Mathlib using some automated test
infrastructure.

That testing module is not yet included in this PR, but will be included
as part of this.

Note. There are currently some comments saying the origin of the simp
rule. These will be removed prior to merging, but are added to clarify
where the rule came from during review.

---------

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
2024-03-04 23:56:30 +00:00
Joachim Breitner
b2d668c340
perf: Use flat ByteArrays in Trie (#2529) 2023-09-20 13:22:37 +02:00
Sebastian Ullrich
451ccec154 fix: save when used as last tactic 2023-06-07 14:29:45 -07:00
Leonardo de Moura
1ec535d523 test: alternative encoding experiment for decEq and noConfusion 2022-11-23 18:46:10 -08:00
Mario Carneiro
dd5948d641 chore: snake-case attributes (part 1) 2022-10-19 09:28:08 -07:00
Leonardo de Moura
18ccc01cf1 feat: add inferType for LCNF 2022-08-09 17:33:24 -07:00
Leonardo de Moura
9e00cbd6d8 feat: add LCNFTypes.lean 2022-08-09 15:47:58 -07:00
Leonardo de Moura
fbb858a32c chore: missing case 2022-08-08 23:40:44 -07:00
Leonardo de Moura
1952633a75 chore: compiler simple type experiment 2022-08-08 20:18:46 -07:00
Leonardo de Moura
a82abee1b2 feat: sum of monomials normal form by reflection 2022-04-22 18:51:48 -07:00
Leonardo de Moura
d8ad343885 test: add Expr.eq_of_toPoly_eq 2022-04-20 23:04:29 -07:00
Leonardo de Moura
6bdeb6c9cb test: add support for sub as som.lean 2022-04-20 22:59:55 -07:00
Leonardo de Moura
6e09dfae1e test: simplify sum of monomials 2022-04-20 22:31:52 -07:00
Leonardo de Moura
14bfe57ba8 test: sum of monomials by reflection 2022-04-20 19:19:50 -07:00
Leonardo de Moura
e69e469a37 chore: update test 2022-04-18 11:56:46 -07:00
Leonardo de Moura
e6aee1e463 feat: make sure cases and induction alternatives are processed using the order provided by the user
Motivation: improve the effectiveness of the `save` and `checkpoint` tactics.
2022-04-18 11:45:36 -07:00
Leonardo de Moura
5599cefe2e feat: add sleep tactic for debugging purposes 2022-04-18 09:53:45 -07:00
Leonardo de Moura
607a590238 test: pge example 2022-04-17 15:17:28 -07:00
Leonardo de Moura
2f8d2e8a12 feat: add procedure for solving subgoals generated by mkSplitterProof 2021-08-24 20:23:13 -07:00
Leonardo de Moura
49520aa2ee feat: generate conditional equation theorems for match expressions 2021-08-19 19:33:31 -07:00
Leonardo de Moura
3c519887d1 chore: generate error message when MatchEqs fail
TODO: we currently do not generate equation theorems
for `match` expressions using array literals.
2021-08-19 17:04:52 -07:00
Leonardo de Moura
a6529a795b feat: add casesOnStuckLHS 2021-08-19 11:22:13 -07:00
Leonardo de Moura
45d3b85d5a refactor: cleanup MatchEqs and simplify SplitIf 2021-08-18 18:34:34 -07:00
Leonardo de Moura
83eaa47e0a chore: move MatchEqs 2021-08-17 21:32:32 -07:00
Daniel Selsam
89364b802b feat: top-down heuristic delaboration 2021-08-03 09:13:18 +02:00
Wojciech Nawrocki
7374b9ba45 chore: update webserver demo 2021-07-15 21:57:55 +02:00
Leonardo de Moura
fb9c1913d7 feat: prototype for equality theorem generator for auxiliary match functions 2021-05-31 18:52:22 -07:00
Daniel Fabian
93bb94bfea test: update playground for Hashable
due to new code generation, adjust the playground code
2021-03-30 13:36:52 -07:00
Daniel Fabian
fee3390dd1 feat: add Hashable deriving
add support for the `Hashable` deriving by combining structural
hashes over fields
2021-03-30 13:36:52 -07:00
Leonardo de Moura
48b855bfe5 chore: fix tests 2021-03-10 18:45:22 -08:00
Leonardo de Moura
0068732751 test: benchmarks for simp 2021-03-09 15:09:51 -08:00
Leonardo de Moura
4c82f5c688 test: perf experiments 2021-03-09 13:42:47 -08:00
Leonardo de Moura
b26c7087fe chore: increase test size 2021-03-04 17:27:24 -08:00
Leonardo de Moura
2b78de650a test: experiment 2021-03-04 14:48:49 -08:00
Leonardo de Moura
5626b537c7 chore: move nondet to Std/Control/Nondet.lean 2021-03-02 07:57:25 -08:00
Leonardo de Moura
533731d61e chore: fix nondet 2021-03-02 07:38:44 -08:00
Leonardo de Moura
d71aab5dc4 fix: allow bigger ctor objects
`IR/Checker.lean` is now also checking the maximum number of fields
and scalar size
2021-01-29 18:23:38 -08:00
Leonardo de Moura
a0ed2d1738 chore: update tests 2021-01-27 15:17:51 -08:00
Sebastian Ullrich
8a02dfec4f feat: subsume variables under variable
/cc @leodemoura
2021-01-22 14:36:05 +01:00
Leonardo de Moura
7ae861f6bd test: simplify 2021-01-21 18:32:23 -08:00
Leonardo de Moura
d6eb5a9ff2 feat: generate sizeOf equality lemmas for constructors
TODO: support for nested inductive types.
2021-01-21 17:44:15 -08:00
Leonardo de Moura
0bce549d92 test: remove code that is being generated automatically 2021-01-21 10:35:22 -08:00
Leonardo de Moura
dc142cff13 test: sizeOf experiments 2021-01-18 17:21:03 -08:00
Leonardo de Moura
731ca49088 chore: cleanup 2020-12-13 15:51:34 -08:00
Leonardo de Moura
d6ba0592d1 chore: remove dead code 2020-12-13 15:50:08 -08:00
Leonardo de Moura
e9a1c3ac44 test: deriving experiment 2020-12-12 15:26:55 -08:00
Leonardo de Moura
ce1baa5f39 test: deriving command experiments 2020-12-11 18:34:17 -08:00
Leonardo de Moura
2a5b18fde4 test: add nondet example 2020-10-29 16:33:40 -07:00
Leonardo de Moura
898a08a0c1 chore: avoid Has prefix in type classes
closes #203
2020-10-27 18:29:19 -07:00
Leonardo de Moura
10c32fcf94 chore: HasToString => ToString 2020-10-27 16:11:48 -07:00