equal
deleted
inserted
replaced
35 |
35 |
36 fun mk_rules eq index rules next net = |
36 fun mk_rules eq index rules next net = |
37 Rules {eq = eq, index = index, rules = rules, next = next, net = net}; |
37 Rules {eq = eq, index = index, rules = rules, next = next, net = net}; |
38 |
38 |
39 fun rules (Rules {rules = rs, ...}) = rs; |
39 fun rules (Rules {rules = rs, ...}) = rs; |
40 fun may_unify (Rules {net, ...}) tm = Tactic.orderlist (Net.unify_term net tm); |
40 fun may_unify (Rules {rules, net, ...}) tm = Tactic.orderlist (Net.unify_term net tm); |
41 |
41 |
42 |
42 |
43 (* build rules *) |
43 (* build rules *) |
44 |
44 |
45 fun init eq index = mk_rules eq index [] ~1 Net.empty; |
45 fun init eq index = mk_rules eq index [] ~1 Net.empty; |
66 |
66 |
67 |
67 |
68 (* intro/elim rules *) |
68 (* intro/elim rules *) |
69 |
69 |
70 val init_intro = init Thm.eq_thm Thm.concl_of; |
70 val init_intro = init Thm.eq_thm Thm.concl_of; |
71 val init_elim = init Thm.eq_thm Thm.major_prem_of; |
71 val init_elim = init Thm.eq_thm (Logic.strip_assums_concl o Thm.major_prem_of); |
72 |
72 |
73 |
73 |
74 end; |
74 end; |