Automating simplifying expressions according to associative-commutative reasoning in Coq
  • Rocq Prover 98.8%
  • Makefile 1.2%
Find a file
2018-02-09 17:20:19 -05:00
src Add some more AC typeclass instances 2018-02-09 17:20:19 -05:00
.gitignore Initial implementation of AC simplification 2018-02-08 15:56:35 -05:00
_CoqProject Add some more AC typeclass instances 2018-02-09 17:20:19 -05:00
Makefile Initial implementation of AC simplification 2018-02-08 15:56:35 -05:00
README.md Implement reifiction by hand 2018-02-09 16:55:08 -05:00

Associative Commutative reasoning in Coq

This library provide a tactic for automating associative-commutative reasoning. Here's a simple example case:

Theorem list_rewrite : forall A (x y z w: list A),
    Permutation (x ++ y ++ x ++ z ++ y ++ w)
                (x ++ x ++ y ++ z ++ y ++ w).
Proof.
  intros.
  match goal with
  | [ |- Permutation ?t ?t' ] =>
    quote t; requote t'
  end.
  ac_simplify.
  reflexivity.
Qed.