src/Tools/isac/IsacKnowledge/InsSort.thy
branchisac-update-Isa09-2
changeset 37947 22235e4dbe5f
parent 37946 a28b5fc129b7
child 37948 ed85f172569c
     1.1 --- a/src/Tools/isac/IsacKnowledge/InsSort.thy	Wed Aug 25 15:15:01 2010 +0200
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,63 +0,0 @@
     1.4 -(* 6.8.02 change to Isabelle2002 caused error -- thy excluded !
     1.5 -
     1.6 -Proving equations for primrec function(s) "InsSort.foldr" ...
     1.7 -GC #1.17.30.54.345.21479:   (10 ms)
     1.8 -*** Definition of InsSort.ins :: "['a::ord list, 'a::ord] => 'a::ord list"
     1.9 -*** imposes additional sort constraints on the declared type of the constant
    1.10 -*** The error(s) above occurred in definition "InsSort.ins.ins_list_def (@@@)"
    1.11 -*)
    1.12 -
    1.13 -(* insertion sort, would need lists different from script-lists WN.11.00
    1.14 -WN.7.5.03: -"- started with someList :: 'a list => unl, fun dest_list
    1.15 -WN.8.5.03: error (@@@) remained with outcommenting foldr ?!?
    1.16 -
    1.17 - use_thy_only"IsacKnowledge/InsSort";
    1.18 -
    1.19 -*)
    1.20 -
    1.21 -InsSort = Script +
    1.22 -
    1.23 -consts
    1.24 -
    1.25 -(*foldr      :: [['a,'b] => 'a, 'b list, 'a] => 'a
    1.26 -WN.8.5.03: already defined in Isabelle2002 (instantiated by Typefix):
    1.27 -     "[[real, real] => real, real list, real] => real") : term
    1.28 -
    1.29 - val t = str2term "foldr";
    1.30 -val t =
    1.31 -  Const
    1.32 -    ("List.foldr",
    1.33 -     "[[RealDef.real, RealDef.real] => RealDef.real, RealDef.real List.list,
    1.34 -      RealDef.real] => RealDef.real") : term
    1.35 - *)
    1.36 -  ins        :: ['a list,'a] => 'a list
    1.37 -  sort       :: 'a list => 'a list
    1.38 -
    1.39 -(*descriptions, script-id*)
    1.40 -  unsorted   :: 'a list => unl
    1.41 -  sorted     :: 'a list => unl
    1.42 -
    1.43 -(*subproblem and script-name*)
    1.44 -  Ins'_sort  :: "['a list, \
    1.45 -		  \ 'a list] => 'a list"
    1.46 -               ("((Script Ins'_sort (_ =))// \
    1.47 -		  \ (_))" 9)
    1.48 -  Sort       :: "['a list, \
    1.49 -		  \ 'a list] => 'a list"
    1.50 -               ("((Script Sort (_ =))// \
    1.51 -		  \ (_))" 9)
    1.52 -
    1.53 -(*primrec
    1.54 -  foldr_base "foldr f [] a = a"
    1.55 -  foldr_rec  "foldr f (x#xs) a = foldr f xs (f a x)"
    1.56 -*)
    1.57 -
    1.58 -rules
    1.59 -
    1.60 -(*primrec .. outcommented analoguous to ListG.thy*)
    1.61 -  ins_base   "ins [] a = [a]"
    1.62 -  ins_rec    "ins (x#xs) a = (if x < a then x#(ins xs a) else a#(x#xs))" 
    1.63 - 
    1.64 -  sort_def   "sort ls = foldr ins ls []"
    1.65 -
    1.66 -end