Module unsat_proofs:clauses Builds on unsat_proofs:lrat clause ::= ... | rangeClause(int, int) | noteClause(string, clause) Low <= High 1 + Low = PlusOne ---------------------------------------------- [Proj-RangeClauseStep] |{clause}- rangeClause(Low, High) ~~> or(pos(Low), rangeClause(PlusOne, High)) Low > High ------------------------------------------------- [Proj-RangeClauseEnd] |{clause}- rangeClause(Low, High) ~~> emptyClause ---------------------------------------------- [Proj-NoteClause] |{clause}- noteClause(Note, Clause) ~~> Clause
Module unsat_proofs:clauses Low <= X X <= High mem pos(X) A ----------------------------------- [SC-RangeClause] sat_clause A rangeClause(Low, High) sat_clause A Clause ------------------------------------- [SC-NoteClause] sat_clause A noteClause(Note, Clause) range Low High R negs R N subset N A ------------------------------------- [USC-RangeClause] unsat_clause A rangeClause(Low, High) unsat_clause A Clause --------------------------------------- [USC-NoteClause] unsat_clause A noteClause(Note, Clause) Fixed Judgment negs : [int] [lit] ========== [Negs-Nil] negs [] [] negs Rest LRest =========================== [Negs-Cons] negs I::Rest neg(I)::LRest Fixed Judgment posLits : [int] [lit] ============= [PL-Nil] posLits [] [] posLits Rest LRest ============================= [PL-Cons] posLits I::Rest pos(I)::LRest
Module unsat_proofs:clauses range Low High R posLits R L ----------------------------------- [GL-RangeClause] gatherLits rangeClause(Low, High) L gatherLits Clause L ------------------------------------- [GL-NoteClause] gatherLits noteClause(Note, Clause) L range Low High Range select I RangeRest Range !mem pos(I) A !mem neg(I) A negs RangeRest N subset N A ------------------------------------------- [UC-RangeClause] unit_clause A rangeClause(Low, High) pos(I) unit_clause A Clause L ---------------------------------------- [UC-NoteClause] unit_clause A noteClause(Note, Clause) L
Click on a command or tactic to see a detailed view of its use.
Module unsat_proofs:clauses. Prove_Constraint unsat_proofs:lrat:proj_lit_unique. Prove_Constraint unsat_proofs:lrat:proj_lit_is. Prove_Constraint unsat_proofs:lrat:proj_clause_unique. [Show Proof] Prove_Constraint unsat_proofs:lrat:proj_clause_is. [Show Proof] 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. [Show Proof] 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. [Show Proof] Prove unsat_proofs:lrat:is_clause_or_or_not. [Show Proof] Extensible_Theorem is_clause_rangeClause_or_not : forall C, IsC : is_clause C -> (exists Low High, C = rangeClause Low High) \/ ((exists Low High, C = rangeClause Low High) -> false) on IsC. [Show Proof] Extensible_Theorem is_clause_noteClause_or_not : forall C, IsC : is_clause C -> (exists Note C', C = noteClause Note C') \/ ((exists Note C', C = noteClause Note C') -> false) on IsC. [Show Proof] Prove unsat_proofs:lrat:is_clause_eq_or_not. [Show Proof] 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. [Show Proof] Prove_Constraint unsat_proofs:lrat:sat_clause_proj_to_ext. [Show Proof] Theorem negs_total : forall L, is_list is_integer L -> exists N, negs L N. [Show Proof] Theorem negs_mem : forall L N X, mem X L -> negs L N -> mem (neg X) N. [Show Proof] Theorem negs_subset : forall LA LB NA NB, subset LA LB -> negs LA NA -> negs LB NB -> subset NA NB. [Show Proof] Prove_Constraint unsat_proofs:lrat:unsat_clause_ext_to_proj. [Show Proof] Prove_Constraint unsat_proofs:lrat:unsat_clause_proj_to_ext. [Show Proof] Prove_Constraint unsat_proofs:lrat:sat_formula_ext_to_proj. Prove_Constraint unsat_proofs:lrat:sat_formula_proj_to_ext. Theorem negs_form : forall L N X, negs L N -> mem X N -> exists I, X = neg I. [Show Proof] Prove unsat_proofs:lrat:unsat_sat_clause. [Show Proof] Prove unsat_proofs:lrat:sat_clause_orderless. [Show Proof] Prove unsat_proofs:lrat:sat_formula_orderless. Theorem mems_subset : forall Sub Sup, is_list is_lit Sub -> (forall X, mem X Sub -> mem X Sup) -> subset Sub Sup. [Show Proof] Theorem mems_subset2 [A] : forall (Sub Sup1 Sup2 : list A), subset Sub Sup1 -> (forall X, mem X Sup1 -> mem X Sup2) -> subset Sub Sup2. [Show Proof] Prove unsat_proofs:lrat:unsat_clause_orderless. [Show Proof] Prove unsat_proofs:lrat:unit_clause_is. [Show Proof] Prove unsat_proofs:lrat:unit_clause_unique. [Show Proof] Prove unsat_proofs:lrat:unit_clause_not_assigned. [Show Proof] Prove unsat_proofs:lrat:unit_clause_not_assigned_negate. [Show Proof] Prove unsat_proofs:lrat:unit_clause_expand. [Show Proof] Prove unsat_proofs:lrat:unit_clause_add. [Show Proof] Theorem posLits_total : forall L, is_list is_integer L -> exists P, posLits L P. [Show Proof] Theorem posLits_unique : forall L P1 P2, posLits L P1 -> posLits L P2 -> P1 = P2. [Show Proof] Theorem posLits_is : forall L P, is_list is_integer L -> posLits L P -> is_list is_lit P. [Show Proof] Theorem posLits_mem : forall L P X, mem X L -> posLits L P -> mem (pos X) P. [Show Proof] Theorem posLits_form : forall L P X, posLits L P -> mem X P -> exists I, X = pos I. [Show Proof] Theorem mem_after_posLits_before : forall L P I, posLits L P -> mem (pos I) P -> mem I L. [Show Proof] Prove unsat_proofs:lrat:gatherLits_is. [Show Proof] Prove unsat_proofs:lrat:gatherLits_exists. [Show Proof] Theorem permutation_reflexive_lits : forall L, is_list is_lit L -> permutation L L. [Show Proof] Prove unsat_proofs:lrat:gatherLits_permutation. [Show Proof] Prove_Constraint unsat_proofs:lrat:proj_gatherLits. [Show Proof] Prove_Constraint unsat_proofs:lrat:proj_gatherLits_permutation. [Show Proof] Prove unsat_proofs:lrat:gatherLits_sat. [Show Proof] Prove unsat_proofs:lrat:gatherLits_mem_sat. [Show Proof] Prove unsat_proofs:lrat:gatherLits_unsat. [Show Proof] Theorem posLits_negateLitList_negs : forall L P N, posLits L P -> negateLitList P N -> negs L N. [Show Proof] Theorem negs_is : forall L N, is_list is_integer L -> negs L N -> is_list is_lit N. [Show Proof] Prove unsat_proofs:lrat:negate_lits_unsat. [Show Proof] 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.