Equations
- Std.Sat.AIG.Decl.relabel r (Std.Sat.AIG.Decl.const b) = Std.Sat.AIG.Decl.const b
- Std.Sat.AIG.Decl.relabel r (Std.Sat.AIG.Decl.atom a) = Std.Sat.AIG.Decl.atom (r a)
- Std.Sat.AIG.Decl.relabel r (Std.Sat.AIG.Decl.gate lhs rhs linv rinv) = Std.Sat.AIG.Decl.gate lhs rhs linv rinv
Instances For
def
Std.Sat.AIG.relabel
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
(r : α → β)
(aig : AIG α)
:
AIG β
Equations
- Std.Sat.AIG.relabel r aig = { decls := Array.map (Std.Sat.AIG.Decl.relabel r) aig.decls, cache := Std.Sat.AIG.Cache.empty (Array.map (Std.Sat.AIG.Decl.relabel r) aig.decls), invariant := ⋯ }
Instances For
@[simp]
theorem
Std.Sat.AIG.relabel_size_eq_size
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{aig : AIG α}
{r : α → β}
:
theorem
Std.Sat.AIG.relabel_const
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{idx : Nat}
{b : Bool}
{aig : AIG α}
{r : α → β}
{hidx : idx < (relabel r aig).decls.size}
(h : (relabel r aig).decls[idx] = Decl.const b)
:
aig.decls[idx] = Decl.const b
theorem
Std.Sat.AIG.relabel_gate
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{idx lhs rhs : Nat}
{linv rinv : Bool}
{aig : AIG α}
{r : α → β}
{hidx : idx < (relabel r aig).decls.size}
(h : (relabel r aig).decls[idx] = Decl.gate lhs rhs linv rinv)
:
@[simp, irreducible]
theorem
Std.Sat.AIG.denote_relabel
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
(aig : AIG α)
(r : α → β)
(start : Nat)
{hidx : start < (relabel r aig).decls.size}
(assign : β → Bool)
:
theorem
Std.Sat.AIG.unsat_relabel
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{idx : Nat}
{aig : AIG α}
(r : α → β)
{hidx : idx < aig.decls.size}
:
aig.UnsatAt idx hidx → (relabel r aig).UnsatAt idx ⋯
theorem
Std.Sat.AIG.relabel_unsat_iff
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{idx : Nat}
[Nonempty α]
{aig : AIG α}
{r : α → β}
{hidx1 : idx < (relabel r aig).decls.size}
{hidx2 : idx < aig.decls.size}
(hinj : ∀ (x y : α), x ∈ aig → y ∈ aig → r x = r y → x = y)
:
def
Std.Sat.AIG.Entrypoint.relabel
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
(r : α → β)
(entry : Entrypoint α)
:
Equations
- Std.Sat.AIG.Entrypoint.relabel r entry = { aig := Std.Sat.AIG.relabel r entry.aig, ref := let __src := entry.ref; { gate := __src.gate, hgate := ⋯ } }
Instances For
@[simp]
theorem
Std.Sat.AIG.Entrypoint.relabel_size_eq
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
{entry : Entrypoint α}
{r : α → β}
:
theorem
Std.Sat.AIG.Entrypoint.relabel_unsat_iff
{α : Type}
[Hashable α]
[DecidableEq α]
{β : Type}
[Hashable β]
[DecidableEq β]
[Nonempty α]
{entry : Entrypoint α}
{r : α → β}
(hinj : ∀ (x y : α), x ∈ entry.aig → y ∈ entry.aig → r x = r y → x = y)
: