Fusion for cyclic finite-join/meet circuits #
This module extends cyclic fusion extraction from binary AND/OR circuits to a basis with binary meet and arbitrary finite joins. Joins, including nullary join, are free. Every least-fixed-point construction again yields exactly one fusion pair per meet equation.
Pair contributed by a meet atom; finite joins contribute no pair.
Equations
- One or more equations did not get rendered due to their size.
- Algebraic.Fusion.Atom.meetPair? problem { op := Algebraic.JoinMeet.Op.join arity, arguments := arguments } = none
Instances For
Retain the pairs from meet atoms.
Equations
- Algebraic.Fusion.meetPairs problem atoms = List.filterMap (Algebraic.Fusion.Atom.meetPair? problem) atoms
Instances For
Retained pair count is exactly meet cost.
Finite-join/meet cyclic equations are monotone in their gate state.
Every least-fixed-point finite-join/meet construction yields a pair cover with one pair per meet equation.
Equations
- Algebraic.Fusion.pairCoverOfJoinMeetCyclic problem admissible circuit constructs = { pairs := Algebraic.Fusion.meetPairs problem (circuit.atoms problem.inputs constructs.values), isCover := ⋯ }
Instances For
Extracted cover cost is exactly cyclic meet cost.
Pair-cover lower bounds apply to cyclic finite-join/meet circuits.
Least meet cost of a finite-join/meet cyclic construction. If no such construction exists, the dependent infimum is top.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every concrete cyclic construction upper-bounds cyclic meet complexity.
Pair-cover complexity is no larger than cyclic meet complexity.