diff -r 5af6a5e4343b -r e77e8ef5bf9b src/HOL/Codegenerator_Test/Code_Test_PolyML.thy --- a/src/HOL/Codegenerator_Test/Code_Test_PolyML.thy Sun Dec 22 08:46:03 2024 +0100 +++ b/src/HOL/Codegenerator_Test/Code_Test_PolyML.thy Mon Dec 23 21:22:10 2024 +0100 @@ -1,10 +1,15 @@ (* Title: HOL/Codegenerator_Test/Code_Test_PolyML.thy Author: Andreas Lochbihler, ETH Zurich - -Test case for test_code on PolyML + Author: Florian Haftmann, TU Muenchen *) -theory Code_Test_PolyML imports "HOL-Library.Code_Test" Code_Lazy_Test begin +theory Code_Test_PolyML +imports + "HOL-Library.Code_Test" + Code_Lazy_Test +begin + +text \Test cases for \<^text>\test_code\\ test_code "14 + 7 * -12 = (140 div -2 :: integer)" in PolyML @@ -12,4 +17,163 @@ test_code "stake 10 (cycle ''ab'') = ''ababababab''" in PolyML +text \Test cases for bit operations on target language numerals\ + +unbundle bit_operations_syntax + +lemma \bit (473514 :: integer) 5\ + by normalization + +test_code \bit (473514 :: integer) 5\ in PolyML + +lemma \bit (- 805167 :: integer) 7\ + by normalization + +test_code \bit (- 805167 :: integer) 7\ in PolyML + +lemma \473514 AND (767063 :: integer) = 208898\ + by normalization + +test_code \473514 AND (767063 :: integer) = 208898\ in PolyML + +lemma \- 805167 AND (767063 :: integer) = 242769\ + by normalization + +test_code \- 805167 AND (767063 :: integer) = 242769\ in PolyML + +lemma \473514 AND (- 314527 :: integer) = 209184\ + by normalization + +test_code \473514 AND (- 314527 :: integer) = 209184\ in PolyML + +lemma \- 805167 AND (- 314527 :: integer) = - 839103\ + by normalization + +test_code \- 805167 AND (- 314527 :: integer) = - 839103\ in PolyML + +lemma \473514 OR (767063 :: integer) = 1031679\ + by normalization + +test_code \473514 OR (767063 :: integer) = 1031679\ in PolyML + +lemma \- 805167 OR (767063 :: integer) = - 280873\ + by normalization + +test_code \- 805167 OR (767063 :: integer) = - 280873\ in PolyML + +lemma \473514 OR (- 314527 :: integer) = - 50197\ + by normalization + +test_code \473514 OR (- 314527 :: integer) = - 50197\ in PolyML + +lemma \- 805167 OR (- 314527 :: integer) = - 280591\ + by normalization + +test_code \- 805167 OR (- 314527 :: integer) = - 280591\ in PolyML + +lemma \473514 XOR (767063 :: integer) = 822781\ + by normalization + +test_code \473514 XOR (767063 :: integer) = 822781\ in PolyML + +lemma \- 805167 XOR (767063 :: integer) = - 523642\ + by normalization + +test_code \- 805167 XOR (767063 :: integer) = - 523642\ in PolyML + +lemma \473514 XOR (- 314527 :: integer) = - 259381\ + by normalization + +test_code \473514 XOR (- 314527 :: integer) = - 259381\ in PolyML + +lemma \- 805167 XOR (- 314527 :: integer) = 558512\ + by normalization + +test_code \- 805167 XOR (- 314527 :: integer) = 558512\ in PolyML + +lemma \NOT (473513 :: integer) = - 473514\ + by normalization + +test_code \NOT (473513 :: integer) = - 473514\ in PolyML + +lemma \NOT (- 805167 :: integer) = 805166\ + by normalization + +test_code \NOT (- 805167 :: integer) = 805166\ in PolyML + +lemma \(mask 39 :: integer) = 549755813887\ + by normalization + +test_code \(mask 39 :: integer) = 549755813887\ in PolyML + +lemma \set_bit 15 (473514 :: integer) = 506282\ + by normalization + +test_code \set_bit 15 (473514 :: integer) = 506282\ in PolyML + +lemma \set_bit 11 (- 805167 :: integer) = - 803119\ + by normalization + +test_code \set_bit 11 (- 805167 :: integer) = - 803119\ in PolyML + +lemma \unset_bit 13 (473514 :: integer) = 465322\ + by normalization + +test_code \unset_bit 13 (473514 :: integer) = 465322\ in PolyML + +lemma \unset_bit 12 (- 805167 :: integer) = - 809263\ + by normalization + +test_code \unset_bit 12 (- 805167 :: integer) = - 809263\ in PolyML + +lemma \flip_bit 15 (473514 :: integer) = 506282\ + by normalization + +test_code \flip_bit 15 (473514 :: integer) = 506282\ in PolyML + +lemma \flip_bit 12 (- 805167 :: integer) = - 809263\ + by normalization + +test_code \flip_bit 12 (- 805167 :: integer) = - 809263\ in PolyML + +lemma \push_bit 12 (473514 :: integer) = 1939513344\ + by normalization + +test_code \push_bit 12 (473514 :: integer) = 1939513344\ in PolyML + +lemma \push_bit 12 (- 805167 :: integer) = - 3297964032\ + by normalization + +test_code \push_bit 12 (- 805167 :: integer) = - 3297964032\ in PolyML + +lemma \drop_bit 12 (473514 :: integer) = 115\ + by normalization + +test_code \drop_bit 12 (473514 :: integer) = 115\ in PolyML + +lemma \drop_bit 12 (- 805167 :: integer) = - 197\ + by normalization + +test_code \drop_bit 12 (- 805167 :: integer) = - 197\ in PolyML + +lemma \take_bit 12 (473514 :: integer) = 2474\ + by normalization + +test_code \take_bit 12 (473514 :: integer) = 2474\ in PolyML + +lemma \take_bit 12 (- 805167 :: integer) = 1745\ + by normalization + +test_code \take_bit 12 (- 805167 :: integer) = 1745\ in PolyML + +lemma \signed_take_bit 12 (473514 :: integer) = - 1622\ + by normalization + +test_code \signed_take_bit 12 (473514 :: integer) = - 1622\ in PolyML + +lemma \signed_take_bit 12 (- 805167 :: integer) = - 2351\ + by normalization + +test_code \signed_take_bit 12 (- 805167 :: integer) = - 2351\ in PolyML + end