src/HOL/ex/CodegenSML_Test.thy
author krauss
Tue, 28 Sep 2010 09:54:07 +0200
changeset 39754 150f831ce4a3
parent 29106 25e28a4070f3
child 41959 b460124855b8
permissions -rw-r--r--
no longer declare .psimps rules as [simp]. This regularly caused confusion (e.g., they show up in simp traces when the regular simp rules are disabled). In the few places where the rules are used, explicitly mentioning them actually clarifies the proof text.
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