class Std.Sat.AIG.RefVec.LawfulZipOperator (α : Type) [Hashable α] [DecidableEq α] (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] :
Instances
@[deprecated Std.Sat.AIG.RefVec.LawfulZipOperator.chainable (since := "2025-10-29")]
theorem Std.Sat.AIG.RefVec.LawfulZipOperator.denote_prefix_cast_ref {α : Type} [Hashable α] [DecidableEq α] {assign : α → Bool} {aig : AIG α} {input1 input2 : aig.BinaryInput} {f : (aig : AIG α) → aig.BinaryInput → Entrypoint α} [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] {h : aig.decls.size ≤ (f aig input1).aig.decls.size} :
instance Std.Sat.AIG.RefVec.LawfulZipOperator.instMkAndCached {α : Type} [Hashable α] [DecidableEq α] :
instance Std.Sat.AIG.RefVec.LawfulZipOperator.instMkOrCached {α : Type} [Hashable α] [DecidableEq α] :
instance Std.Sat.AIG.RefVec.LawfulZipOperator.instMkXorCached {α : Type} [Hashable α] [DecidableEq α] :
instance Std.Sat.AIG.RefVec.LawfulZipOperator.instMkBEqCached {α : Type} [Hashable α] [DecidableEq α] :
instance Std.Sat.AIG.RefVec.LawfulZipOperator.instMkImpCached {α : Type} [Hashable α] [DecidableEq α] :
@[specialize #[]]
def Std.Sat.AIG.RefVec.zip {α : Type} [Hashable α] [DecidableEq α] {len : Nat} (aig : AIG α) (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] :
RefVecEntry α len
Equations
- Std.Sat.AIG.RefVec.zip aig input func = Std.Sat.AIG.RefVec.zip.go aig 0 (Std.Sat.AIG.RefVec.emptyWithCapacity len) ⋯ input.lhs input.rhs func
Instances For
@[irreducible, specialize #[]]
def Std.Sat.AIG.RefVec.zip.go {α : Type} [Hashable α] [DecidableEq α] {len : Nat} (aig : AIG α) (idx : Nat) (s : aig.RefVec idx) (hidx : idx ≤ len) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] :
RefVecEntry α len
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Std.Sat.AIG.RefVec.zip.go_le_size {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (idx : Nat) (hidx : idx ≤ len) (s : aig.RefVec idx) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] :
theorem Std.Sat.AIG.RefVec.zip_le_size {α : Type} [Hashable α] [DecidableEq α] {len : Nat} (aig : AIG α) (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] :
theorem Std.Sat.AIG.RefVec.zip.go_decl_eq {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (i : Nat) (hi : i ≤ len) (lhs rhs : aig.RefVec len) (s : aig.RefVec i) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] (idx : Nat) (h1 : idx < aig.decls.size) (h2 : idx < (go aig i s hi lhs rhs f).aig.decls.size) :
theorem Std.Sat.AIG.RefVec.zip_decl_eq {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] (idx : Nat) (h1 : idx < aig.decls.size) (h2 : idx < (zip aig input func).aig.decls.size) :
theorem Std.Sat.AIG.RefVec.zip_lt_size_of_lt_aig_size {α : Type} [Hashable α] [DecidableEq α] {len x : Nat} (aig : AIG α) (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] (h : x < aig.decls.size) :
theorem Std.Sat.AIG.RefVec.zip_le_size_of_le_aig_size {α : Type} [Hashable α] [DecidableEq α] {len x : Nat} (aig : AIG α) (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] (h : x ≤ aig.decls.size) :
theorem Std.Sat.AIG.RefVec.IsPrefix_zip {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] :
theorem Std.Sat.AIG.RefVec.zip.go_get_aux {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (curr : Nat) (hcurr : curr ≤ len) (s : aig.RefVec curr) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] (idx : Nat) (hidx : idx < curr) (hfoo : aig.decls.size ≤ (go aig curr s hcurr lhs rhs f).aig.decls.size) :
theorem Std.Sat.AIG.RefVec.zip.go_get {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (curr : Nat) (hcurr : curr ≤ len) (s : aig.RefVec curr) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] (idx : Nat) (hidx : idx < curr) :
theorem Std.Sat.AIG.RefVec.zip.go_denote_mem_prefix {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {assign : α → Bool} {inv : Bool} {aig : AIG α} (curr : Nat) (hcurr : curr ≤ len) (s : aig.RefVec curr) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] (start : Nat) (hstart : start < aig.decls.size) :
theorem Std.Sat.AIG.RefVec.zip.denote_go {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {assign : α → Bool} {aig : AIG α} (curr : Nat) (hcurr : curr ≤ len) (s : aig.RefVec curr) (lhs rhs : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] [LawfulZipOperator α f] (idx : Nat) (hidx1 : idx < len) :
@[simp]
theorem Std.Sat.AIG.RefVec.denote_zip {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {assign : α → Bool} {aig : AIG α} (input : aig.BinaryRefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] [LawfulZipOperator α func] (idx : Nat) (hidx : idx < len) :