equal
deleted
inserted
replaced
236 | _ => apply_pth1 ct |
236 | _ => apply_pth1 ct |
237 |
237 |
238 fun norm_canon_conv ct = case term_of ct of |
238 fun norm_canon_conv ct = case term_of ct of |
239 Const(@{const_name norm},_)$_ => arg_conv vector_canon_conv ct |
239 Const(@{const_name norm},_)$_ => arg_conv vector_canon_conv ct |
240 | _ => raise CTERM ("norm_canon_conv", [ct]) |
240 | _ => raise CTERM ("norm_canon_conv", [ct]) |
241 |
|
242 fun fold_rev2 f [] [] z = z |
|
243 | fold_rev2 f (x::xs) (y::ys) z = f x y (fold_rev2 f xs ys z) |
|
244 | fold_rev2 f _ _ _ = raise UnequalLengths; |
|
245 |
241 |
246 fun int_flip v eq = |
242 fun int_flip v eq = |
247 if FuncUtil.Intfunc.defined eq v |
243 if FuncUtil.Intfunc.defined eq v |
248 then FuncUtil.Intfunc.update (v, Rat.neg (FuncUtil.Intfunc.apply eq v)) eq else eq; |
244 then FuncUtil.Intfunc.update (v, Rat.neg (FuncUtil.Intfunc.apply eq v)) eq else eq; |
249 |
245 |