equal
deleted
inserted
replaced
13 | is_rigid_elem _ = false; |
13 | is_rigid_elem _ = false; |
14 |
14 |
15 (*Try solving a:A by assumption provided a is rigid!*) |
15 (*Try solving a:A by assumption provided a is rigid!*) |
16 val test_assume_tac = SUBGOAL(fn (prem,i) => |
16 val test_assume_tac = SUBGOAL(fn (prem,i) => |
17 if is_rigid_elem (Logic.strip_assums_concl prem) |
17 if is_rigid_elem (Logic.strip_assums_concl prem) |
18 then assume_tac i else no_tac); |
18 then assume_tac i else eq_assume_tac i); |
19 |
19 |
20 (*Type checking solves a:?A (a rigid, ?A maybe flexible). |
20 (*Type checking solves a:?A (a rigid, ?A maybe flexible). |
21 match_tac is too strict; would refuse to instantiate ?A*) |
21 match_tac is too strict; would refuse to instantiate ?A*) |
22 fun typechk_step_tac tyrls = |
22 fun typechk_step_tac tyrls = |
23 FIRSTGOAL (test_assume_tac ORELSE' filt_resolve_tac tyrls 3); |
23 FIRSTGOAL (test_assume_tac ORELSE' filt_resolve_tac tyrls 3); |