@[specialize #[]]
def Std.Sat.AIG.RefVec.fold {α : Type} [Hashable α] [DecidableEq α] {len : Nat} (aig : AIG α) (vec : aig.RefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] :
Equations
- Std.Sat.AIG.RefVec.fold aig vec func = Std.Sat.AIG.RefVec.fold.go aig (aig.mkConstCached true) 0 len vec func
Instances For
@[irreducible, specialize #[]]
def Std.Sat.AIG.RefVec.fold.go {α : Type} [Hashable α] [DecidableEq α] (aig : AIG α) (acc : aig.Ref) (idx len : Nat) (input : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Std.Sat.AIG.RefVec.fold.go_le_size {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (acc : aig.Ref) (idx : Nat) (s : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] :
theorem Std.Sat.AIG.RefVec.fold_le_size {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (vec : aig.RefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] :
theorem Std.Sat.AIG.RefVec.fold.go_decl_eq {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (acc : aig.Ref) (i : Nat) (s : aig.RefVec len) (f : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput f] (idx : Nat) (h1 : idx < aig.decls.size) (h2 : idx < (go aig acc i len s f).aig.decls.size) :
theorem Std.Sat.AIG.RefVec.fold_decl_eq {α : Type} [Hashable α] [DecidableEq α] {len : Nat} {aig : AIG α} (vec : aig.RefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] (idx : Nat) (h1 : idx < aig.decls.size) (h2 : idx < (fold aig vec func).aig.decls.size) :
theorem Std.Sat.AIG.RefVec.fold_lt_size_of_lt_aig_size {α : Type} [Hashable α] [DecidableEq α] {len x : Nat} (aig : AIG α) (vec : aig.RefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] (h : x < aig.decls.size) :
theorem Std.Sat.AIG.RefVec.fold_le_size_of_le_aig_size {α : Type} [Hashable α] [DecidableEq α] {len x : Nat} (aig : AIG α) (vec : aig.RefVec len) (func : (aig : AIG α) → aig.BinaryInput → Entrypoint α) [LawfulOperator α BinaryInput func] (h : x ≤ aig.decls.size) :