equal
deleted
inserted
replaced
2381 Int Arith |
2381 Int Arith |
2382 |
2382 |
2383 code_modulename Haskell |
2383 code_modulename Haskell |
2384 Int Arith |
2384 Int Arith |
2385 |
2385 |
2386 types_code |
|
2387 "int" ("int") |
|
2388 attach (term_of) {* |
|
2389 val term_of_int = HOLogic.mk_number HOLogic.intT; |
|
2390 *} |
|
2391 attach (test) {* |
|
2392 fun gen_int i = |
|
2393 let val j = one_of [~1, 1] * random_range 0 i |
|
2394 in (j, fn () => term_of_int j) end; |
|
2395 *} |
|
2396 |
|
2397 setup {* |
|
2398 let |
|
2399 |
|
2400 fun strip_number_of (@{term "Int.number_of :: int => int"} $ t) = t |
|
2401 | strip_number_of t = t; |
|
2402 |
|
2403 fun numeral_codegen thy mode defs dep module b t gr = |
|
2404 let val i = HOLogic.dest_numeral (strip_number_of t) |
|
2405 in |
|
2406 SOME (Codegen.str (string_of_int i), |
|
2407 snd (Codegen.invoke_tycodegen thy mode defs dep module false HOLogic.intT gr)) |
|
2408 end handle TERM _ => NONE; |
|
2409 |
|
2410 in |
|
2411 |
|
2412 Codegen.add_codegen "numeral_codegen" numeral_codegen |
|
2413 |
|
2414 end |
|
2415 *} |
|
2416 |
|
2417 consts_code |
|
2418 "number_of :: int \<Rightarrow> int" ("(_)") |
|
2419 "0 :: int" ("0") |
|
2420 "1 :: int" ("1") |
|
2421 "uminus :: int => int" ("~") |
|
2422 "op + :: int => int => int" ("(_ +/ _)") |
|
2423 "op * :: int => int => int" ("(_ */ _)") |
|
2424 "op \<le> :: int => int => bool" ("(_ <=/ _)") |
|
2425 "op < :: int => int => bool" ("(_ </ _)") |
|
2426 |
|
2427 quickcheck_params [default_type = int] |
2386 quickcheck_params [default_type = int] |
2428 |
2387 |
2429 hide_const (open) Pls Min Bit0 Bit1 succ pred |
2388 hide_const (open) Pls Min Bit0 Bit1 succ pred |
2430 |
2389 |
2431 |
2390 |