@[simp]
Equations
- φ.propagate_literal l = List.map (List.filter fun (x : Validator.Formula.Literal n) => decide (x ≠ l.negate)) (List.filter (fun (γ : Validator.Formula.Clause n) => !List.contains γ l) φ)
Instances For
theorem
Validator.Formula.CNF.IsHorn_propagate_literal
{n : ℕ}
{φ : CNF n}
{l : Literal n}
:
(∀ γ ∈ φ, γ.IsHorn) → ∀ γ ∈ φ.propagate_literal l, γ.IsHorn
- vars : VarSet' n
- empty : Bool
- unit_literals : Formula.Cube n
- clauses : Formula.CNF n
- horn_prop (γ : Formula.Clause n) : γ ∈ self.clauses → γ.IsHorn
- clauses_prop (γ : Formula.Clause n) : γ ∈ self.clauses → 2 ≤ List.length γ
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Validator.instReprHorn = { reprPrec := Validator.instReprHorn.repr }
Instances For
Equations
- Validator.Horn.instFormula = { vars := fun (φ : Validator.Horn n) => φ.vars, models := Validator.Horn.models, models_equiv_right := ⋯ }
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
- φ.unit_propagate [] = φ
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Validator.Horn.instConsistency = { consistent := fun (φ : Validator.Horn n) => decide (¬φ.empty = true ∧ φ.unit_literals.consistent = true), consistent_correct := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- Validator.Horn.instImplicant = { entails := fun (δ : Validator.Formula.Cube n) (φ : Validator.Horn n) => sorry, entails_correct := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Validator.Horn.instToCNF = { toCNF := Validator.Horn.toCNF, toCNF_correct := ⋯ }