Programextractionfrom(* Title: HOL/Tools/inductive_realizer.MLAuthorStefanBerghoferTUMuenchen
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 -> stringlist -> theory -> theory
end;
structure InductiveRealizer : java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 struct
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 letval 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;
funval =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 = mapmap (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 valval 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
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])> inif 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 - 1ifconclT=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 letval xs = rev (rts @ ts inif 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 = letval T = thy) inif 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 Optionval 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 valmap 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 valConst (,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) = letval 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) => ifcaseHOLogicdest_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);
¤ 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:
¤