Skip to content

Commit 6bcd55d

Browse files
committed
Fix errors from rebase
1 parent b7a774a commit 6bcd55d

File tree

7 files changed

+82
-113
lines changed

7 files changed

+82
-113
lines changed

Tools/binder_sugar.ML

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type binder_sugar = {
44
map_simps: thm list,
55
set_simpss: thm list list,
66
permute_simps: thm list,
7-
map_permute: thm,
7+
map_permute: thm option,
88
subst_simps: thm list option,
99
IImsupp_permute_commutes: thm list option,
1010
IImsupp_Diffs: thm list option,
@@ -20,7 +20,6 @@ type binder_sugar = {
2020

2121
val morph_binder_sugar: morphism -> binder_sugar -> binder_sugar;
2222

23-
2423
val binder_sugar_of: local_theory -> string -> binder_sugar option
2524
val register_binder_sugar: string -> binder_sugar -> local_theory -> local_theory
2625

@@ -32,7 +31,7 @@ type binder_sugar = {
3231
map_simps: thm list,
3332
set_simpss: thm list list,
3433
permute_simps: thm list,
35-
map_permute: thm,
34+
map_permute: thm option,
3635
subst_simps: thm list option,
3736
IImsupp_permute_commutes: thm list option,
3837
IImsupp_Diffs: thm list option,
@@ -52,7 +51,7 @@ fun morph_binder_sugar phi { map_simps, permute_simps, map_permute, set_simpss,
5251
} = {
5352
map_simps = map (Morphism.thm phi) map_simps,
5453
permute_simps = map (Morphism.thm phi) permute_simps,
55-
map_permute = Morphism.thm phi map_permute,
54+
map_permute = Option.map (Morphism.thm phi) map_permute,
5655
set_simpss = map (map (Morphism.thm phi)) set_simpss,
5756
subst_simps = Option.map (map (Morphism.thm phi)) subst_simps,
5857
IImsupp_permute_commutes = Option.map (map (Morphism.thm phi)) IImsupp_permute_commutes,

Tools/bmv_monad_def.ML

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ fun note_bmv_monad_thms fact_policy qualify bmv_b_opt bmv lthy =
796796
val facts = facts_of_bmv_monad bmv;
797797
val params = params_of_bmv_monad bmv;
798798
val unfolds = unfolds_of_bmv_monad bmv;
799+
val _ = @{print} unfolds
799800

800801
fun note_unless_dont_note (noted, lthy) =
801802
let val notes =

Tools/mrbnf_sugar.ML

Lines changed: 20 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,6 @@ type spec = {
1313
FVars_bs: binding option list
1414
};
1515

16-
type binder_sugar = {
17-
map_simps: thm list,
18-
set_simpss: thm list list,
19-
permute_simps: thm list,
20-
map_permute: thm option,
21-
subst_simps: thm list option,
22-
IImsupp_permute_commutes: thm list option,
23-
IImsupp_Diffs: thm list option,
24-
bsetss: term option list list,
25-
bset_bounds: thm list,
26-
mrbnf: MRBNF_Def.mrbnf,
27-
strong_induct: thm option,
28-
distinct: thm list,
29-
inject: thm list,
30-
ctors: (term * thm) list
31-
};
32-
33-
val morph_binder_sugar: morphism -> binder_sugar -> binder_sugar;
34-
3516
type mr_bnf = (MRBNF_Def.mrbnf, (BNF_Def.bnf, MRBNF_FP_Def_Sugar.quotient_result MRBNF_FP_Def_Sugar.fp_result_T) MRBNF_Util.either) MRBNF_Util.either
3617

3718
val mr_bnf_of: local_theory -> bool -> string -> mr_bnf option;
@@ -41,7 +22,7 @@ val build_permute_for: Proof.context -> term list -> typ list -> typ -> (string
4122
val create_binder_type : MRBNF_Util.fp_kind -> spec -> local_theory
4223
-> (MRBNF_FP_Def_Sugar.fp_result * typ * MRSBNF_Def.mrsbnf * MRBNF_Comp.absT_info) * local_theory
4324

44-
val create_binder_datatype : bool -> spec -> local_theory -> binder_sugar * local_theory
25+
val create_binder_datatype : bool -> spec -> local_theory -> Binder_Sugar.binder_sugar * local_theory
4526
end
4627

4728
structure MRBNF_Sugar : MRBNF_SUGAR =
@@ -66,57 +47,6 @@ type spec = {
6647
FVars_bs: binding option list
6748
};
6849

69-
type binder_sugar = {
70-
map_simps: thm list,
71-
set_simpss: thm list list,
72-
permute_simps: thm list,
73-
map_permute: thm option,
74-
subst_simps: thm list option,
75-
IImsupp_permute_commutes: thm list option,
76-
IImsupp_Diffs: thm list option,
77-
bsetss: term option list list,
78-
bset_bounds: thm list,
79-
mrbnf: MRBNF_Def.mrbnf,
80-
strong_induct: thm option,
81-
distinct: thm list,
82-
inject: thm list,
83-
ctors: (term * thm) list
84-
};
85-
86-
fun morph_binder_sugar phi { map_simps, permute_simps, map_permute, set_simpss, subst_simps, mrbnf,
87-
strong_induct, distinct, inject, ctors, bsetss, bset_bounds, IImsupp_permute_commutes, IImsupp_Diffs } = {
88-
map_simps = map (Morphism.thm phi) map_simps,
89-
permute_simps = map (Morphism.thm phi) permute_simps,
90-
map_permute = Option.map (Morphism.thm phi) map_permute,
91-
set_simpss = map (map (Morphism.thm phi)) set_simpss,
92-
subst_simps = Option.map (map (Morphism.thm phi)) subst_simps,
93-
IImsupp_permute_commutes = Option.map (map (Morphism.thm phi)) IImsupp_permute_commutes,
94-
IImsupp_Diffs = Option.map (map (Morphism.thm phi)) IImsupp_Diffs,
95-
bsetss = map (map (Option.map (Morphism.term phi))) bsetss,
96-
bset_bounds = map (Morphism.thm phi) bset_bounds,
97-
mrbnf = MRBNF_Def.morph_mrbnf phi mrbnf,
98-
strong_induct = Option.map (Morphism.thm phi) strong_induct,
99-
distinct = map (Morphism.thm phi) distinct,
100-
inject = map (Morphism.thm phi) inject,
101-
ctors = map (map_prod (Morphism.term phi) (Morphism.thm phi)) ctors
102-
} : binder_sugar;
103-
104-
structure Data = Generic_Data (
105-
type T = binder_sugar Symtab.table;
106-
val empty = Symtab.empty;
107-
fun merge data : T = Symtab.merge (K true) data;
108-
);
109-
110-
fun register_binder_sugar name sugar =
111-
Local_Theory.declaration {syntax = false, pervasive = true, pos = Position.none}
112-
(fn phi => Data.map (Symtab.update (name, morph_binder_sugar phi sugar)));
113-
114-
fun binder_sugar_of_generic context =
115-
Option.map (morph_binder_sugar (Morphism.transfer_morphism (Context.theory_of context)))
116-
o Symtab.lookup (Data.get context);
117-
118-
val binder_sugar_of = binder_sugar_of_generic o Context.Proof;
119-
12050
fun add_nesting_mrbnf_names Us =
12151
let
12252
fun add (Type (s, Ts)) ss =
@@ -963,9 +893,12 @@ fun create_binder_datatype co (spec : spec) lthy =
963893
eta_compl_free = eta_compl_free_tac,
964894
eta_natural = eta_natural_tac
965895
};
966-
val eta_models = map (fn a => Option.map (fn { eta, Inj } => { eta = eta, Inj = Inj, tacs = tvsubst_axioms }) (
967-
List.find (fn { eta, ...} => domain_type (fastype_of eta) = a) etas
968-
)) vars;
896+
val tvsubst_model = {
897+
binding = #tvsubst_b spec,
898+
etas = map (fn a => Option.map (fn { Inj, eta } => { Inj = Inj, eta = eta, tacs = tvsubst_axioms }) (
899+
List.find (fn t => domain_type (fastype_of (#eta t)) = a) etas
900+
)) vars
901+
};
969902

970903
val thms = @{thms prod.set_map sum.set_map prod_set_simps sum_set_simps UN_empty UN_empty2
971904
Un_empty_left Un_empty_right UN_singleton comp_def map_sum.simps map_prod_simp
@@ -1177,7 +1110,7 @@ fun create_binder_datatype co (spec : spec) lthy =
11771110
REPEAT_DETERM o resolve_tac ctxt prems,
11781111
REPEAT_DETERM o EVERY' [
11791112
EqSubst.eqsubst_tac ctxt [0] (map (the o #map_permute) nesting_binder_sugars),
1180-
REPEAT_DETERM o resolve_tac ctxt prems
1113+
REPEAT_DETERM o resolve_tac ctxt prems
11811114
],
11821115
K (Local_Defs.unfold0_tac ctxt @{thms id_apply}),
11831116
rtac ctxt refl
@@ -1189,8 +1122,12 @@ fun create_binder_datatype co (spec : spec) lthy =
11891122
val (lthy, tvsubst_opt) = if not (null (map_filter I (#etas tvsubst_model))) andalso not co then
11901123
let
11911124
val recursor_result = #recursor_result (the vvsubst_res_opt);
1125+
val rec_mrbnf = #rec_mrbnf (the vvsubst_res_opt);
1126+
val vvsubst_res = #vvsubst_res (the vvsubst_res_opt);
1127+
11921128
val (tvsubst_res, lthy) = TVSubst.create_tvsubst_of_mrsbnf (Binding.prefix_name "tv") res mrsbnf
1193-
rec_mrbnf (#vvsubst_ctor vvsubst_res) (#vvsubst_permute vvsubst_res) (#tvsubst_b spec) eta_models (#QREC_fixed recursor_result) lthy;
1129+
rec_mrbnf (#vvsubst_ctor vvsubst_res) (#vvsubst_permute vvsubst_res) (#tvsubst_b spec)
1130+
(#etas tvsubst_model) (#QREC_fixed recursor_result) lthy;
11941131

11951132
val lthy = BMV_Monad_Def.register_pbmv_monad (fst (dest_Type qT))
11961133
(MRSBNF_Def.bmv_monad_of_mrsbnf (#mrsbnf tvsubst_res)) lthy;
@@ -1240,7 +1177,7 @@ fun create_binder_datatype co (spec : spec) lthy =
12401177

12411178
val bmv_unfolds = maps BMV_Monad_Def.unfolds_of_bmv_monad bmvs;
12421179
fun tac ctxt prems = EVERY1 [
1243-
K (Local_Defs.unfold0_tac ctxt (map (Thm.symmetric o snd) (map_filter (Option.map #Inj) eta_models))),
1180+
K (Local_Defs.unfold0_tac ctxt (map (Thm.symmetric o snd) (map_filter (Option.map #Inj) (#etas tvsubst_model)))),
12441181
EVERY' [
12451182
resolve_tac ctxt (#tvsubst_Injs tvsubst_res),
12461183
REPEAT_DETERM o resolve_tac ctxt prems
@@ -1297,18 +1234,17 @@ fun create_binder_datatype co (spec : spec) lthy =
12971234
val induct_attrib = Attrib.internal Position.none (K (Induct.induct_type (fst (dest_Type qT))))
12981235
val equiv = @{attributes [simp, equiv]}
12991236

1300-
(*fun unfold_tvsubst res = map_filter (Option.map (
1237+
val unfold_tvsubst = map (
13011238
Local_Defs.unfold lthy (
13021239
@{thms SSupp_def[symmetric, THEN meta_eq_to_obj_eq, THEN fun_cong]}
13031240
@ map (Thm.symmetric o snd) ctors
13041241
@ [@{lemma "\<Union>((Vrs \<circ> \<rho>) ` SSupp Inj \<rho>) = IImsupp Inj Vrs \<rho>"
13051242
by (auto simp: IImsupp_def)}]
13061243
)
1307-
));*)
1308-
<<<<<<< HEAD
1244+
);
13091245

1310-
val IImsupp_permute_commutes = Option.map (fn (res, _) => unfold_tvsubst res (#IImsupp_permute_commutes res)) tvsubst_opt;
1311-
val IImsupp_Diffs = Option.map (fn (res, _) => unfold_tvsubst res (#IImsupp_Diffs res)) tvsubst_opt;
1246+
val IImsupp_permute_commutes = Option.map (fn (res, _) => unfold_tvsubst (#IImsupp_permute_commutes res)) tvsubst_opt;
1247+
val IImsupp_Diffs = Option.map (fn (res, _) => unfold_tvsubst (#IImsupp_Diffs res)) tvsubst_opt;
13121248

13131249
val (sugar, lthy) = if co then
13141250
let
@@ -1329,7 +1265,7 @@ fun create_binder_datatype co (spec : spec) lthy =
13291265
distinct = [],
13301266
inject = [],
13311267
ctors = []
1332-
} : binder_sugar;
1268+
} : Binder_Sugar.binder_sugar;
13331269
in (sugar, lthy) end
13341270
else
13351271
let
@@ -1349,7 +1285,7 @@ fun create_binder_datatype co (spec : spec) lthy =
13491285
distinct = distinct,
13501286
inject = injects,
13511287
ctors = ctors
1352-
} : binder_sugar;
1288+
} : Binder_Sugar.binder_sugar;
13531289
in (sugar, lthy) end
13541290

13551291
val lthy = Binder_Sugar.register_binder_sugar (fst (dest_Type qT)) sugar lthy;

Tools/tvsubst.ML

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
603603
val ((((fs, rhos), hs), x), _) = lthy
604604
|> mk_Frees "f" (map ((fn a => a --> a) o HOLogic.dest_setT o body_type o fastype_of) (BMV_Monad_Def.leader BMV_Monad_Def.RVrs_of_bmv_monad bmv))
605605
||>> mk_Frees "\<rho>" (map fastype_of (BMV_Monad_Def.leader BMV_Monad_Def.Injs_of_bmv_monad bmv))
606-
||>> mk_Frees "h" (replicate 2 (#T quot --> #T quot))
606+
||>> mk_Frees "h" (replicate nrecs (#T quot --> #T quot))
607607
||>> apfst hd o mk_Frees "x" [domain_type (fastype_of (#ctor quot))];
608608

609609
val prems = flat (BMV_Monad_Def.mk_small_prems_of_bmv_monad bmv
@@ -671,8 +671,11 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
671671

672672
val rho_prems = Proof_Context.get_thms lthy "f_prems";
673673

674-
val avoiding_sets = map (foldl1 mk_Un o map_filter I) (transpose IImsuppss);
674+
val avoiding_sets = map2 (fn free =>
675+
the_default (mk_bot free) o try (foldl1 mk_Un) o map_filter I
676+
) frees (transpose (filter_out null IImsuppss));
675677

678+
val _ = @{print} "3"
676679
val Uctor =
677680
let
678681
val ctor = #ctor quot;
@@ -793,7 +796,7 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
793796
rtac ctxt @{thm trans[OF comp_apply]},
794797
K (Local_Defs.unfold0_tac ctxt @{thms inv_simp1}),
795798
rtac ctxt @{thm trans[OF comp_apply]},
796-
EqSubst.eqsubst_tac ctxt [0] (map #map_permute sugars),
799+
EqSubst.eqsubst_tac ctxt [0] (map (the o #map_permute) sugars),
797800
REPEAT_DETERM o (assume_tac ctxt ORELSE' resolve_tac ctxt @{thms supp_id_bound bij_id}),
798801
resolve_tac ctxt (map (fn thm => Local_Defs.unfold ctxt @{thms comp_def} (thm RS fun_cong))
799802
(maps (the_default [] o #IImsupp_permute_commutes) sugars)
@@ -855,9 +858,9 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
855858
],
856859
REPEAT_DETERM o rtac ctxt @{thm Un_mono'},
857860
SELECT_GOAL (Local_Defs.unfold0_tac ctxt (no_reflexive (#set_Vrs mrsbnf_axioms))),
858-
EqSubst.eqsubst_tac ctxt [0] (#Vrs_Sbs bmv_axioms),
861+
EqSubst.eqsubst_tac ctxt [0] (#Sb_Inj bmv_axioms :: #Vrs_Sbs bmv_axioms),
859862
REPEAT_DETERM o resolve_tac ctxt (@{thms supp_id_bound} @ rho_prems),
860-
K (Local_Defs.unfold0_tac ctxt @{thms image_id}),
863+
K (Local_Defs.unfold0_tac ctxt @{thms image_id id_apply}),
861864
rtac ctxt @{thm Un_upper1} ORELSE' EVERY' [
862865
rtac ctxt @{thm subsetI},
863866
etac ctxt @{thm UN_E},
@@ -893,14 +896,15 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
893896
rtac ctxt @{thm UN_mono[OF subset_refl]},
894897
resolve_tac ctxt prems,
895898
SELECT_GOAL (Local_Defs.unfold0_tac ctxt @{thms prod.collapse}),
896-
eresolve_tac ctxt @{thms UnI1 UnI2}
899+
eresolve_tac ctxt @{thms UnI1 UnI2} ORELSE' assume_tac ctxt
897900
]
898901
]) ctxt
899902
])), Position.no_range), NONE) state;
900903

901904
val (tvsubst, lthy) = mk_def_t true Binding.empty I (Binding.name_of tvsubst_b) 0
902905
(hd (MRBNF_Recursor.get_RECs true "tvsubst" lthy)) lthy;
903906

907+
val _ = @{print} "4"
904908
val tvsubst_not_isInj =
905909
let
906910
val x = Free ("x", domain_type (fastype_of (#ctor quot)));
@@ -1143,6 +1147,7 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
11431147
| _ => error "only works for datatypes"
11441148
val fresh_induct = #fresh_induct fp_thms;
11451149

1150+
(* needs to account for vars that are not injections on RHS *)
11461151
val FVars_tvsubsts = map (fn FVars =>
11471152
let
11481153
val t = Free ("t", domain_type (fastype_of FVars));
@@ -1159,6 +1164,7 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
11591164
FVars $ (Term.list_comb (fst tvsubst, map_filter I rhos) $ t),
11601165
foldl1 mk_Un rhss
11611166
);
1167+
val _ = @{print} (Thm.cterm_of lthy goal)
11621168
in Goal.prove_sorry lthy (names (map_filter I rhos @ [t])) rho_prems' goal (fn {context=ctxt, prems} => EVERY1 [
11631169
DETERM o rtac ctxt (infer_instantiate' ctxt (map (SOME o Thm.cterm_of ctxt) avoiding_sets) fresh_induct),
11641170
REPEAT_DETERM_N nvars o SELECT_GOAL (REPEAT_DETERM (FIRST1 [
@@ -1184,25 +1190,42 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
11841190
EqSubst.eqsubst_tac ctxt [0] (#Vrs_Sbs bmv_axioms),
11851191
REPEAT_DETERM o resolve_tac ctxt (@{thms supp_id_bound} @ prems)
11861192
],
1187-
K (Local_Defs.unfold0_tac ctxt (@{thms image_id UN_Un} @ #Vrs_Map (the (BMV_Monad_Def.leader BMV_Monad_Def.params_of_bmv_monad bmv)))),
1193+
K (Local_Defs.unfold0_tac ctxt (@{thms image_id UN_Un id_apply}
1194+
@ #Vrs_Map (the (BMV_Monad_Def.leader BMV_Monad_Def.params_of_bmv_monad bmv))
1195+
@ [#Sb_Inj bmv_axioms]
1196+
)),
1197+
K (print_tac ctxt "1"),
11881198
rtac ctxt (mk_Un_cong (nrecs + 1) (length rhss)),
11891199
REPEAT_DETERM o EVERY' [
1190-
EqSubst.eqsubst_tac ctxt [0] (map_filter (Option.map (#eta_compl_free o #axioms)) defs),
1200+
EqSubst.eqsubst_tac ctxt [0] (@{print}(map_filter (Option.map (#eta_compl_free o #axioms)) defs)),
1201+
K (print_tac ctxt "1.1"),
11911202
SELECT_GOAL (Local_Defs.unfold0_tac ctxt (map_filter (Option.map (snd o #isInj)) defs)),
11921203
rotate_tac ~1,
11931204
etac ctxt @{thm contrapos_np},
1205+
K (print_tac ctxt "1.2"),
11941206
SELECT_GOAL (Local_Defs.unfold0_tac ctxt (@{thms not_all not_not comp_def} @ map_filter (Option.map (snd o #Inj)) defs)),
11951207
etac ctxt exE,
11961208
hyp_subst_tac ctxt,
1209+
K (print_tac ctxt "1.3"),
11971210
rtac ctxt exI,
1198-
rtac ctxt refl
1211+
rtac ctxt refl,
1212+
K (print_tac ctxt "1.35")
1213+
],
1214+
K (Local_Defs.unfold0_tac ctxt (@{thms UN_empty Un_empty_left Un_empty_right image_id}
1215+
@ the_default [] (Option.map single (#Map_map mrsbnf_facts))
1216+
)),
1217+
TRY o EVERY' [
1218+
EqSubst.eqsubst_tac ctxt [0] (MRBNF_Def.set_map_of_mrbnf mrbnf),
1219+
REPEAT_DETERM o resolve_tac ctxt @{thms supp_id_bound bij_id}
11991220
],
1200-
K (Local_Defs.unfold0_tac ctxt @{thms UN_empty Un_empty_left Un_empty_right}),
1221+
K (Local_Defs.unfold0_tac ctxt (@{thms image_id})),
1222+
K (print_tac ctxt "1.4"),
12011223
rtac ctxt refl,
12021224
rtac ctxt trans,
12031225
rtac ctxt @{thm arg_cong2[OF _ refl, of _ _ "minus"]},
12041226
rtac ctxt @{thm UN_cong},
12051227
Goal.assume_rule_tac ctxt,
1228+
K (print_tac ctxt "2"),
12061229
REPEAT_DETERM o EVERY' [
12071230
EqSubst.eqsubst_tac ctxt [0] (maps (the_default []) IImsupp_Diffs @ maps (the_default [] o #IImsupp_Diffs) sugars),
12081231
REPEAT_DETERM o (assume_tac ctxt ORELSE' EVERY' [
@@ -1218,12 +1241,16 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
12181241
])
12191242
])
12201243
],
1244+
K (print_tac ctxt "3"),
12211245
K (Local_Defs.unfold0_tac ctxt @{thms Un_Diff[symmetric]}),
12221246
rtac ctxt @{thm arg_cong2[OF _ refl, of _ _ "minus"]},
12231247
K (Local_Defs.unfold0_tac ctxt @{thms UN_UN_flatten UN_Un_distrib[symmetric]}),
12241248
rtac ctxt refl,
1225-
rtac ctxt @{thm UN_cong},
1226-
Goal.assume_rule_tac ctxt,
1249+
TRY o EVERY' [
1250+
rtac ctxt @{thm UN_cong},
1251+
Goal.assume_rule_tac ctxt
1252+
],
1253+
K (print_tac ctxt "4"),
12271254
EVERY' (map_filter (Option.map (fn def => EVERY' [
12281255
K (Local_Defs.unfold0_tac ctxt [snd (#isInj def)]),
12291256
etac ctxt exE,
@@ -1234,8 +1261,10 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
12341261
K (Local_Defs.unfold0_tac ctxt (@{thms UN_single UN_empty Un_empty_left Un_empty_right}
12351262
@ maps (the_default []) FVars_Injs
12361263
)),
1264+
K (print_tac ctxt "5"),
12371265
rtac ctxt refl
1238-
])) (rev defs))
1266+
])) (rev defs)),
1267+
K (print_tac ctxt "end")
12391268
]) end
12401269
) (#FVarss quot);
12411270

@@ -1752,7 +1781,7 @@ fun create_tvsubst_of_mrsbnf qualify fp_res mrsbnf rec_mrbnf vvsubst_ctor map_pe
17521781
);
17531782
in Goal.prove_sorry lthy (names (fs @ map_filter I rhos)) (f_prems @ rho_prems') goal (fn {context=ctxt, prems} => EVERY1 [
17541783
REPEAT_DETERM o EVERY' [
1755-
EqSubst.eqsubst_tac ctxt [0] (map (fn thm => thm RS sym) (map_permute :: map #map_permute sugars)),
1784+
EqSubst.eqsubst_tac ctxt [0] (map (fn thm => thm RS sym) (map_permute :: map (the o #map_permute) sugars)),
17561785
REPEAT_DETERM o resolve_tac ctxt prems
17571786
],
17581787
rtac ctxt (#map_Sb_strong (hd (MRSBNF_Def.facts_of_mrsbnf rec_mrsbnf))),

0 commit comments

Comments
 (0)