equal
deleted
inserted
replaced
516 |
516 |
517 (* prove reach lemmas *) |
517 (* prove reach lemmas *) |
518 fun prove_reach_lemma ((chain_take, lub_take), dbind) thy = |
518 fun prove_reach_lemma ((chain_take, lub_take), dbind) thy = |
519 let |
519 let |
520 val thm = |
520 val thm = |
521 Drule.zero_var_indexes |
521 Drule.export_without_context |
522 (@{thm lub_ID_reach} OF [chain_take, lub_take]) |
522 (@{thm lub_ID_reach} OF [chain_take, lub_take]) |
523 in |
523 in |
524 add_qualified_thm "reach" (dbind, thm) thy |
524 add_qualified_thm "reach" (dbind, thm) thy |
525 end |
525 end |
526 val (reach_thms, thy) = |
526 val (reach_thms, thy) = |
549 ((SOME finites, take_inducts), thy) |
549 ((SOME finites, take_inducts), thy) |
550 end |
550 end |
551 else |
551 else |
552 let |
552 let |
553 fun prove_take_induct (chain_take, lub_take) = |
553 fun prove_take_induct (chain_take, lub_take) = |
554 Drule.zero_var_indexes |
554 Drule.export_without_context |
555 (@{thm lub_ID_take_induct} OF [chain_take, lub_take]) |
555 (@{thm lub_ID_take_induct} OF [chain_take, lub_take]) |
556 val take_inducts = |
556 val take_inducts = |
557 map prove_take_induct (chain_take_thms ~~ lub_take_thms) |
557 map prove_take_induct (chain_take_thms ~~ lub_take_thms) |
558 val thy = fold (snd oo add_qualified_thm "take_induct") |
558 val thy = fold (snd oo add_qualified_thm "take_induct") |
559 (dbinds ~~ take_inducts) thy |
559 (dbinds ~~ take_inducts) thy |