| author | haftmann | 
| Mon, 09 Jan 2017 18:53:20 +0100 | |
| changeset 64849 | 766db3539859 | 
| parent 63793 | e68a0b651eb5 | 
| child 65029 | 00731700e54f | 
| permissions | -rw-r--r-- | 
| 63793 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 1 | (* Author: Mathias Fleury, MPII | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 2 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 3 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 4 | Simprocs for multisets ordering, based on the simprocs for nat numerals. | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 5 | *) | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 6 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 7 | signature MULTISET_ORDER_SIMPROCS = | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 8 | sig | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 9 | val less_cancel_msets: Proof.context -> cterm -> thm option | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 10 | val le_cancel_msets: Proof.context -> cterm -> thm option | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 11 | end; | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 12 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 13 | structure Multiset_Order_Simprocs : MULTISET_ORDER_SIMPROCS = | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 14 | struct | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 15 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 16 | structure LessCancelMultiset = CancelNumeralsFun | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 17 | (open Multiset_Cancel_Common | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 18 |   val mk_bal   = HOLogic.mk_binrel @{const_name Orderings.less}
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 19 |   val dest_bal = HOLogic.dest_bin @{const_name Orderings.less} dummyT
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 20 |   val bal_add1 = @{thm mset_less_add_iff1} RS trans
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 21 |   val bal_add2 = @{thm mset_less_add_iff2} RS trans
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 22 | ); | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 23 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 24 | structure LeCancelMultiset = CancelNumeralsFun | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 25 | (open Multiset_Cancel_Common | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 26 |   val mk_bal   = HOLogic.mk_binrel @{const_name Orderings.less_eq}
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 27 |   val dest_bal = HOLogic.dest_bin @{const_name Orderings.less_eq} dummyT
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 28 |   val bal_add1 = @{thm mset_le_add_iff1} RS trans
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 29 |   val bal_add2 = @{thm mset_le_add_iff2} RS trans
 | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 30 | ); | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 31 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 32 | val less_cancel_msets = LessCancelMultiset.proc; | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 33 | val le_cancel_msets = LeCancelMultiset.proc; | 
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 34 | |
| 
e68a0b651eb5
add_mset constructor in multisets
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 35 | end |