| author | wenzelm | 
| Wed, 29 Nov 2023 19:45:54 +0100 | |
| changeset 79081 | 9d6359b71264 | 
| parent 78473 | ba2afdd29e1d | 
| permissions | -rw-r--r-- | 
| 78414 | 1  | 
(* Title: HOL/Tools/SMT/cvc5_replay_methods.ML  | 
| 
78177
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
2  | 
Author: Mathias Fleury, JKU, Uni Freiburg  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
3  | 
Author: Hanna Lachnitt, Stanford University  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
4  | 
|
| 78414 | 5  | 
Proof method for replaying cvc5 proofs.  | 
| 
78177
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
6  | 
*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
7  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
8  | 
signature CVC5_REPLAY_METHODS =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
9  | 
sig  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
10  | 
(*methods for verit proof rules*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
11  | 
val method_for: string -> Proof.context -> thm list -> term list -> term Symtab.table ->  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
12  | 
(string * term) list -> term -> thm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
13  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
14  | 
val discharge: Proof.context -> thm list -> term -> thm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
15  | 
end;  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
16  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
17  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
18  | 
structure CVC5_Replay_Methods: CVC5_REPLAY_METHODS =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
19  | 
struct  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
20  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
21  | 
open Lethe_Replay_Methods  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
22  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
23  | 
fun cvc5_rule_of "bind" = Bind  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
24  | 
| cvc5_rule_of "cong" = Cong  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
25  | 
| cvc5_rule_of "refl" = Refl  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
26  | 
| cvc5_rule_of "equiv1" = Equiv1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
27  | 
| cvc5_rule_of "equiv2" = Equiv2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
28  | 
| cvc5_rule_of "equiv_pos1" = Equiv_pos1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
29  | 
(*Equiv_pos2 covered below*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
30  | 
| cvc5_rule_of "equiv_neg1" = Equiv_neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
31  | 
| cvc5_rule_of "equiv_neg2" = Equiv_neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
32  | 
| cvc5_rule_of "sko_forall" = Skolem_Forall  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
33  | 
| cvc5_rule_of "sko_ex" = Skolem_Ex  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
34  | 
| cvc5_rule_of "eq_reflexive" = Eq_Reflexive  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
35  | 
| cvc5_rule_of "forall_inst" = Forall_Inst  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
36  | 
| cvc5_rule_of "implies_pos" = Implies_Pos  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
37  | 
| cvc5_rule_of "or" = Or  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
38  | 
| cvc5_rule_of "not_or" = Not_Or  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
39  | 
| cvc5_rule_of "resolution" = Resolution  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
40  | 
| cvc5_rule_of "trans" = Trans  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
41  | 
| cvc5_rule_of "false" = False  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
42  | 
| cvc5_rule_of "ac_simp" = AC_Simp  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
43  | 
| cvc5_rule_of "and" = And  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
44  | 
| cvc5_rule_of "not_and" = Not_And  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
45  | 
| cvc5_rule_of "and_pos" = And_Pos  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
46  | 
| cvc5_rule_of "and_neg" = And_Neg  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
47  | 
| cvc5_rule_of "or_pos" = Or_Pos  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
48  | 
| cvc5_rule_of "or_neg" = Or_Neg  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
49  | 
| cvc5_rule_of "not_equiv1" = Not_Equiv1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
50  | 
| cvc5_rule_of "not_equiv2" = Not_Equiv2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
51  | 
| cvc5_rule_of "not_implies1" = Not_Implies1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
52  | 
| cvc5_rule_of "not_implies2" = Not_Implies2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
53  | 
| cvc5_rule_of "implies_neg1" = Implies_Neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
54  | 
| cvc5_rule_of "implies_neg2" = Implies_Neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
55  | 
| cvc5_rule_of "implies" = Implies  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
56  | 
| cvc5_rule_of "bfun_elim" = Bfun_Elim  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
57  | 
| cvc5_rule_of "ite1" = ITE1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
58  | 
| cvc5_rule_of "ite2" = ITE2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
59  | 
| cvc5_rule_of "not_ite1" = Not_ITE1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
60  | 
| cvc5_rule_of "not_ite2" = Not_ITE2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
61  | 
| cvc5_rule_of "ite_pos1" = ITE_Pos1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
62  | 
| cvc5_rule_of "ite_pos2" = ITE_Pos2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
63  | 
| cvc5_rule_of "ite_neg1" = ITE_Neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
64  | 
| cvc5_rule_of "ite_neg2" = ITE_Neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
65  | 
| cvc5_rule_of "la_disequality" = LA_Disequality  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
66  | 
| cvc5_rule_of "lia_generic" = LIA_Generic  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
67  | 
| cvc5_rule_of "la_generic" = LA_Generic  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
68  | 
| cvc5_rule_of "la_tautology" = LA_Tautology  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
69  | 
| cvc5_rule_of "la_totality" = LA_Totality  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
70  | 
| cvc5_rule_of "la_rw_eq"= LA_RW_Eq  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
71  | 
| cvc5_rule_of "nla_generic"= NLA_Generic  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
72  | 
| cvc5_rule_of "eq_transitive" = Eq_Transitive  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
73  | 
| cvc5_rule_of "qnt_rm_unused" = Qnt_Rm_Unused  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
74  | 
| cvc5_rule_of "onepoint" = Onepoint  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
75  | 
| cvc5_rule_of "qnt_join" = Qnt_Join  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
76  | 
| cvc5_rule_of "subproof" = Subproof  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
77  | 
| cvc5_rule_of "bool_simplify" = Bool_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
78  | 
| cvc5_rule_of "or_simplify" = Or_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
79  | 
| cvc5_rule_of "ite_simplify" = ITE_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
80  | 
| cvc5_rule_of "and_simplify" = And_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
81  | 
| cvc5_rule_of "not_simplify" = Not_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
82  | 
| cvc5_rule_of "equiv_simplify" = Equiv_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
83  | 
| cvc5_rule_of "eq_simplify" = Eq_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
84  | 
| cvc5_rule_of "implies_simplify" = Implies_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
85  | 
| cvc5_rule_of "connective_def" = Connective_Def  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
86  | 
| cvc5_rule_of "minus_simplify" = Minus_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
87  | 
| cvc5_rule_of "sum_simplify" = Sum_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
88  | 
| cvc5_rule_of "prod_simplify" = Prod_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
89  | 
| cvc5_rule_of "comp_simplify" = Comp_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
90  | 
| cvc5_rule_of "qnt_simplify" = Qnt_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
91  | 
| cvc5_rule_of "tautology" = Tautological_Clause  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
92  | 
| cvc5_rule_of "qnt_cnf" = Qnt_CNF  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
93  | 
| cvc5_rule_of "symm" = Symm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
94  | 
| cvc5_rule_of "not_symm" = Not_Symm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
95  | 
| cvc5_rule_of "reordering" = Reordering  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
96  | 
| cvc5_rule_of "unary_minus_simplify" = Minus_Simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
97  | 
| cvc5_rule_of "quantifier_simplify" = Tmp_Quantifier_Simplify (*TODO Remove*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
98  | 
| cvc5_rule_of r =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
99  | 
if r = Lethe_Proof.normalized_input_rule then Normalized_Input  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
100  | 
else if r = Lethe_Proof.local_input_rule then Local_Input  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
101  | 
else if r = Lethe_Proof.lethe_def then Definition  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
102  | 
else if r = Lethe_Proof.not_not_rule then Not_Not  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
103  | 
else if r = Lethe_Proof.contract_rule orelse r = "duplicate_literals" then Duplicate_Literals  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
104  | 
else if r = Lethe_Proof.ite_intro_rule then ITE_Intro  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
105  | 
else if r = Lethe_Proof.eq_congruent_rule then Eq_Congruent  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
106  | 
else if r = Lethe_Proof.eq_congruent_pred_rule then Eq_Congruent_Pred  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
107  | 
else if r = Lethe_Proof.theory_resolution2_rule then Theory_Resolution2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
108  | 
else if r = Lethe_Proof.th_resolution_rule then Theory_Resolution  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
109  | 
else if r = Lethe_Proof.equiv_pos2_rule then Equiv_pos2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
110  | 
else if r = Lethe_Proof.hole orelse r = "undefined" then Hole  | 
| 
78473
 
ba2afdd29e1d
remove debug printing
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents: 
78414 
diff
changeset
 | 
111  | 
else Other_Rule r  | 
| 
78177
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
112  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
113  | 
fun normalized_input ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
114  | 
let  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
115  | 
    val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("normalized input t =",t))
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
116  | 
    val _ = (SMT_Config.verit_msg ctxt) (fn () => \<^print> ("normalized ipput prems =",prems))
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
117  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
118  | 
in  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
119  | 
resolve_tac ctxt prems  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
120  | 
(*TODO: should only be used for lambda encoding*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
121  | 
ORELSE' Clasimp.force_tac ctxt  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
122  | 
end)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
123  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
124  | 
fun qnt_simplify ctxt _ t = SMT_Replay_Methods.prove ctxt t (fn _ =>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
125  | 
K (Clasimp.auto_tac ctxt))  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
126  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
127  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
128  | 
fun hole ctxt prems t = SMT_Replay_Methods.prove ctxt t (fn _ =>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
129  | 
K (print_tac ctxt "stuff")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
130  | 
THEN' Method.insert_tac ctxt prems  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
131  | 
(*TODO: should only be used for lambda encoding*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
132  | 
THEN' K (print_tac ctxt "stuff")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
133  | 
THEN' Clasimp.force_tac ctxt  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
134  | 
THEN' K (print_tac ctxt "stuff")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
135  | 
)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
136  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
137  | 
(*  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
138  | 
Example:  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
139  | 
lemma \<open>(\<forall>x y. P x = Q y) \<Longrightarrow> (\<forall> y z. Q y = R z) \<Longrightarrow> (\<forall>x z. P x = R z)\<close>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
140  | 
*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
141  | 
fun trans ctxt prems t =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
142  | 
SMT_Replay_Methods.prove ctxt t (fn _ =>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
143  | 
Method.insert_tac ctxt prems  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
144  | 
    THEN' (REPEAT_CHANGED (resolve_tac ctxt @{thms trans} THEN' assume_tac ctxt))
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
145  | 
    THEN' (resolve_tac ctxt @{thms refl}))
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
146  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
147  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
148  | 
(* Combining all together *)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
149  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
150  | 
fun unsupported rule ctxt thms _ _ _ = SMT_Replay_Methods.replay_error ctxt "Unsupported verit rule"  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
151  | 
rule thms  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
152  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
153  | 
fun ignore_args f ctxt thm _ _ _ t = f ctxt thm t  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
154  | 
fun ignore_decls f ctxt thm args insts _ t = f ctxt thm args insts t  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
155  | 
fun ignore_insts f ctxt thm args _ _ t = f ctxt thm args t  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
156  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
157  | 
fun choose _ And = ignore_args and_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
158  | 
| choose _ And_Neg = ignore_args and_neg_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
159  | 
| choose _ And_Pos = ignore_args and_pos  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
160  | 
| choose _ And_Simplify = ignore_args rewrite_and_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
161  | 
| choose _ Bind = ignore_insts bind  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
162  | 
| choose _ Bool_Simplify = ignore_args rewrite_bool_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
163  | 
| choose _ Comp_Simplify = ignore_args rewrite_comp_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
164  | 
| choose _ Cong = ignore_args (cong "cvc5")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
165  | 
| choose _ Connective_Def = ignore_args rewrite_connective_def  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
166  | 
| choose _ Duplicate_Literals = ignore_args duplicate_literals  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
167  | 
| choose _ Eq_Congruent = ignore_args eq_congruent  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
168  | 
| choose _ Eq_Congruent_Pred = ignore_args eq_congruent_pred  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
169  | 
| choose _ Eq_Reflexive = ignore_args eq_reflexive  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
170  | 
| choose _ Eq_Simplify = ignore_args rewrite_eq_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
171  | 
| choose _ Eq_Transitive = ignore_args eq_transitive  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
172  | 
| choose _ Equiv1 = ignore_args equiv1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
173  | 
| choose _ Equiv2 = ignore_args equiv2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
174  | 
| choose _ Equiv_neg1 = ignore_args equiv_neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
175  | 
| choose _ Equiv_neg2 = ignore_args equiv_neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
176  | 
| choose _ Equiv_pos1 = ignore_args equiv_pos1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
177  | 
| choose _ Equiv_pos2 = ignore_args equiv_pos2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
178  | 
| choose _ Equiv_Simplify = ignore_args rewrite_equiv_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
179  | 
| choose _ False = ignore_args false_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
180  | 
| choose _ Forall_Inst = ignore_decls forall_inst  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
181  | 
| choose _ Implies = ignore_args implies_rules  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
182  | 
| choose _ Implies_Neg1 = ignore_args implies_neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
183  | 
| choose _ Implies_Neg2 = ignore_args implies_neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
184  | 
| choose _ Implies_Pos = ignore_args implies_pos  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
185  | 
| choose _ Implies_Simplify = ignore_args rewrite_implies_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
186  | 
| choose _ ITE1 = ignore_args ite1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
187  | 
| choose _ ITE2 = ignore_args ite2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
188  | 
| choose _ ITE_Intro = ignore_args ite_intro  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
189  | 
| choose _ ITE_Neg1 = ignore_args ite_neg1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
190  | 
| choose _ ITE_Neg2 = ignore_args ite_neg2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
191  | 
| choose _ ITE_Pos1 = ignore_args ite_pos1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
192  | 
| choose _ ITE_Pos2 = ignore_args ite_pos2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
193  | 
| choose _ ITE_Simplify = ignore_args rewrite_ite_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
194  | 
| choose _ LA_Disequality = ignore_args la_disequality  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
195  | 
| choose _ LA_Generic = ignore_insts la_generic  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
196  | 
| choose _ LA_RW_Eq = ignore_args la_rw_eq  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
197  | 
| choose _ LA_Tautology = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
198  | 
| choose _ LA_Totality = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
199  | 
| choose _ LIA_Generic = ignore_args lia_generic  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
200  | 
| choose _ Local_Input = ignore_args (refl "cvc5")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
201  | 
| choose _ Minus_Simplify = ignore_args rewrite_minus_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
202  | 
| choose _ NLA_Generic = ignore_args SMT_Replay_Methods.arith_th_lemma_wo_shallow  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
203  | 
| choose _ Normalized_Input = ignore_args normalized_input  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
204  | 
| choose _ Not_And = ignore_args not_and_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
205  | 
| choose _ Not_Equiv1 = ignore_args not_equiv1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
206  | 
| choose _ Not_Equiv2 = ignore_args not_equiv2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
207  | 
| choose _ Not_Implies1 = ignore_args not_implies1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
208  | 
| choose _ Not_Implies2 = ignore_args not_implies2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
209  | 
| choose _ Not_ITE1 = ignore_args not_ite1  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
210  | 
| choose _ Not_ITE2 = ignore_args not_ite2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
211  | 
| choose _ Not_Not = ignore_args not_not  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
212  | 
| choose _ Not_Or = ignore_args not_or_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
213  | 
| choose _ Not_Simplify = ignore_args rewrite_not_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
214  | 
| choose _ Or = ignore_args or  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
215  | 
| choose _ Or_Neg = ignore_args or_neg_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
216  | 
| choose _ Or_Pos = ignore_args or_pos_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
217  | 
| choose _ Or_Simplify = ignore_args rewrite_or_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
218  | 
| choose _ Theory_Resolution2 = ignore_args theory_resolution2  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
219  | 
| choose _ Prod_Simplify = ignore_args prod_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
220  | 
| choose _ Qnt_Join = ignore_args qnt_join  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
221  | 
| choose _ Qnt_Rm_Unused = ignore_args qnt_rm_unused  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
222  | 
| choose _ Onepoint = ignore_args onepoint  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
223  | 
| choose _ Qnt_Simplify = ignore_args qnt_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
224  | 
| choose _ Refl = ignore_args (refl "cvc5")  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
225  | 
| choose _ Resolution = ignore_args unit_res  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
226  | 
| choose _ Skolem_Ex = ignore_args skolem_ex  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
227  | 
| choose _ Skolem_Forall = ignore_args skolem_forall  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
228  | 
| choose _ Subproof = ignore_args subproof  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
229  | 
| choose _ Sum_Simplify = ignore_args sum_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
230  | 
| choose _ Tautological_Clause = ignore_args tautological_clause  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
231  | 
| choose _ Theory_Resolution = ignore_args unit_res  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
232  | 
| choose _ AC_Simp = ignore_args tmp_AC_rule  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
233  | 
| choose _ Bfun_Elim = ignore_args bfun_elim  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
234  | 
| choose _ Qnt_CNF = ignore_args qnt_cnf  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
235  | 
| choose _ Trans = ignore_args trans  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
236  | 
| choose _ Symm = ignore_args symm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
237  | 
| choose _ Not_Symm = ignore_args not_symm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
238  | 
| choose _ Reordering = ignore_args reordering  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
239  | 
| choose _ Tmp_Quantifier_Simplify = ignore_args qnt_simplify  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
240  | 
| choose ctxt (x as Other_Rule r) =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
241  | 
(case get_alethe_tac r ctxt of  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
242  | 
NONE => unsupported (string_of_verit_rule x)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
243  | 
| SOME a => ignore_insts a)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
244  | 
| choose _ Hole = ignore_args hole  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
245  | 
  | choose _ r = (@{print} ("unknown rule, using hole", r); ignore_args hole)
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
246  | 
(*unsupported (string_of_verit_rule r)*)  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
247  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
248  | 
type verit_method = Proof.context -> thm list -> term -> thm  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
249  | 
type abs_context = int * term Termtab.table  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
250  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
251  | 
fun with_tracing rule method ctxt thms args insts decls t =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
252  | 
let val _ = SMT_Replay_Methods.trace_goal ctxt rule thms t  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
253  | 
in method ctxt thms args insts decls t end  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
254  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
255  | 
fun method_for rule ctxt = with_tracing rule (choose (Context.Proof ctxt) (cvc5_rule_of rule)) ctxt  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
256  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
257  | 
fun discharge ctxt [thm] t =  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
258  | 
SMT_Replay_Methods.prove ctxt t (fn _ =>  | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
259  | 
    resolve_tac ctxt [thm] THEN_ALL_NEW (resolve_tac ctxt @{thms refl}))
 | 
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
260  | 
|
| 
 
ea7a3cc64df5
early inclusion of cvc5 proof reconstruction; slightly reorganize smt/z3_reals;
 
Mathias Fleury <Mathias.Fleury@mpi-inf.mpg.de> 
parents:  
diff
changeset
 | 
261  | 
end;  |