equal
deleted
inserted
replaced
450 |
450 |
451 fun strip_tac i = REPEAT(resolve_tac [impI,allI] i); |
451 fun strip_tac i = REPEAT(resolve_tac [impI,allI] i); |
452 |
452 |
453 (** strip ! and --> from proved goal while preserving !-bound var names **) |
453 (** strip ! and --> from proved goal while preserving !-bound var names **) |
454 |
454 |
|
455 (** THIS CODE IS A MESS!!! **) |
|
456 |
455 local |
457 local |
456 |
458 |
457 (* Use XXX to avoid forall_intr failing because of duplicate variable name *) |
459 (* Use XXX to avoid forall_intr failing because of duplicate variable name *) |
458 val myspec = read_instantiate [("P","?XXX")] spec; |
460 val myspec = read_instantiate [("P","?XXX")] spec; |
459 val _ $ (_ $ (vx as Var(_,vxT))) = concl_of myspec; |
461 val _ $ (_ $ (vx as Var(_,vxT))) = concl_of myspec; |