| author | wenzelm | 
| Mon, 23 Sep 2024 12:59:10 +0200 | |
| changeset 80931 | f6e595e4f608 | 
| parent 78177 | ea7a3cc64df5 | 
| permissions | -rw-r--r-- | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 1 | (* Title: HOL/Tools/SMT/verit_replay_methods.ML | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 2 | Author: Mathias Fleury, MPII, JKU | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 3 | |
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 4 | Proof method for replaying veriT proofs. | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 5 | *) | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 6 | |
| 72459 
15fc6320da68
reconstruction of veriT proofs in NEWS
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
72458diff
changeset | 7 | signature VERIT_REPLAY_METHODS = | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 8 | sig | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 9 | (*methods for verit proof rules*) | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 10 | val method_for: string -> Proof.context -> thm list -> term list -> term Symtab.table -> | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 11 | (string * term) list -> term -> thm | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 12 | |
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 13 | val discharge: Proof.context -> thm list -> term -> thm | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 14 | end; | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 15 | |
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 16 | |
| 72459 
15fc6320da68
reconstruction of veriT proofs in NEWS
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
72458diff
changeset | 17 | structure Verit_Replay_Methods: VERIT_REPLAY_METHODS = | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 18 | struct | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 19 | |
| 75299 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 20 | open Lethe_Replay_Methods | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 21 | |
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 22 | fun verit_rule_of "bind" = Bind | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 23 | | verit_rule_of "cong" = Cong | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 24 | | verit_rule_of "refl" = Refl | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 25 | | verit_rule_of "equiv1" = Equiv1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 26 | | verit_rule_of "equiv2" = Equiv2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 27 | | verit_rule_of "equiv_pos1" = Equiv_pos1 | 
| 72908 
6a26a955308e
improve and activate compression for veriT proof reconstruction
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
72513diff
changeset | 28 | (*Equiv_pos2 covered below*) | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 29 | | verit_rule_of "equiv_neg1" = Equiv_neg1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 30 | | verit_rule_of "equiv_neg2" = Equiv_neg2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 31 | | verit_rule_of "sko_forall" = Skolem_Forall | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 32 | | verit_rule_of "sko_ex" = Skolem_Ex | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 33 | | verit_rule_of "eq_reflexive" = Eq_Reflexive | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 34 | | verit_rule_of "forall_inst" = Forall_Inst | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 35 | | verit_rule_of "implies_pos" = Implies_Pos | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 36 | | verit_rule_of "or" = Or | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 37 | | verit_rule_of "not_or" = Not_Or | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 38 | | verit_rule_of "resolution" = Resolution | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 39 | | verit_rule_of "trans" = Trans | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 40 | | verit_rule_of "false" = False | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 41 | | verit_rule_of "ac_simp" = AC_Simp | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 42 | | verit_rule_of "and" = And | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 43 | | verit_rule_of "not_and" = Not_And | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 44 | | verit_rule_of "and_neg" = And_Neg | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 45 | | verit_rule_of "or_pos" = Or_Pos | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 46 | | verit_rule_of "or_neg" = Or_Neg | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 47 | | verit_rule_of "not_equiv1" = Not_Equiv1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 48 | | verit_rule_of "not_equiv2" = Not_Equiv2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 49 | | verit_rule_of "not_implies1" = Not_Implies1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 50 | | verit_rule_of "not_implies2" = Not_Implies2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 51 | | verit_rule_of "implies_neg1" = Implies_Neg1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 52 | | verit_rule_of "implies_neg2" = Implies_Neg2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 53 | | verit_rule_of "implies" = Implies | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 54 | | verit_rule_of "bfun_elim" = Bfun_Elim | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 55 | | verit_rule_of "ite1" = ITE1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 56 | | verit_rule_of "ite2" = ITE2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 57 | | verit_rule_of "not_ite1" = Not_ITE1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 58 | | verit_rule_of "not_ite2" = Not_ITE2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 59 | | verit_rule_of "ite_pos1" = ITE_Pos1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 60 | | verit_rule_of "ite_pos2" = ITE_Pos2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 61 | | verit_rule_of "ite_neg1" = ITE_Neg1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 62 | | verit_rule_of "ite_neg2" = ITE_Neg2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 63 | | verit_rule_of "la_disequality" = LA_Disequality | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 64 | | verit_rule_of "lia_generic" = LIA_Generic | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 65 | | verit_rule_of "la_generic" = LA_Generic | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 66 | | verit_rule_of "la_tautology" = LA_Tautology | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 67 | | verit_rule_of "la_totality" = LA_Totality | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 68 | | verit_rule_of "la_rw_eq"= LA_RW_Eq | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 69 | | verit_rule_of "nla_generic"= NLA_Generic | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 70 | | verit_rule_of "eq_transitive" = Eq_Transitive | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 71 | | verit_rule_of "qnt_rm_unused" = Qnt_Rm_Unused | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 72 | | verit_rule_of "onepoint" = Onepoint | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 73 | | verit_rule_of "qnt_join" = Qnt_Join | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 74 | | verit_rule_of "subproof" = Subproof | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 75 | | verit_rule_of "bool_simplify" = Bool_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 76 | | verit_rule_of "or_simplify" = Or_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 77 | | verit_rule_of "ite_simplify" = ITE_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 78 | | verit_rule_of "and_simplify" = And_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 79 | | verit_rule_of "not_simplify" = Not_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 80 | | verit_rule_of "equiv_simplify" = Equiv_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 81 | | verit_rule_of "eq_simplify" = Eq_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 82 | | verit_rule_of "implies_simplify" = Implies_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 83 | | verit_rule_of "connective_def" = Connective_Def | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 84 | | verit_rule_of "minus_simplify" = Minus_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 85 | | verit_rule_of "sum_simplify" = Sum_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 86 | | verit_rule_of "prod_simplify" = Prod_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 87 | | verit_rule_of "comp_simplify" = Comp_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 88 | | verit_rule_of "qnt_simplify" = Qnt_Simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 89 | | verit_rule_of "tautology" = Tautological_Clause | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 90 | | verit_rule_of "qnt_cnf" = Qnt_CNF | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 91 | | verit_rule_of r = | 
| 75299 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 92 | if r = Lethe_Proof.normalized_input_rule then Normalized_Input | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 93 | else if r = Lethe_Proof.local_input_rule then Local_Input | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 94 | else if r = Lethe_Proof.lethe_def then Definition | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 95 | else if r = Lethe_Proof.not_not_rule then Not_Not | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 96 | else if r = Lethe_Proof.contract_rule then Duplicate_Literals | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 97 | else if r = Lethe_Proof.ite_intro_rule then ITE_Intro | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 98 | else if r = Lethe_Proof.eq_congruent_rule then Eq_Congruent | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 99 | else if r = Lethe_Proof.eq_congruent_pred_rule then Eq_Congruent_Pred | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 100 | else if r = Lethe_Proof.theory_resolution2_rule then Theory_Resolution2 | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 101 | else if r = Lethe_Proof.th_resolution_rule then Theory_Resolution | 
| 
da591621d6ae
split veriT reconstruction into Lethe and veriT part
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75268diff
changeset | 102 | else if r = Lethe_Proof.equiv_pos2_rule then Equiv_pos2 | 
| 75561 
b6239ed66b94
fix veriT reconstruction for and_pos and lambda-lifting
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75299diff
changeset | 103 | else if r = Lethe_Proof.and_pos_rule then And_Pos | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 104 |      else (@{print} ("Unsupport rule", r); Unsupported)
 | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 105 | |
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 106 | |
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 107 | (* Combining all together *) | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 108 | |
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 109 | fun unsupported rule ctxt thms _ _ _ = SMT_Replay_Methods.replay_error ctxt "Unsupported verit rule" | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 110 | rule thms | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 111 | |
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 112 | fun ignore_args f ctxt thm _ _ _ t = f ctxt thm t | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 113 | fun ignore_decls f ctxt thm args insts _ t = f ctxt thm args insts t | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 114 | fun ignore_insts f ctxt thm args _ _ t = f ctxt thm args t | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 115 | |
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 116 | fun choose And = ignore_args and_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 117 | | choose And_Neg = ignore_args and_neg_rule | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 118 | | choose And_Pos = ignore_args and_pos | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 119 | | choose And_Simplify = ignore_args rewrite_and_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 120 | | choose Bind = ignore_insts bind | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 121 | | choose Bool_Simplify = ignore_args rewrite_bool_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 122 | | choose Comp_Simplify = ignore_args rewrite_comp_simplify | 
| 78177 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75561diff
changeset | 123 | | choose Cong = ignore_args (cong "verit") | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 124 | | choose Connective_Def = ignore_args rewrite_connective_def | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 125 | | choose Duplicate_Literals = ignore_args duplicate_literals | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 126 | | choose Eq_Congruent = ignore_args eq_congruent | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 127 | | choose Eq_Congruent_Pred = ignore_args eq_congruent_pred | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 128 | | choose Eq_Reflexive = ignore_args eq_reflexive | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 129 | | choose Eq_Simplify = ignore_args rewrite_eq_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 130 | | choose Eq_Transitive = ignore_args eq_transitive | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 131 | | choose Equiv1 = ignore_args equiv1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 132 | | choose Equiv2 = ignore_args equiv2 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 133 | | choose Equiv_neg1 = ignore_args equiv_neg1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 134 | | choose Equiv_neg2 = ignore_args equiv_neg2 | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 135 | | choose Equiv_pos1 = ignore_args equiv_pos1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 136 | | choose Equiv_pos2 = ignore_args equiv_pos2 | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 137 | | choose Equiv_Simplify = ignore_args rewrite_equiv_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 138 | | choose False = ignore_args false_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 139 | | choose Forall_Inst = ignore_decls forall_inst | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 140 | | choose Implies = ignore_args implies_rules | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 141 | | choose Implies_Neg1 = ignore_args implies_neg1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 142 | | choose Implies_Neg2 = ignore_args implies_neg2 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 143 | | choose Implies_Pos = ignore_args implies_pos | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 144 | | choose Implies_Simplify = ignore_args rewrite_implies_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 145 | | choose ITE1 = ignore_args ite1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 146 | | choose ITE2 = ignore_args ite2 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 147 | | choose ITE_Intro = ignore_args ite_intro | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 148 | | choose ITE_Neg1 = ignore_args ite_neg1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 149 | | choose ITE_Neg2 = ignore_args ite_neg2 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 150 | | choose ITE_Pos1 = ignore_args ite_pos1 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 151 | | choose ITE_Pos2 = ignore_args ite_pos2 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 152 | | choose ITE_Simplify = ignore_args rewrite_ite_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 153 | | choose LA_Disequality = ignore_args la_disequality | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 154 | | choose LA_Generic = ignore_insts la_generic | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 155 | | choose LA_RW_Eq = ignore_args la_rw_eq | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 156 | | choose LA_Tautology = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 157 | | choose LA_Totality = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 158 | | choose LIA_Generic = ignore_args lia_generic | 
| 78177 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75561diff
changeset | 159 | | choose Local_Input = ignore_args (refl "verit") | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 160 | | choose Minus_Simplify = ignore_args rewrite_minus_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 161 | | choose NLA_Generic = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 162 | | choose Normalized_Input = ignore_args normalized_input | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 163 | | choose Not_And = ignore_args not_and_rule | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 164 | | choose Not_Equiv1 = ignore_args not_equiv1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 165 | | choose Not_Equiv2 = ignore_args not_equiv2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 166 | | choose Not_Implies1 = ignore_args not_implies1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 167 | | choose Not_Implies2 = ignore_args not_implies2 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 168 | | choose Not_ITE1 = ignore_args not_ite1 | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 169 | | choose Not_ITE2 = ignore_args not_ite2 | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 170 | | choose Not_Not = ignore_args not_not | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 171 | | choose Not_Or = ignore_args not_or_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 172 | | choose Not_Simplify = ignore_args rewrite_not_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 173 | | choose Or = ignore_args or | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 174 | | choose Or_Neg = ignore_args or_neg_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 175 | | choose Or_Pos = ignore_args or_pos_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 176 | | choose Or_Simplify = ignore_args rewrite_or_simplify | 
| 72908 
6a26a955308e
improve and activate compression for veriT proof reconstruction
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
72513diff
changeset | 177 | | choose Theory_Resolution2 = ignore_args theory_resolution2 | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 178 | | choose Prod_Simplify = ignore_args prod_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 179 | | choose Qnt_Join = ignore_args qnt_join | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 180 | | choose Qnt_Rm_Unused = ignore_args qnt_rm_unused | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 181 | | choose Onepoint = ignore_args onepoint | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 182 | | choose Qnt_Simplify = ignore_args qnt_simplify | 
| 78177 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
75561diff
changeset | 183 | | choose Refl = ignore_args (refl "verit") | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 184 | | choose Resolution = ignore_args unit_res | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 185 | | choose Skolem_Ex = ignore_args skolem_ex | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 186 | | choose Skolem_Forall = ignore_args skolem_forall | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 187 | | choose Subproof = ignore_args subproof | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 188 | | choose Sum_Simplify = ignore_args sum_simplify | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 189 | | choose Tautological_Clause = ignore_args tautological_clause | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 190 | | choose Theory_Resolution = ignore_args unit_res | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 191 | | choose AC_Simp = ignore_args tmp_AC_rule | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 192 | | choose Bfun_Elim = ignore_args bfun_elim | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 193 | | choose Qnt_CNF = ignore_args qnt_cnf | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 194 | | choose Trans = ignore_args trans | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 195 | | choose r = unsupported (string_of_verit_rule r) | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 196 | |
| 72459 
15fc6320da68
reconstruction of veriT proofs in NEWS
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
72458diff
changeset | 197 | type verit_method = Proof.context -> thm list -> term -> thm | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 198 | type abs_context = int * term Termtab.table | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 199 | |
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 200 | fun with_tracing rule method ctxt thms args insts decls t = | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 201 | let val _ = SMT_Replay_Methods.trace_goal ctxt rule thms t | 
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 202 | in method ctxt thms args insts decls t end | 
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 203 | |
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 204 | fun method_for rule = with_tracing rule (choose (verit_rule_of rule)) | 
| 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 205 | |
| 72458 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 206 | fun discharge ctxt [thm] t = | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 207 | SMT_Replay_Methods.prove ctxt t (fn _ => | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 208 |     resolve_tac ctxt [thm] THEN_ALL_NEW (resolve_tac ctxt @{thms refl}))
 | 
| 
b44e894796d5
add reconstruction for the SMT solver veriT
 Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: 
69593diff
changeset | 209 | |
| 69205 
8050734eee3e
add reconstruction by veriT in method smt
 fleury <Mathias.Fleury@mpi-inf.mpg.de> parents: diff
changeset | 210 | end; |