src/Pure/Isar/net_rules.ML
changeset 8635 2f699cd7b8d7
parent 8298 9b089bc07f69
child 8807 0046be1769f9
equal deleted inserted replaced
8634:3f34637cb9c0 8635:2f699cd7b8d7
    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;