src/HOL/ex/CodegenSML_Test.thy
author wenzelm
Fri, 16 Apr 2010 21:28:09 +0200
changeset 36176 3fe7e97ccca8
parent 29106 25e28a4070f3
child 41959 b460124855b8
permissions -rw-r--r--
replaced generic 'hide' command by more conventional 'hide_class', 'hide_type', 'hide_const', 'hide_fact' -- frees some popular keywords;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29106
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     1
(*  Title:      Test file for Stefan Berghofer's SML code generator
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     2
    Author:     Tobias Nipkow, TU Muenchen
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     3
*)
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     4
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     5
theory CodegenSML_Test
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     6
imports Executable_Set
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     7
begin
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     8
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     9
lemma "True : {False, True} & False ~: {True}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    10
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    11
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    12
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    13
"eq_set ({1::nat,2,3,2} \<union> {3,1,2,1}) {2,2,3,1} &
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    14
 eq_set ({1::nat,2,3,2} \<union> {4,1,5,1}) {4,4,5,1,2,3}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    15
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    16
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    17
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    18
"eq_set ({1::nat,2,3,2} \<inter> {3,1,2,1}) {2,2,3,1} & 
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    19
 eq_set ({1::nat,2,3,2} \<inter> {4,1,5,2}) {2,1,2}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    20
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    21
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    22
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    23
"eq_set ({1::nat,2,3,2} - {3,1,2,1}) {} & 
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    24
 eq_set ({1::nat,2,3,2} - {4,1,5,2}) {3}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    25
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    26
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    27
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    28
"eq_set (Union{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} &
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    29
 eq_set (Union{{1::nat,2,3,2}, {4,1,5,1}}) {4,4,5,1,2,3}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    30
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    31
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    32
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    33
"eq_set (Inter{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} & 
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    34
 eq_set (Inter{{1::nat,2,3,2}, {4,1,5,2}}) {2,1,2}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    35
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    36
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    37
lemma "eq_set ((%x. x+2) ` {1::nat,2,3,2}) {4,5,3,3}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    38
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    39
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    40
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    41
"(ALL x:{1::nat,2,3,2}. EX y : {4,5,2}. x < y) &
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    42
 (EX x:{1::nat,2,3,2}. ALL y : {4,5,6}. x < y)"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    43
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    44
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    45
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    46
"eq_set {x : {4::nat,7,10}. 2 dvd x } {4,10}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    47
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    48
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    49
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    50
"fold (op +) (5::int) {3,7,9} = 24 &
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    51
 fold_image (op *) id (2::int) {3,4,5} = 120"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    52
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    53
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    54
end