| 41959 |      1 | (*  Title:      HOL/ex/CodegenSML_Test.thy
 | 
| 29106 |      2 |     Author:     Tobias Nipkow, TU Muenchen
 | 
| 41959 |      3 | 
 | 
|  |      4 | Test file for Stefan Berghofer's SML code generator.
 | 
| 29106 |      5 | *)
 | 
|  |      6 | 
 | 
|  |      7 | theory CodegenSML_Test
 | 
|  |      8 | imports Executable_Set
 | 
|  |      9 | begin
 | 
|  |     10 | 
 | 
|  |     11 | lemma "True : {False, True} & False ~: {True}"
 | 
|  |     12 | by evaluation
 | 
|  |     13 | 
 | 
|  |     14 | lemma
 | 
|  |     15 | "eq_set ({1::nat,2,3,2} \<union> {3,1,2,1}) {2,2,3,1} &
 | 
|  |     16 |  eq_set ({1::nat,2,3,2} \<union> {4,1,5,1}) {4,4,5,1,2,3}"
 | 
|  |     17 | by evaluation
 | 
|  |     18 | 
 | 
|  |     19 | lemma
 | 
|  |     20 | "eq_set ({1::nat,2,3,2} \<inter> {3,1,2,1}) {2,2,3,1} & 
 | 
|  |     21 |  eq_set ({1::nat,2,3,2} \<inter> {4,1,5,2}) {2,1,2}"
 | 
|  |     22 | by evaluation
 | 
|  |     23 | 
 | 
|  |     24 | lemma
 | 
|  |     25 | "eq_set ({1::nat,2,3,2} - {3,1,2,1}) {} & 
 | 
|  |     26 |  eq_set ({1::nat,2,3,2} - {4,1,5,2}) {3}"
 | 
|  |     27 | by evaluation
 | 
|  |     28 | 
 | 
|  |     29 | lemma
 | 
|  |     30 | "eq_set (Union{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} &
 | 
|  |     31 |  eq_set (Union{{1::nat,2,3,2}, {4,1,5,1}}) {4,4,5,1,2,3}"
 | 
|  |     32 | by evaluation
 | 
|  |     33 | 
 | 
|  |     34 | lemma
 | 
|  |     35 | "eq_set (Inter{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} & 
 | 
|  |     36 |  eq_set (Inter{{1::nat,2,3,2}, {4,1,5,2}}) {2,1,2}"
 | 
|  |     37 | by evaluation
 | 
|  |     38 | 
 | 
|  |     39 | lemma "eq_set ((%x. x+2) ` {1::nat,2,3,2}) {4,5,3,3}"
 | 
|  |     40 | by evaluation
 | 
|  |     41 | 
 | 
|  |     42 | lemma
 | 
|  |     43 | "(ALL x:{1::nat,2,3,2}. EX y : {4,5,2}. x < y) &
 | 
|  |     44 |  (EX x:{1::nat,2,3,2}. ALL y : {4,5,6}. x < y)"
 | 
|  |     45 | by evaluation
 | 
|  |     46 | 
 | 
|  |     47 | lemma
 | 
|  |     48 | "eq_set {x : {4::nat,7,10}. 2 dvd x } {4,10}"
 | 
|  |     49 | by evaluation
 | 
|  |     50 | 
 | 
|  |     51 | lemma
 | 
|  |     52 | "fold (op +) (5::int) {3,7,9} = 24 &
 | 
|  |     53 |  fold_image (op *) id (2::int) {3,4,5} = 120"
 | 
|  |     54 | by evaluation
 | 
|  |     55 | 
 | 
|  |     56 | end
 |