Module unsat_proofs:drat Builds on unsat_proofs:lrat dratProof ::= addDratEmpty | addDratClause(clause, dratProof) | deleteDrat(clause, dratProof) Projection dratProof :
Module unsat_proofs:drat Judgment checkDrat : [clause] dratProof* drup Known emptyClause ---------------------------- [CD-Empty] checkDrat Known addDratEmpty drup Known C checkDrat C::Known Rest -------------------------------------- [CD-Add] checkDrat Known addDratClause(C, Rest) select C KRest Known checkDrat KRest Rest ----------------------------------- [CD-Delete] checkDrat Known deleteDrat(C, Rest) /*known clauses, clause*/ Fixed Judgment drup : [clause] clause /*known clauses, assignment*/ Fixed Judgment drup_help : [clause] [lit] gatherLits C L negateLitList L NL drup_help Known NL ================== [DRUP] drup Known C mem C Known unsat_clause A C ==================== [DRUPH-End] drup_help Known A mem C Known unit_clause A C L drup_help Known L::A ==================== [DRUPH-Step] drup_help Known A
Module unsat_proofs:drat Judgment toDrat : [(int, clause)] proof* dratProof -------------------------------------------- [TD-EmptyLrat] toDrat Known emptyLrat(ID, Prf) addDratEmpty remove_all Known ID KRest toDrat (ID, C)::KRest Rest DRest -------------------------------------------- [TD-AddLrup] {toDrat Known addLrupProof(ID, C, Prf, Rest) addDratClause(C, DRest)} select (ID, C) KRest Known toDrat KRest Rest DRest ------------------------------------------- [TD-DeleteLrat] {toDrat Known deleteLratProof(ID, Rest) deleteDrat(C, DRest)} Known |{proof}- P ~~> PT toDrat Known PT D ------------------------ [TD-Default]* toDrat Known P D
Click on a command or tactic to see a detailed view of its use.
Module unsat_proofs:drat. Prove_Constraint unsat_proofs:lrat:proj_lit_unique. Prove_Constraint unsat_proofs:lrat:proj_lit_is. Prove_Constraint unsat_proofs:lrat:proj_clause_unique. Prove_Constraint unsat_proofs:lrat:proj_clause_is. Prove_Constraint unsat_proofs:lrat:proj_formula_unique. Prove_Constraint unsat_proofs:lrat:proj_formula_is. Add_Proj_Rel unsat_proofs:lrat:is_clause. Prove_Ext_Ind unsat_proofs:lrat:is_clause. Add_Proj_Rel unsat_proofs:lrat:is_formula. Prove_Ext_Ind unsat_proofs:lrat:is_formula. Prove unsat_proofs:lrat:is_lit_pos_or_neg. Prove unsat_proofs:lrat:is_clause_empty_or_not. Prove unsat_proofs:lrat:is_clause_or_or_not. Prove unsat_proofs:lrat:is_clause_eq_or_not. Prove unsat_proofs:lrat:is_formula_empty_or_not. Prove unsat_proofs:lrat:is_formula_and_or_not. Prove unsat_proofs:lrat:is_formula_eq_or_not. Prove unsat_proofs:lrat:negate_lit_unique. Prove unsat_proofs:lrat:negate_lit_reverse. Prove unsat_proofs:lrat:negate_lit_not_same. Prove unsat_proofs:lrat:negate_lit_is_lit. Prove unsat_proofs:lrat:negate_lit_is_lit_back. Prove unsat_proofs:lrat:negate_lit_exists. Prove_Constraint unsat_proofs:lrat:sat_clause_ext_to_proj. Prove_Constraint unsat_proofs:lrat:sat_clause_proj_to_ext. Prove_Constraint unsat_proofs:lrat:unsat_clause_ext_to_proj. Prove_Constraint unsat_proofs:lrat:unsat_clause_proj_to_ext. Prove_Constraint unsat_proofs:lrat:sat_formula_ext_to_proj. Prove_Constraint unsat_proofs:lrat:sat_formula_proj_to_ext. Prove unsat_proofs:lrat:unsat_sat_clause. Prove unsat_proofs:lrat:sat_clause_orderless. Prove unsat_proofs:lrat:sat_formula_orderless. Prove unsat_proofs:lrat:unsat_clause_orderless. Prove unsat_proofs:lrat:unit_clause_is. Prove unsat_proofs:lrat:unit_clause_unique. Prove unsat_proofs:lrat:unit_clause_not_assigned. Prove unsat_proofs:lrat:unit_clause_not_assigned_negate. Prove unsat_proofs:lrat:unit_clause_expand. Prove unsat_proofs:lrat:unit_clause_add. Prove unsat_proofs:lrat:gatherLits_is. Prove unsat_proofs:lrat:gatherLits_exists. Prove unsat_proofs:lrat:gatherLits_permutation. Prove_Constraint unsat_proofs:lrat:proj_gatherLits. Prove_Constraint unsat_proofs:lrat:proj_gatherLits_permutation. Prove unsat_proofs:lrat:gatherLits_sat. Prove unsat_proofs:lrat:gatherLits_mem_sat. Prove unsat_proofs:lrat:gatherLits_unsat. Prove unsat_proofs:lrat:negate_lits_unsat. Prove_Constraint unsat_proofs:lrat:proj_proof_is. Prove_Constraint unsat_proofs:lrat:proj_proof_extend. Prove unsat_proofs:lrat:check_proof_correct. Prove unsat_proofs:lrat:checkProof_orderless. Add_Ext_Size unsat_proofs:lrat:checkProof. Add_Proj_Rel unsat_proofs:lrat:checkProof. Prove_Ext_Ind unsat_proofs:lrat:checkProof. Prove_Constraint unsat_proofs:lrat:proj_checkProof. Prove unsat_proofs:lrat:formulaToKnown_unique. Prove unsat_proofs:lrat:formulaToKnown_all_greater. Prove unsat_proofs:lrat:formulaToKnown_all_unique. Prove unsat_proofs:lrat:formulaToKnown_sat_formula. Prove unsat_proofs:lrat:formulaToKnown_is. Theorem rupProof_help__drup_help : forall KnownL KnownD A Prf, rupProof_help KnownL A Prf -> values KnownL KnownD -> drup_help KnownD A. [Show Proof] Theorem rupProof__drup : forall KnownL KnownD C Prf, rupProof KnownL C Prf -> values KnownL KnownD -> drup KnownD C. [Show Proof] Theorem remove_all_no_mem_same : forall K ID KRest, remove_all K ID KRest -> ((exists C, mem (ID, C) K) -> false) -> K = KRest. [Show Proof] Theorem remove_all_good_clause_list_select : forall K ID KRA C KS, good_clause_list K -> remove_all K ID KRA -> select (ID, C) KS K -> KRA = KS. [Show Proof] Theorem remove_all_subset : forall K ID KRest, remove_all K ID KRest -> subset KRest K. [Show Proof] Theorem subset_values[A, B] : forall (A B : list (pair A B)) VA VB, subset A B -> values A VA -> values B VB -> subset VA VB. [Show Proof] Theorem values_exist : forall K, is_list (is_pair is_integer is_clause) K -> exists V, values K V. [Show Proof] Theorem remove_all_unique : forall K ID KA KB, remove_all K ID KA -> remove_all K ID KB -> KA = KB. [Show Proof] Theorem drup_help_subset : forall KA C KB, drup_help KA C -> subset KA KB -> drup_help KB C. [Show Proof] Theorem drup_subset : forall KA C KB, drup KA C -> subset KA KB -> drup KB C. [Show Proof] Theorem good_clause_list_selects : forall K ID CA KA CB KB, good_clause_list K -> select (ID, CA) KA K -> select (ID, CB) KB K -> KA = KB. [Show Proof] Theorem values_is : forall K V, is_list (is_pair is_integer is_clause) K -> values K V -> is_list is_clause V. [Show Proof] Theorem select_is_clause : forall Known KRest IDC, is_list is_clause Known -> select IDC KRest Known -> is_list is_clause KRest. [Show Proof] Theorem mem_is_clause : forall Known C, is_list is_clause Known -> mem C Known -> is_clause C. [Show Proof] Theorem is_count_exists_clause : forall L C, is_list is_clause L -> is_clause C -> exists N, count C L N. [Show Proof] Theorem counts_drop_head[A] : forall (H : A) T X N N', count X (H::T) N -> count X T N' -> N >= N'. [Show Proof] Theorem counts_subset : forall A B, is_list is_clause A -> is_list is_clause B -> (forall C NA NB, count C A NA -> count C B NB -> NB >= NA) -> subset A B. [Show Proof] Theorem remove_all_reduce_counts : forall K ID KRest V VR X N N', remove_all K ID KRest -> values K V -> values KRest VR -> count X V N -> count X VR N' -> N >= N'. [Show Proof] Extensible_Theorem toDrat_maintains_proof : forall P D KnownL KnownD V, IsKnownL : is_list (is_pair is_integer is_clause) KnownL -> IsKnownD : is_list is_clause KnownD -> IsP : is_proof P -> CP : checkProof KnownL P -> GCL : good_clause_list KnownL -> TD : toDrat KnownL P D -> Vals : values KnownL V -> %same clauses are Counts : (forall C NA NB, count C V NA -> count C KnownD NB -> NB >= NA) -> checkDrat KnownD D on TD. [Show Proof]