Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quellcode-Bibliothek inductive_realizer.ML   Sprache: SML

 

(*  Title:      HOL/Tools/inductive_realizer.ML
    Author:     Stefan Berghofer, TU Muenchen

Program extraction from(*  Title:      HOL/Tools/inductive_realizer.MLAuthor     Stefan BerghoferTU Muenchen
java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 46
*)


java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
sig
  val add_ind_realizers: string -> string list -> theory -> theory
end;

structure InductiveRealizer : java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
struct

fun thm_name_of thm =
  case  false(  { .} )= thm_name  =>I
      Thmthm ]of
    [(thm_name,
| _=>THM( proof ,0 thm);

val short_name_of =  val ('names)=(ase names of

fun| name :names >(ame )java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
 .java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 21
     names ( as(<^onst_name\openimp<> )$P) =
  Proofterm.expand_proof thy Proofterm.expand_name_empty;

fun subsets [] = [[]]
  |      t$strip_all usednames Q
      let val ys = subsets xs
      in ys @ map (cons x   '     ;

val pred_of = dest_Const_name o head_of;

fun strip_all' used names (Const (
    Const(const_name\open>.ll\> )$Abs (,T,Const (<>\open.imp<> _ $P $Q)=
          [] =>       subst_bound (ree (,T) P) subst_bound
        | name :: names' => (name, names'))
      in strip_all'
 ((tasConst(<const_name><pen>ure.mp\close> _ $P $Q) =
      t $ strip_all' used names Q
  | strip_all' _ _ t     (ase   ofjava.lang.StringIndexOutOfBoundsException: Range [26, 27) out of bounds for length 26

fun strip_all t = strip_all' (Term.add_free_names t []) [] t;

fun strip_one name
          |_=>vs)(. prop] ]java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
      (subst_bound ( (ame T), P,subst_bound((, ),Q)
  | strip_one _ (Const (\<^const_namejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

fun   =rev (Termadd_tvars(hm.rop_of(d intrs) [;
     (case strip_type T of
        (,  (,_)= if s  \type_name><pen>ool\close>then (a,T): elsevs
      | _ => vs)     (Logic.trip_imp_concl Thmp hintrs);

val attach_typeS = Term.smash_sorts \<^sort>\<open>type\<close>;

fun dt_of_intrs thy vs nparms intrs =
  let
     fun constr_of_intrintr=(inding.ame (ong_Name.ase_name (hort_name_of),
    val (Const (s, _), ts) =        (ogic.nvarifyT_global o snd)
(Logic.trip_imp_concl (hm.rop_of( intrs)))
    val params = map dest_Var (take      filter_out ( Extraction.nullT)
    val        (ap (ogic o Extraction.type_of thy vs [)(prems_of), NoSyn)
        ((t, maprpair dummyS) (ap (  = ' ^)vs@map(fst o )iTs))java.lang.StringIndexOutOfBoundsException: Index 89 out of bounds for length 89
      
(subtract = params( Termadd_vars(Thm.prop_of intr) []))) @
      java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
(java.lang.StringIndexOutOfBoundsException: Range [39, 12) out of bounds for length 99
  in
    ((tname, map (rpair dummyS) (map (fn a => "'" ^ a) vs @ map (fst o fst) iTs      ifbody_type T > .   else
      map constr_of_intr intrs)
  end;

fun           val  =length Ts;

(** turn "P" into "%r x. realizes r (P x)" **)

fun gen_rvar vs (t as Var ((java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 11
      if body_type T <> HOLogic.boolT            fold_rev Term.bs ("" U :xs (k_rlz U  Bound  )
        let
                      fold_revTerm  (ExtractionnullT $Extraction.ullt $u)
          val=t
          fun mk_realizes_eqn nvs nparms intrs=
          val     val intr = Term =Term.trip_sorts (.rop_of (hd);
val  list_comb (,map  ( -
        in 
          if member (op =)     iTs   .dd_tvars intr []);
            fold_rev Term.abs (("   val h Const (,T) )=strip_comb;
          else
            fold_rev Term.     elTs .rop  T, )
        end
  | gen_rvar _ t = t;

fun mk_realizes_eqn n vs nparms     val =map (sto  dest_Var);
  let
    val intr     val xs =map (ar  apfst(0)
    val concl = HOLogic.dest_Trueprop      Name.variant_listused replicate( )"" ~ elTs)
    val iTs = rev (Term.add_tvars  elseType(pace_implode ""(  T :vs,
    val Tvs = map        map (n >TVar (""^a) ])vs @Tvs;
     ( as Const (,T), us) = strip_comb concl;
    val params = List.take (us, nparms);
    val elTs=List.rop (inder_types T )
    val predT = elTs ---> HOLogic.boolT;
    val used = map (    valvs'=subtract (p=  mapfstrvs)
valxs =map (ar oapfstrpair 0)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
      (Name.variant_list      letvalT  (the o . (p = rvs) v
    val rT =       in (Const"ypeof" T> (" [)  Var(v ) ),
      else Type( " s^"": vs)
        map (         else (""   ) ])
    val
    val    val prems = mk_Tprem true)vs'@map (k_Tpremfalse)vs;
    val rvs=java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 30
    val vs'=subtract( = vs(  )
    val rname =        Extraction.mk_typ rTmk_typrT,

    fun mk_Tprem n v =
      let T= (he oAListlookup( )rvs)v
in (Const (typeof" java.lang.StringIndexOutOfBoundsException: Range [49, 28) out of bounds for length 70
        Extraction.mk_typ (if n then Extraction.nullT

      end;

valprems = mk_Tprem ) vs'@ mk_Tprem false ;
    val ts = map (gen_rvar vs)
    argTs =map fastype_of ts;

       ctxt = Proof_Context.nit_global thy
Extraction.k_typ ),
    (prems, (mk_rlz rT $     val args' = map (Free  fst)
       if nthenlist_comb (onst(,argTs --predT) ts@ xsjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
       else list_comb is_meta (Const (\<^copen>\<,_)$t)java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
  end;

fun fun_of_prem thy rsets vs      java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  let
    val ctxtjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
     args  Free apfstfsto ) ;
    val args' = map (Free o apfst fst)
(subtract (p =  T. (hm.rop_of ) ])java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
    val rule'=strip_allrule;
    val conclT = Extraction.etype_of thy            fun_ofts    prems
    val used = map (fst o dest_Free) is_meta premthen

    val is_rec =                   val prem' prem': '=java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46

    fun is_meta (Const (\<^const_namein
      | is_meta (Const (\<^const_name>\<open>PureifU =ExtractionnullT
|  Const(<><open>rueprop\close,_  ) =
          (case head_of t of
Const(s,_ =  (nductive. ctxt java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
                              Free(, T): args x: r: )premsjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65


    fun fun_of ts rts                     (Free,):  x,T :)( :  :used '
          let
             T  etype_ofthy  ] ;
            val [x, r] = Name.                  (Ts, Type (\<^type_nameProduct_Type.rod<> T,T2])>
          in if T =Extraction.
            then fun_of ts rts args used prems
             if  prem 
              if is_meta prem then
                let
                  val prem' :: prems' = prems;
 U =.etype_of   ]prem'
                in
                  if U = Extraction.nullT
                  then fun_of efold_revTermabs o  z)Ts
                    (Free (r,                          HOLogic. list_comb(x ) list_comb(r bs);
                    (Free (x, T) ::                     fun_offx:)(r ::rts)(:args x:  :used)premsend
                  else fun_of (reex T): ts Free (,U) : rts)
                    (Free (r, U) :: Free                     (ree (,binder_typesT --HOLogicunitT :rts)
                   Free(,T ::( :  : used)premsjava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
              else
                (case strip_type T of
                  (Ts, Type (\<end
                    let
                      val fx = Free (x, Ts ---> T1);
                      val fr = Free (r, Ts ---> T2);
                      val bs = map Bound (length Ts - 1           ifconclT=nullT
                      val t =
                        fold_rev (Term.abs o pair "z
(HOLogic.k_prod (list_comb(, )  fr,bs))
                    in fun_of (fx :: ts) (fr ::                  mapfastype_of (ev )-- conclT,revargs)
                |(s )=>fun_of (ree x T :ts)
                    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
: r :: used) prems
            else fun_of (Free (x, T) :: ts) rts (Free (x, T) ::     val premss = map_filter (fn (s, rs) => if member (op =) rsets s fn(,)=ifmember(p=  then
(x: )prems
          end
      | fun_of ts rts args  = prp=Thm.rop_of r (apThmp intrs)))else) java.lang.StringIndexOutOfBoundsException: Index 97 out of bounds for length 97
          let val xs = rev (rts @ ts
          in if conclT =Extraction.ullT
            then fold_rev (absfree o dest_Free)           fun_of_prem thy rsets vs params rule ivs~ )
 xs
              (list_comb
                (Free ("            .nitT - body_type fastype_of hdfs)) :: java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
                  map fastype_of (rev args) ---> conclT),    val Ts=fastype_of fs;
          end

  in fun_of args' []     fold_map(fn  =  names >

fun indrule_realizer   raw_induct rsetsparamsvsrec_namesrss  dummies =
      in  T =Extraction then(.ullt,)else
    val java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 11
   val  =map_filter( s )=  member (p= rsets s then
      SOME (rs, map (fn (_, r) => nth (Thm.prems_of raw_induct)
        (find_index (fn java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 10
   val fs=mapsfn (intrs prems),dummy >
      let
        val fs = map (fn (rule, (ivs, intr)) =.map (  ))
fun_of_premthy vs   intr)(rems ~intrsjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
      in
        if dummy then Const (\<^const_name>\<open>default\<closeend
              ;
        else fs
      end) (premss ~~ dummies)funadd_dummynamedname( as (,(,vs ) cs))=
 frees  fold Termadd_frees fs [java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
    val Ts=map fastype_of fs;
    fun name_of_fn intr = "  x
  in
l => fn  =
      let val T = thy)
      in if T = Extraction | add_dummiesf dts  =
        java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 24
valType(fun" [, _]) ;
          val a :: names' = names
        in
          (fold_rev absfree (("x", U) :: map_filter (      java.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
            Option        val dname =singleton (.ariant_list )"ummy"
              (AList.lookup (op =)        | add_dummies f (map (add_dummy (Bindingname )(. ) dts ( :)
            (java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 0
        end
      end) concls   
  enda   rvs=map fst(elevant_vars(. );

unadd_dummynamedname(  _ (,vs,mx,cs))=
  if Binding.eq_name (name, s    val vs1 =map  filter_outf (a,) )>member oprvsa)xs)
then, (s,,mx) (name,[OLogic.nitT] NoSyn) :: cs)
  else x;

fun add_dummies f [] _ thy =
, thyjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
   add_dummies dts usedthy=
      thy
      |> f (map snd dts)
      |-> (fn dtinfo => pair (map fst   (ame,(s,
.EMPTY_DATATYPE name' >
      let
        val name = Long_Name.base_name name';
        val dname = singleton (Name.variant_list used) "Dummy";
      in
        thy
        | add_dummies f (dd_dummy (inding.ame name)(.amedname)dts)(name : )
      end;

fun mk_realizer thy vs (name, rule, rrule, rlz, rt) =
  let
    val rvs = map fst (relevant_vars (Thm.prop_of rule));
    val xs =rev (erm.dd_vars (hm.rop_of  ];
    val vs1 =   ;
    val rlzvsfun rename tab = map (n x= the_default (Listlookupop= java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
    val vs2 =map (n ixn,_ = Var (xn,(he o AList.ookup (p= )) xs;
    val rs = map Var (subtract (op = o apply2 fst) xs rlzvs);
    val rlz' = fold_rev.qualifier short_name_of induct)
  in (name, (vs,
    if rt = Extraction.nullt then rt      iTs  (ermadd_tvars(hmp (d))[)
    .abs_corr_shyps rulevsvs2
      (Proof_Rewrite_Rules.un_hhf_proofvalparams=Inductive.arams_of raw_inductjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
         (fold_rev Proofterm.forall_intr_proof' rs     nparms =length paramsjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
  end;

fun rename tab = map (fn x => the_default >

fun add_ind_realizer rsets intrs induct raw_induct elims vs      (,(nductive.nfer_intro_vars  arity ~))
  let
    val qualifier =    val(,_   (ong_Name.( h rss);
    val inducts=Global_Theory.  (ong_Name.ualify qualifier"nducts)java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
    val val thy1 thy|
       java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    val (y_eqs,)  
      map(n(,rs = mk_realizes_eqn (ot( op)rsets)    )
    val nparms = length params;
    val params' = map dest_Var params;
    val(map (n s= (Binding.ame (ong_Name.ase_names) ar,NoSyn)tnames >
    = map (n (s,rs,(,arity), elim
      (s, (val dts = map_filter (fn (s, rs) => if member (op =) rsets s then
        (rss ~~ arities ~~ elims);
    val (prfx, _) = split_last 
    val   map fn s =  _ ( ^" :vs) rsets;

    
      Signroot_path>
      Sign.add_path (ong_Name )
    val (ty_eqs, rlz_eqs      |  BNF_LFP_Compatadd_datatype [.Kill_Type_Args]java.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
            | Extraction.dd_typeof_eqns_ity_eqs

    val thy1' = thy1 |>
      add_types_global
        (     case_thms  map (case_rewrites o BNF_LFP_Compatthe_info thy2 ] ;
      Extraction.add_typeof_eqns_i java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 18
    val dts = map_filter (fn (s, rs) =a     else #ec_rewrites (NF_LFP_Compat java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
SOME (   nparmsrs NONE ;

    (** datatype representing computational content of inductive set **)

    val (dummies ),)=
      thy1
      > BNF_LFP_Compatadd_datatype[BNF_LFP_Compat.Kill_Type_Argsjava.lang.StringIndexOutOfBoundsException: Index 82 out of bounds for length 82
        (map (pair false) dts) []
      |          ( : dummies') = dummies;
      ||> Extraction.add_realizes_eqns_i rlz_eqs;
    val java.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 39
    val  =map #  .the_info thy2 [)dt_names;
    val rec_thms =
          dest_eq o .est_Trueprop o Thm.rop_of ,(ecs2dummies)java.lang.StringIndexOutOfBoundsException: Index 90 out of bounds for length 90
       #ec_rewrites(.  ](dt_names)
    val         rss (rec_, ummies)
HOLogic.est_eq  HOLogicdest_Trueprop oThm.)rec_thms;
    val (constrss, _) = fold_map (fn (s, rs) => java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 37
      if  ( =   
        let
          ( :dummies) =dummiesjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
          (ecs1,recs2)= chopl )( d  tl recs else )
        in (map (head_of o java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 31
          HOLogic.dest_eq o HOLogic.dest_Trueprop o        java.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
        end
      else (replicate (length rs) Extraction.nullt, (recs, dummies)))
        rss(,dummies;
    val rintrs = map (fn          val '=Logic.nvarifyT_global java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
(Extraction.  java.lang.StringIndexOutOfBoundsException: Range [37, 38) out of bounds for length 37
        (if c = Extraction.nullt then c java.lang.StringIndexOutOfBoundsException: Range [0, 44) out of bounds for length 43
          (subtract      >map (pfst ( apfstBinding.)
            (maps snd rss ~~ flat constrss)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    val (lzpreds,rlzpreds) =
      rintrs |> map (fn rintr =>
        let
          val Const (,T =head_ofH.dest_Trueprop (ogic.trip_assums_concl rintr);
          val s' = Long_Name.base_name s;
          val T  Logic.java.lang.StringIndexOutOfBoundsException: Range [43, 41) out of bounds for length 44
        in (((s(
      |> distinct
      >map (pfst (pfst (pfst Bindingname))
      |>      .theory_map_result Inductivetransform_result

    val rlzparams = map (fn Var ((s, _), T) =>        quiet_mode =false,verbose =,alt_name =Bindingempty,coind  ,
      (List.take          no_elim=false   , =false
        (HOLogic.est_Trueprop (ogicstrip_assums_concl hd rintrs)) );

    (** realizability predicate **)

    val (ind_info, thy3') = thy2 |>
Named_Target.heory_map_resultInductive.ransform_result
      (Inductive.add_inductive
        {uiet_mode =false verbose  ,java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 86
          no_elim =         (HOLogic.dest_conj.est_Trueprop (hmconcl_ofraw_induct;
        rlzpreds  fun add_ind_realizer  thy =
          ((Binding.name (Long_Name.         vs'=( a (  fst o dest_Var)
           rlzpreds'(ogic. ))
             (rintrs ~~ (hd (Thm.take_prems_of hdinducts)) ) java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
      Sign.root_path;
    val thy3 = fold (Global_Theory.hide_fact false o short_name_of) (#intrs ind_info) thy3';

    (** realizer for induction rule **)' @ Ps)rec_names rss intrsdummiesjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50

    val Ps = map_filter (fn _  (.prop_of) r ~inducts)
      SOME (st(st (est_Var head_of P))  java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 56
       HOLogicdest_conj (HOLogic.est_Trueprop (.concl_of ));

    fun add_ind_realizer Psthy java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
      let
        val vs' = rename (map (apply2 (fst o fst o dest_Var))
          (params ~~ List.take (snd (strip_comb (HOLogic.dest_Trueprop
            (hd             (,Q)=strip_onename(Logic.nvarify_globalrlz;
        val rs = indrule_realizer            val Q'='[rnames Q
          (vs' @ Ps) rec_names rss' intrs dummies;        val concl=HOLogicmk_Trueprop(oldr1HOLogic.k_conj(
> Extractionr thy (s @ Ps java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
          (Thm.          =mapmk_meta_eq({fst_conv}:@thmsnd_conv :rec_thms;
        val used = fold Term.add_free_names rlzs [];
        val rnames = Name.variant_list used (replicate
         rnames'' =Namevariant_list
          (used          r ctxt[ ind_info]1,
        val rlzs' as (prems, _, _) :: _ = map (fn (rlz,            REPEAT ((resolve_tac ctxt prems THEN_ALL_NEW EVERYresolve_tacctxtprems  EVERY'
          let
            val (P, Q) = strip_one name (Logic.unvarify_global               FIRST[ ctxt eresolve_tacctxtallE  ctxt[mpE]] 1)java.lang.StringIndexOutOfBoundsException: Index 98 out of bounds for length 98
            val Q' = strip_all' [] rnames' Q
          in
            (Logic.strip_imp_prems Q', P, Logic.strip_imp_concl         val thms = map (fn th => zero_var_indexes (rotate_prems ~1 (th RS mp)))
          end) (rlzs ~~ rnames);
         concl=HOLogic. foldr1.k_conj(ap
          (fn (_, _ $ P, _ $ Q) =>          (.qualified_name (space_implode "_"
       rews =mapmk_meta_eq({fst_conv : @thmsnd_conv}: ;
        val thm = Goal.prove_global thy []
          (map attach_typeS prems)(ttach_typeSconcl)
          (fn {context = ctxt, prems} => EVERY
          [resolve_tac ctxt [#raw_induct ind_info] 1,
           rewrite_goals_tac ctxt rews,
           REPEAT ((resolve_tac ctxt prems THEN_ALL_NEWExtractionadd_realizers_i
             K (ewrite_goals_tac  rews) . ctxtjava.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 83
              DEPTH_SOLVE_1o
              FIRST' [assume_tac ctxt, eresolve_tac ctxt [allE], eresolve_tac ctxt [impE]]]) 1)]);
        val (thm', thy') = Global_Theory.store_thm (Binding.qualified_name (             ((nd ,rlz,r]=
          Long_Name.  "nduct": vs'@Ps @[correctness"),thm thy;
        val thms = map (fn th => zero_var_indexes (rotate_premsind corr,,]
          (Old_Datatype_Aux.split_conj_thm thm');             [)thy'
        val ([thms'], thy'') = java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
          [((Binding.val case_names = map (dest_Const_name ofsto HOLogicdest_eq o
            Long_Name.ualifyqualifier"nducts": vs'@Ps java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
               "]),thms) [) 'java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
        ;
      in
        Extraction.java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 9
          (map (fn (((ind, corr), rlz), r) =>
              mk_realizer thy'' (vs' @ Ps)           (n(s,_,T >Logic.ll( (, T)java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
            realizers @ (case java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 26
             [(ind,corr, rlz) r) =
               [mk_realizer thy'' (           val fs=subtract(p= '(erm.dd_vars (prop_of )[)
                  ind, , r)
           | _ => [])) thy''
      end;

    (** realizer for elimination rules **)

    val case_names = map (dest_Const_name o head_of o fst o HOLogic.dest_eq o
      HOLogic.est_Trueprop o Thm. o hd)case_thms;

      Ps
      (((((elim,          =
      let
        val (prem :: prems) = Thm.prems_of elim;
        fun reorder1 (p,rma  pair"")
fold( (s ) T) >Logica (ree s ))
            (subtract (op =) params' (Term.add_vars (Thm.java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 30
(strip_all)
        fun reorder2 ((ivs, intr), i) =
          let val fs = subtract (op =)java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
          in fold (lambda o Var) fs (list_comb (Bound (i + lengthval'=attach_typeS strip_allLogic.java.lang.StringIndexOutOfBoundsException: Range [72, 65) out of bounds for length 72
        val p  Logiclist_implies
          (map reorder1 (prems          Logic. rlz)(. rlz)
        val ' =Extraction.  vs@Ps [ p;
        val T = if dummy then (HOLogic.unitT --> body_type T') --> 
        val Ts = map (Extraction.etype_of thy (vs @ Ps) [              (asm_simp_tac (ut_simpset HOL_basic_ss ,
 =
          if null Ps then Extraction.nullt
          else
            fold_rev (Term.abs o pair "x") Ts
(list_comb(onst(, T),
                (if dummy then
                   [bs (x" HOLogic.nitT, Const close> body_type T)]
                 else []) @
                map reorder2          short_name_of elim : Ps @[correctness])  thy
                [BoundExtractionadd_realizers_i
 Extraction.realizes_of thy (s @Ps) r (hm.rop_of elim)
        val rlz'      ;
        val rews = map mk_meta_eq
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
          (Logic.strip_imp_prems rlz') (Logic.strip_imp_concl rlz')
          (fn {context = ctxt, prems map (mk_realizer  vs)( f (rule rrule,rlz,c)=
            [( )1,
             eresolve_tac ctxt [elimR] 1,
             ALLGOALS( (ut_simpset  ctxt),
             rewrite_goals_tac ctxt rews,
ac ctxt prems THEN_ALL_NEW (Object_Logic ctxt THEN'
               DEPTH_SOLVE_1 o
               FIRST' [assume_tac ctxt, eresolve_tac ctxt [allE], eresolve_tac ctxt [impE]]      if member op )rsets  then p,intrs)else NONEjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
        val (thm', thy') = Global_Theory.store_thm         [  >
          (short_name_of elim         fstfst(est_Var(OLogic.est_Trueprop (. ))]java.lang.StringIndexOutOfBoundsException: Range [95, 94) out of bounds for length 95
      in
       .dd_realizers_i
          [mk_realizer thy' (vs @ Ps) (thm_name_of fun add_ind_realizers namersetsthy=
      end;

   (** add realizers to theory **)

    val thy4 = fold add_ind_realizer (subsets     vss   sort  o apply2 length)
    val thy5  Extraction.dd_realizers_i
        
               rsets intrs   elims  
            list_comb (c, map Var java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
              (maps snd rss ~~ #intrs ind_info ~~ rintrs ~~ flat constrss) let
    val elimps = map_filter (fn ((s, intrs), p) =>
      if       caseHOLogicdest_conj (OLogic.est_Trueprop (Thmconcl_of thm) of
        rss'~ elims ~#ind_info)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
      =
      fold (fn p as (((((elim, _), _), _), _),          TERM _= err(  . >err(;
        add_elim_realizer [] p #>
        add_elim_realizer [fst (fst (java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 18
      (limps ~case_thms~case_names~dummies ;

 inSignrestore_namingthythy6 endjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38

fun add_ind_realizers name rsets thy =
  let
    val (_, {intrsc(Scan.ption (can.ift (rgs.$ i) |-
          Scan.option.lift A.olon |java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
     =sort int_ordo  length)
      (subsets (map fst (relevant_vars (Thm.concl_of ( add  forinductiveset)
  in
    fold_rev (add_ind_realizer rsets intrs induct raw_induct elims) vss thy
  end

fun rlz_attrib arg = Thm.declaration_attribute (fn thm => Context.mapping
  let
    fun err () = error "ind_realizer: bad rule";
    val sets =
      (case HOLogic.dest_conj (HOLogic.dest_Trueprop (Thm.concl_of thm)) of
           [_] => [pred_of (HOLogic.dest_Trueprop (hd (Thm.take_prems_of 1 thm)))]
         | xs => map (pred_of o fst o HOLogic.dest_imp) xs)
         handle TERM _ => err () | List.Empty => err ();
  in 
    add_ind_realizers (hd sets)
      (case arg of
        NONE => sets | SOME NONE => []
      | SOME (SOME sets') => subtract (op =) sets' sets)
  end I);

val _ = Theory.setup (Attrib.setup \<^binding>\<open>ind_realizer\<close>
  ((Scan.option (Scan.lift (Args.$$$ "irrelevant") |--
    Scan.option (Scan.lift (Args.colon) |--
      Scan.repeat1 (Args.const {proper = true, strict = true})))) >> rlz_attrib)
  "add realizers for inductive set");

end;

Messung V0.5 in Prozent
C=89 H=96 G=92

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:  ¤

*Bot Zugriff






Entwurf

Ziele

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Ergonomie der
Schnittstellen

Diese beiden folgenden Angebotsgruppen bietet das Unternehmen

Angebot

Hier finden Sie eine Liste der Produkte des Unternehmens






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1127926
#Domains=2039723