equal
deleted
inserted
replaced
60 |
60 |
61 fun rearrange t pq = |
61 fun rearrange t pq = |
62 let val ts = Data.dest_sum t; |
62 let val ts = Data.dest_sum t; |
63 val dpq = Data.mk_binop Data.div_name pq |
63 val dpq = Data.mk_binop Data.div_name pq |
64 val d1 = mk_times (snd pq,dpq) and d2 = mk_times (dpq,snd pq) |
64 val d1 = mk_times (snd pq,dpq) and d2 = mk_times (dpq,snd pq) |
65 val d = if d1 mem ts then d1 else d2 |
65 val d = if member (op =) ts d1 then d1 else d2 |
66 val m = Data.mk_binop Data.mod_name pq |
66 val m = Data.mk_binop Data.mod_name pq |
67 in mk_plus(mk_plus(d,m),Data.mk_sum(ts |> remove (op =) d |> remove (op =) m)) end |
67 in mk_plus(mk_plus(d,m),Data.mk_sum(ts |> remove (op =) d |> remove (op =) m)) end |
68 |
68 |
69 fun cancel ss t pq = |
69 fun cancel ss t pq = |
70 let val teqt' = Data.prove_eq_sums ss (t, rearrange t pq) |
70 let val teqt' = Data.prove_eq_sums ss (t, rearrange t pq) |