@[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.mkConstCached true).aig (aig.mkConstCached true).ref 0 len (vec.cast ⋯) 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
@[irreducible]
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]
:
@[irreducible]
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)
: