Commit 376e5e05 authored by Robbert's avatar Robbert

Merge branch 'robbert/multiset_solver' into 'master'

Add solver `multiset_solver` for multisets

See merge request !167
parents 6ee0e09e 45b64e21
Pipeline #30172 passed with stage
in 11 minutes and 34 seconds
...@@ -20,6 +20,7 @@ API-breaking change is listed. ...@@ -20,6 +20,7 @@ API-breaking change is listed.
- Rename `drop_insert` into `drop_insert_gt` and add `drop_insert_le`. - Rename `drop_insert` into `drop_insert_gt` and add `drop_insert_le`.
- Added `Countable` instance for `Ascii.ascii`. - Added `Countable` instance for `Ascii.ascii`.
- Make lemma `list_find_Some` more apply friendly. - Make lemma `list_find_Some` more apply friendly.
- Add tactic `multiset_solver` for solving goals involving multisets.
## std++ 1.3 (released 2020-03-18) ## std++ 1.3 (released 2020-03-18)
......
From stdpp Require Import gmultiset.
Section test.
Context `{Countable A}.
Implicit Types x y : A.
Implicit Types X Y : gmultiset A.
Lemma test1 x y X : {[x]} ({[y]} X) .
Proof. multiset_solver. Qed.
Lemma test2 x y X : {[x]} ({[y]} X) = {[y]} ({[x]} X).
Proof. multiset_solver. Qed.
Lemma test3 x : {[x]} @{gmultiset A} .
Proof. multiset_solver. Qed.
Lemma test4 x y z X Y :
{[z]} X = {[y]} Y
{[x]} ({[z]} X) = {[y]} ({[x]} Y).
Proof. multiset_solver. Qed.
Lemma test5 X x : X = {[x]} X @{gmultiset A} .
Proof. multiset_solver. Qed.
End test.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment