MATCH_MP : thm -> thm -> thm
Variables free in the consequent but not the antecedent of the first argument theorem will be replaced by variants if this is necessary to maintain the full generality of the theorem, and any which were universally quantified over in the first argument theorem will be universally quantified over in the result, and in the same order.
A1 |- !x1..xn. t1 ==> t2 A2 |- t1' -------------------------------------- MATCH_MP A1 u A2 |- !xa..xk. t2'
- val ith = (GENL [Term `x:num`, Term `z:num`] o DISCH_ALL o AP_TERM (Term `$+ (w + z)`)) (ASSUME (Term `x:num = y`)); > val ith = |- !x z. (x = y) ==> (w + z + x = w + z + y) : thm - val th = ASSUME (Term `w:num = z`); > val th = [w = z] |- w = z : thm - MATCH_MP ith th; > val it = [w = z] |- !z'. w' + z' + w = w' + z' + z : thm