Documentation

Std.Sat.CNF.RelabelFin

Obtain the literal with the largest identifier in c.

Equations
Instances For
    theorem Std.Sat.CNF.Clause.of_maxLiteral_eq_some {maxLit : Nat} (c : Std.Sat.CNF.Clause Nat) (h : c.maxLiteral = some maxLit) (lit : Nat) :
    Std.Sat.CNF.Clause.Mem lit clit maxLit
    theorem Std.Sat.CNF.Clause.maxLiteral_eq_some_of_mem {l : Nat} (c : Std.Sat.CNF.Clause Nat) (h : Std.Sat.CNF.Clause.Mem l c) :
    ∃ (maxLit : Nat), c.maxLiteral = some maxLit

    Obtain the literal with the largest identifier in f.

    Equations
    Instances For
      theorem Std.Sat.CNF.of_maxLiteral_eq_some' {maxLit localMax : Nat} (f : Std.Sat.CNF Nat) (h : f.maxLiteral = some maxLit) (clause : Std.Sat.CNF.Clause Nat) :
      clause fclause.maxLiteral = some localMaxlocalMax maxLit
      theorem Std.Sat.CNF.of_maxLiteral_eq_some {maxLit : Nat} (f : Std.Sat.CNF Nat) (h : f.maxLiteral = some maxLit) (lit : Nat) :
      Std.Sat.CNF.Mem lit flit maxLit
      theorem Std.Sat.CNF.of_maxLiteral_eq_none (f : Std.Sat.CNF Nat) (h : f.maxLiteral = none) (lit : Nat) :

      An upper bound for the amount of distinct literals in f.

      Equations
      • f.numLiterals = match f.maxLiteral with | none => 0 | some n => n + 1
      Instances For
        theorem Std.Sat.CNF.lt_numLiterals {v : Nat} {f : Std.Sat.CNF Nat} (h : Std.Sat.CNF.Mem v f) :
        v < f.numLiterals
        theorem Std.Sat.CNF.numLiterals_pos {v : Nat} {f : Std.Sat.CNF Nat} (h : Std.Sat.CNF.Mem v f) :
        0 < f.numLiterals

        Relabel f to a CNF formula with a known upper bound for its literals.

        This operation might be useful when e.g. using the literals to index into an array of known size without conducting bounds checks.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem Std.Sat.CNF.unsat_relabelFin {f : Std.Sat.CNF Nat} :
          f.relabelFin.Unsat f.Unsat