equal
deleted
inserted
replaced
862 (*Behaves like unconditional rule if rhs does not contain vars not in the lhs. |
862 (*Behaves like unconditional rule if rhs does not contain vars not in the lhs. |
863 Otherwise those vars may become instantiated with unnormalized terms |
863 Otherwise those vars may become instantiated with unnormalized terms |
864 while the premises are solved.*) |
864 while the premises are solved.*) |
865 |
865 |
866 fun cond_skel (args as (_, (lhs, rhs))) = |
866 fun cond_skel (args as (_, (lhs, rhs))) = |
867 if Term.add_vars rhs [] subset Term.add_vars lhs [] then uncond_skel args |
867 if gen_subset (op =) (Term.add_vars rhs [], Term.add_vars lhs []) then uncond_skel args |
868 else skel0; |
868 else skel0; |
869 |
869 |
870 (* |
870 (* |
871 Rewriting -- we try in order: |
871 Rewriting -- we try in order: |
872 (1) beta reduction |
872 (1) beta reduction |