equal
deleted
inserted
replaced
866 end |
866 end |
867 end |
867 end |
868 in mainf end |
868 in mainf end |
869 end |
869 end |
870 |
870 |
871 fun C f x y = f y x; |
|
872 (* FIXME : This is very bad!!!*) |
871 (* FIXME : This is very bad!!!*) |
873 fun subst_conv eqs t = |
872 fun subst_conv eqs t = |
874 let |
873 let |
875 val t' = fold (Thm.lambda o Thm.lhs_of) eqs t |
874 val t' = fold (Thm.lambda o Thm.lhs_of) eqs t |
876 in |
875 in |
877 Conv.fconv_rule (Thm.beta_conversion true) (fold (C Thm.combination) eqs (Thm.reflexive t')) |
876 Conv.fconv_rule (Thm.beta_conversion true) |
|
877 (fold (fn a => fn b => Thm.combination b a) eqs (Thm.reflexive t')) |
878 end |
878 end |
879 |
879 |
880 (* A wrapper that tries to substitute away variables first. *) |
880 (* A wrapper that tries to substitute away variables first. *) |
881 |
881 |
882 local |
882 local |