| author | wenzelm | 
| Fri, 23 Aug 2024 22:47:51 +0200 | |
| changeset 80753 | 66893c47500d | 
| parent 78800 | 0b3700d31758 | 
| permissions | -rw-r--r-- | 
| 65367 | 1 | (* Title: HOL/Library/Cancellation/cancel_simprocs.ML | 
| 2 | Author: Lawrence C Paulson, Cambridge University Computer Laboratory | |
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 3 | Author: Mathias Fleury, MPII | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 4 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 5 | Cancelation simprocs declaration. | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 6 | *) | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 7 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 8 | signature CANCEL_SIMPROCS = | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 9 | sig | 
| 78800 | 10 | val eq_cancel: Simplifier.proc | 
| 11 | val less_cancel: Simplifier.proc | |
| 12 | val less_eq_cancel: Simplifier.proc | |
| 13 | val diff_cancel: Simplifier.proc | |
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 14 | end; | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 15 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 16 | structure Cancel_Simprocs : CANCEL_SIMPROCS = | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 17 | struct | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 18 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 19 | structure Eq_Cancel_Comm_Monoid_add = Cancel_Fun | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 20 | (open Cancel_Data | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 21 | val mk_bal = HOLogic.mk_eq | 
| 69593 | 22 | val dest_bal = HOLogic.dest_bin \<^const_name>\<open>HOL.eq\<close> dummyT | 
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 23 |   val bal_add1 = @{thm iterate_add_eq_add_iff1} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 24 |   val bal_add2 = @{thm iterate_add_eq_add_iff2} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 25 | ); | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 26 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 27 | structure Eq_Cancel_Comm_Monoid_less = Cancel_Fun | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 28 | (open Cancel_Data | 
| 74633 | 29 | val mk_bal = HOLogic.mk_binrel \<^const_name>\<open>less\<close> | 
| 30 | val dest_bal = HOLogic.dest_bin \<^const_name>\<open>less\<close> dummyT | |
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 31 |   val bal_add1 = @{thm iterate_add_less_iff1} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 32 |   val bal_add2 = @{thm iterate_add_less_iff2} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 33 | ); | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 34 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 35 | structure Eq_Cancel_Comm_Monoid_less_eq = Cancel_Fun | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 36 | (open Cancel_Data | 
| 74633 | 37 | val mk_bal = HOLogic.mk_binrel \<^const_name>\<open>less_eq\<close> | 
| 38 | val dest_bal = HOLogic.dest_bin \<^const_name>\<open>less_eq\<close> dummyT | |
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 39 |   val bal_add1 = @{thm iterate_add_less_eq_iff1} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 40 |   val bal_add2 = @{thm iterate_add_less_eq_iff2} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 41 | ); | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 42 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 43 | structure Diff_Cancel_Comm_Monoid_less_eq = Cancel_Fun | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 44 | (open Cancel_Data | 
| 74633 | 45 | val mk_bal = HOLogic.mk_binop \<^const_name>\<open>minus\<close> | 
| 46 | val dest_bal = HOLogic.dest_bin \<^const_name>\<open>minus\<close> dummyT | |
| 65029 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 47 |   val bal_add1 = @{thm iterate_add_add_eq1} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 48 |   val bal_add2 = @{thm iterate_add_diff_add_eq2} RS trans
 | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 49 | ); | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 50 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 51 | val eq_cancel = Eq_Cancel_Comm_Monoid_add.proc; | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 52 | val less_cancel = Eq_Cancel_Comm_Monoid_less.proc; | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 53 | val less_eq_cancel = Eq_Cancel_Comm_Monoid_less_eq.proc; | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 54 | val diff_cancel = Diff_Cancel_Comm_Monoid_less_eq.proc; | 
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 55 | |
| 
00731700e54f
cancellation simprocs generalising the multiset simprocs
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 56 | end |