equal
deleted
inserted
replaced
266 *) |
266 *) |
267 fun flatten t = |
267 fun flatten t = |
268 let |
268 let |
269 (* analogous to RS, but using matching instead of resolution *) |
269 (* analogous to RS, but using matching instead of resolution *) |
270 fun matchres tha i thb = |
270 fun matchres tha i thb = |
271 case Seq.chop 2 (biresolution true [(false,tha)] i thb) of |
271 case Seq.chop 2 (Thm.biresolution true [(false,tha)] i thb) of |
272 ([th],_) => th |
272 ([th],_) => th |
273 | ([],_) => raise THM("matchres: no match", i, [tha,thb]) |
273 | ([],_) => raise THM("matchres: no match", i, [tha,thb]) |
274 | _ => raise THM("matchres: multiple unifiers", i, [tha,thb]) |
274 | _ => raise THM("matchres: multiple unifiers", i, [tha,thb]) |
275 |
275 |
276 (* match tha with some premise of thb *) |
276 (* match tha with some premise of thb *) |