# HG changeset patch # User nipkow # Date 1228981970 -3600 # Node ID 25e28a4070f3eef1c103a93d35d34279bb1be920 # Parent 501780b0bcae45f2940ae3fef15ad9ef094a72b7 Testfile for Stefan's code generator diff -r 501780b0bcae -r 25e28a4070f3 src/HOL/IsaMakefile --- a/src/HOL/IsaMakefile Wed Dec 10 10:28:16 2008 +0100 +++ b/src/HOL/IsaMakefile Thu Dec 11 08:52:50 2008 +0100 @@ -776,6 +776,7 @@ ex/Coherent.thy ex/Dense_Linear_Order_Ex.thy ex/Eval_Examples.thy \ ex/Groebner_Examples.thy ex/Random.thy ex/Quickcheck.thy \ ex/Codegenerator.thy ex/Codegenerator_Pretty.thy \ + ex/CodegenSML_Test.thy \ ex/Commutative_RingEx.thy ex/Efficient_Nat_examples.thy \ ex/Hex_Bin_Examples.thy ex/Commutative_Ring_Complete.thy \ ex/ExecutableContent.thy ex/Fundefs.thy ex/Guess.thy ex/Hebrew.thy \ diff -r 501780b0bcae -r 25e28a4070f3 src/HOL/ex/CodegenSML_Test.thy --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/HOL/ex/CodegenSML_Test.thy Thu Dec 11 08:52:50 2008 +0100 @@ -0,0 +1,54 @@ +(* Title: Test file for Stefan Berghofer's SML code generator + Author: Tobias Nipkow, TU Muenchen +*) + +theory CodegenSML_Test +imports Executable_Set +begin + +lemma "True : {False, True} & False ~: {True}" +by evaluation + +lemma +"eq_set ({1::nat,2,3,2} \ {3,1,2,1}) {2,2,3,1} & + eq_set ({1::nat,2,3,2} \ {4,1,5,1}) {4,4,5,1,2,3}" +by evaluation + +lemma +"eq_set ({1::nat,2,3,2} \ {3,1,2,1}) {2,2,3,1} & + eq_set ({1::nat,2,3,2} \ {4,1,5,2}) {2,1,2}" +by evaluation + +lemma +"eq_set ({1::nat,2,3,2} - {3,1,2,1}) {} & + eq_set ({1::nat,2,3,2} - {4,1,5,2}) {3}" +by evaluation + +lemma +"eq_set (Union{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} & + eq_set (Union{{1::nat,2,3,2}, {4,1,5,1}}) {4,4,5,1,2,3}" +by evaluation + +lemma +"eq_set (Inter{{1::nat,2,3,2}, {3,1,2,1}}) {2,2,3,1} & + eq_set (Inter{{1::nat,2,3,2}, {4,1,5,2}}) {2,1,2}" +by evaluation + +lemma "eq_set ((%x. x+2) ` {1::nat,2,3,2}) {4,5,3,3}" +by evaluation + +lemma +"(ALL x:{1::nat,2,3,2}. EX y : {4,5,2}. x < y) & + (EX x:{1::nat,2,3,2}. ALL y : {4,5,6}. x < y)" +by evaluation + +lemma +"eq_set {x : {4::nat,7,10}. 2 dvd x } {4,10}" +by evaluation + +lemma +"fold (op +) (5::int) {3,7,9} = 24 & + fold_image (op *) id (2::int) {3,4,5} = 120" +by evaluation + +end