equal
deleted
inserted
replaced
1641 but also images like @{term "{#x+x. x:#M #}"} and @{term [source] |
1641 but also images like @{term "{#x+x. x:#M #}"} and @{term [source] |
1642 "{#x+x|x:#M. x<c#}"}, where the latter is currently displayed as |
1642 "{#x+x|x:#M. x<c#}"}, where the latter is currently displayed as |
1643 @{term "{#x+x|x:#M. x<c#}"}. |
1643 @{term "{#x+x|x:#M. x<c#}"}. |
1644 *} |
1644 *} |
1645 |
1645 |
1646 type_lifting image_mset proof - |
1646 type_lifting image_mset: image_mset proof - |
1647 fix f g A show "image_mset f (image_mset g A) = image_mset (\<lambda>x. f (g x)) A" |
1647 fix f g |
1648 by (induct A) simp_all |
1648 show "image_mset f \<circ> image_mset g = image_mset (f \<circ> g)" |
|
1649 proof |
|
1650 fix A |
|
1651 show "(image_mset f \<circ> image_mset g) A = image_mset (f \<circ> g) A" |
|
1652 by (induct A) simp_all |
|
1653 qed |
1649 next |
1654 next |
1650 fix A show "image_mset (\<lambda>x. x) A = A" |
1655 show "image_mset id = id" |
1651 by (induct A) simp_all |
1656 proof |
|
1657 fix A |
|
1658 show "image_mset id A = id A" |
|
1659 by (induct A) simp_all |
|
1660 qed |
1652 qed |
1661 qed |
1653 |
1662 |
1654 |
1663 |
1655 subsection {* Termination proofs with multiset orders *} |
1664 subsection {* Termination proofs with multiset orders *} |
1656 |
1665 |