src/HOL/ex/CodegenSML_Test.thy
author wenzelm
Sat, 09 Jul 2011 21:53:27 +0200
changeset 43721 fad8634cee62
parent 41959 b460124855b8
permissions -rw-r--r--
echo prover input via raw_messages, for improved protocol tracing;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
41959
b460124855b8 tuned headers;
wenzelm
parents: 29106
diff changeset
     1
(*  Title:      HOL/ex/CodegenSML_Test.thy
29106
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     2
    Author:     Tobias Nipkow, TU Muenchen
41959
b460124855b8 tuned headers;
wenzelm
parents: 29106
diff changeset
     3
b460124855b8 tuned headers;
wenzelm
parents: 29106
diff changeset
     4
Test file for Stefan Berghofer's SML code generator.
29106
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     5
*)
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     6
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     7
theory CodegenSML_Test
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     8
imports Executable_Set
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
     9
begin
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    10
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    11
lemma "True : {False, True} & False ~: {True}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    12
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    13
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    14
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    15
"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
    16
 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
    17
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    18
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    19
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    20
"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
    21
 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
    22
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    23
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    24
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    25
"eq_set ({1::nat,2,3,2} - {3,1,2,1}) {} & 
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    26
 eq_set ({1::nat,2,3,2} - {4,1,5,2}) {3}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    27
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    28
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    29
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    30
"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
    31
 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
    32
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    33
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    34
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    35
"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
    36
 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
    37
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    38
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    39
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
    40
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    41
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    42
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    43
"(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
    44
 (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
    45
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    46
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    47
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    48
"eq_set {x : {4::nat,7,10}. 2 dvd x } {4,10}"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    49
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    50
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    51
lemma
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    52
"fold (op +) (5::int) {3,7,9} = 24 &
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    53
 fold_image (op *) id (2::int) {3,4,5} = 120"
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    54
by evaluation
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    55
25e28a4070f3 Testfile for Stefan's code generator
nipkow
parents:
diff changeset
    56
end