326 con_rews, sel_rews, dis_rews, dists_le, dists_eq, inverts, injects, |
326 con_rews, sel_rews, dis_rews, dists_le, dists_eq, inverts, injects, |
327 copy_rews) |
327 copy_rews) |
328 end; (* let *) |
328 end; (* let *) |
329 |
329 |
330 |
330 |
331 fun comp_theorems thy (comp_dname, eqs: eq list, casess, con_rews, copy_rews) = |
331 fun comp_theorems thy (comp_dnam, eqs: eq list, casess, con_rews, copy_rews) = |
332 let |
332 let |
|
333 |
|
334 val dnames = map (fst o fst) eqs; |
|
335 val conss = map snd eqs; |
|
336 val comp_dname = Sign.full_name (sign_of thy) comp_dnam; |
333 |
337 |
334 val dummy = writeln("Proving induction properties of domain "^comp_dname^"..."); |
338 val dummy = writeln("Proving induction properties of domain "^comp_dname^"..."); |
335 val pg = pg' thy; |
339 val pg = pg' thy; |
336 |
|
337 val dnames = map (fst o fst) eqs; |
|
338 val conss = map snd eqs; |
|
339 |
340 |
340 (* ----- getting the composite axiom and definitions ------------------------ *) |
341 (* ----- getting the composite axiom and definitions ------------------------ *) |
341 |
342 |
342 local val ga = get_axiom thy in |
343 local val ga = get_axiom thy in |
343 val axs_reach = map (fn dn => ga (dn ^ "_reach" )) dnames; |
344 val axs_reach = map (fn dn => ga (dn ^ "_reach" )) dnames; |