Equations
Instances For
def Std.Sat.AIG.relabel {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] (r : α → β) (aig : AIG α) (hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y) :
AIG β
Relabel the atoms of aig with r. To enforce sharing of the atoms r must be injective.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Std.Sat.AIG.relabel_false {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx : idx < (relabel r aig hinj).decls.size} (h : (relabel r aig hinj).decls[idx] = Decl.false) :
theorem Std.Sat.AIG.relabel_atom {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {a : β} {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx : idx < (relabel r aig hinj).decls.size} (h : (relabel r aig hinj).decls[idx] = Decl.atom a) :
theorem Std.Sat.AIG.relabel_gate {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {lhs rhs : Fanin} {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx : idx < (relabel r aig hinj).decls.size} (h : (relabel r aig hinj).decls[idx] = Decl.gate lhs rhs) :
@[simp]
theorem Std.Sat.AIG.denote_relabel {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {invert : Bool} (aig : AIG α) (r : α → β) {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} (start : Nat) {hidx : start < (relabel r aig hinj).decls.size} (assign : β → Bool) :
theorem Std.Sat.AIG.relabel_unsat_iff_of_not_Nonempty {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {invert : Bool} {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx1 : idx < (relabel r aig hinj).decls.size} {hidx2 : idx < aig.decls.size} (hNonempty : ¬Nonempty α) :
theorem Std.Sat.AIG.relabel_unsat_iff_of_Nonempty {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {invert : Bool} [Nonempty α] {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx1 : idx < (relabel r aig hinj).decls.size} {hidx2 : idx < aig.decls.size} :
theorem Std.Sat.AIG.relabel_unsat_iff {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {idx : Nat} {invert : Bool} {aig : AIG α} {r : α → β} {hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y} {hidx1 : idx < (relabel r aig hinj).decls.size} {hidx2 : idx < aig.decls.size} :
relabel preserves unsatisfiablility.
def Std.Sat.AIG.Entrypoint.relabel {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] (r : α → β) (entry : Entrypoint α) (hinj : ∀ (x y : α), x ∈ entry.aig → y ∈ entry.aig → r x = r y → x = y) :
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem Std.Sat.AIG.Entrypoint.relabel_unsat_iff {α : Type} [Hashable α] [DecidableEq α] {β : Type} [Hashable β] [DecidableEq β] {entry : Entrypoint α} {r : α → β} {hinj : ∀ (x y : α), x ∈ entry.aig → y ∈ entry.aig → r x = r y → x = y} :