equal
deleted
inserted
replaced
455 lemmas split_tupled_all = split_paired_all unit_all_eq2 |
455 lemmas split_tupled_all = split_paired_all unit_all_eq2 |
456 |
456 |
457 ML {* |
457 ML {* |
458 (* replace parameters of product type by individual component parameters *) |
458 (* replace parameters of product type by individual component parameters *) |
459 local (* filtering with exists_paired_all is an essential optimization *) |
459 local (* filtering with exists_paired_all is an essential optimization *) |
460 fun exists_paired_all (Const ("all", _) $ Abs (_, T, t)) = |
460 fun exists_paired_all (Const (@{const_name Pure.all}, _) $ Abs (_, T, t)) = |
461 can HOLogic.dest_prodT T orelse exists_paired_all t |
461 can HOLogic.dest_prodT T orelse exists_paired_all t |
462 | exists_paired_all (t $ u) = exists_paired_all t orelse exists_paired_all u |
462 | exists_paired_all (t $ u) = exists_paired_all t orelse exists_paired_all u |
463 | exists_paired_all (Abs (_, _, t)) = exists_paired_all t |
463 | exists_paired_all (Abs (_, _, t)) = exists_paired_all t |
464 | exists_paired_all _ = false; |
464 | exists_paired_all _ = false; |
465 val ss = |
465 val ss = |