546 lits,types_sorts,tvar_lits,tfree_lits, |
546 lits,types_sorts,tvar_lits,tfree_lits, |
547 tvars, preds, funcs) |
547 tvars, preds, funcs) |
548 end; |
548 end; |
549 |
549 |
550 |
550 |
551 |
551 (* check if a clause is FOL first*) |
552 fun make_conjecture_clause n t = |
552 fun make_conjecture_clause n t = |
553 let val (lits,types_sorts, preds, funcs) = literals_of_term t |
553 let val _ = check_is_fol_term t |
|
554 handle TERM("check_is_fol_term",_) => raise CLAUSE("Goal is not FOL",t) |
|
555 val (lits,types_sorts, preds, funcs) = literals_of_term t |
554 val (tvar_lits,tfree_lits, preds) = add_typs_aux types_sorts preds |
556 val (tvar_lits,tfree_lits, preds) = add_typs_aux types_sorts preds |
555 val tvars = get_tvar_strs types_sorts |
557 val tvars = get_tvar_strs types_sorts |
556 in |
558 in |
557 make_clause(n,"conjecture",Conjecture, |
559 make_clause(n,"conjecture",Conjecture, |
558 lits,types_sorts,tvar_lits,tfree_lits, |
560 lits,types_sorts,tvar_lits,tfree_lits, |
564 make_conjecture_clause n t :: make_conjecture_clauses_aux (n+1) ts |
566 make_conjecture_clause n t :: make_conjecture_clauses_aux (n+1) ts |
565 |
567 |
566 val make_conjecture_clauses = make_conjecture_clauses_aux 0 |
568 val make_conjecture_clauses = make_conjecture_clauses_aux 0 |
567 |
569 |
568 |
570 |
|
571 (*before converting an axiom clause to "clause" format, check if it is FOL*) |
569 fun make_axiom_clause term (ax_name,cls_id) = |
572 fun make_axiom_clause term (ax_name,cls_id) = |
570 let val (lits,types_sorts, preds,funcs) = literals_of_term term |
573 let val _ = check_is_fol_term term |
|
574 handle TERM("check_is_fol_term",_) => raise CLAUSE("Axiom is not FOL", term) |
|
575 val (lits,types_sorts, preds,funcs) = literals_of_term term |
571 val (tvar_lits,tfree_lits, preds) = add_typs_aux types_sorts preds |
576 val (tvar_lits,tfree_lits, preds) = add_typs_aux types_sorts preds |
572 val tvars = get_tvar_strs types_sorts |
577 val tvars = get_tvar_strs types_sorts |
573 in |
578 in |
574 make_clause(cls_id,ax_name,Axiom, |
579 make_clause(cls_id,ax_name,Axiom, |
575 lits,types_sorts,tvar_lits,tfree_lits, |
580 lits,types_sorts,tvar_lits,tfree_lits, |