701 val cls_str = ResClause.gen_dfg_cls(clause_id, axiom_name, knd, lits_str, tvars@vars) |
701 val cls_str = ResClause.gen_dfg_cls(clause_id, axiom_name, knd, lits_str, tvars@vars) |
702 in (cls_str, tfree_lits) end; |
702 in (cls_str, tfree_lits) end; |
703 |
703 |
704 |
704 |
705 fun init_funcs_tab funcs = |
705 fun init_funcs_tab funcs = |
706 case !typ_level of T_CONST => Symtab.update ("hEXTENT", 2) (Symtab.update ("fequal",1) funcs) |
706 let val tp = !typ_level |
707 | T_FULL => Symtab.update ("typeinfo",2) (Symtab.update ("hEXTENT",0) (Symtab.update ("fequal",0) funcs)) |
707 val funcs1 = case tp of T_PARTIAL => Symtab.update ("hAPP",3) funcs |
708 | _ => Symtab.update ("hEXTENT",0) (Symtab.update ("fequal",0) funcs); |
708 | _ => Symtab.update ("hAPP",2) funcs |
|
709 val funcs2 = case tp of T_FULL => Symtab.update ("typeinfo",2) funcs1 |
|
710 | _ => funcs1 |
|
711 in |
|
712 case tp of T_CONST => Symtab.update ("fequal",1) (Symtab.update ("hEXTENT",2) funcs2) |
|
713 | _ => Symtab.update ("fequal",0) (Symtab.update ("hEXTENT",0) funcs2) |
|
714 end; |
709 |
715 |
710 |
716 |
711 fun add_funcs (CombConst(c,_,tvars),funcs) = |
717 fun add_funcs (CombConst(c,_,tvars),funcs) = |
712 (case !typ_level of T_CONST => foldl ResClause.add_foltype_funcs (Symtab.update(c,length tvars) funcs) tvars |
718 (case !typ_level of T_CONST => foldl ResClause.add_foltype_funcs (Symtab.update(c,length tvars) funcs) tvars |
713 | _ => foldl ResClause.add_foltype_funcs (Symtab.update(c,0) funcs) tvars) |
719 | _ => foldl ResClause.add_foltype_funcs (Symtab.update(c,0) funcs) tvars) |
714 | add_funcs (CombFree(_,ctp),funcs) = ResClause.add_foltype_funcs (ctp,funcs) |
720 | add_funcs (CombFree(v,ctp),funcs) = ResClause.add_foltype_funcs (ctp,Symtab.update (v,0) funcs) |
715 | add_funcs (CombVar(_,ctp),funcs) = ResClause.add_foltype_funcs (ctp,funcs) |
721 | add_funcs (CombVar(_,ctp),funcs) = ResClause.add_foltype_funcs (ctp,funcs) |
716 | add_funcs (CombApp(P,Q,_),funcs) = add_funcs(P,add_funcs (Q,funcs)) |
722 | add_funcs (CombApp(P,Q,_),funcs) = add_funcs(P,add_funcs (Q,funcs)) |
717 | add_funcs (Bool(t),funcs) = add_funcs (t,funcs); |
723 | add_funcs (Bool(t),funcs) = add_funcs (t,funcs); |
718 |
724 |
719 |
725 |