Equations
- Circuit.eval v (Circuit.input i) = v.get i
- Circuit.eval v c.not = !Circuit.eval v c
- Circuit.eval v (Circuit.and cs) = Circuit.evalAnd v cs
- Circuit.eval v (Circuit.or cs) = Circuit.evalOr v cs
Instances For
Equations
- Circuit.evalAnd v [] = true
- Circuit.evalAnd v (c :: cs) = (Circuit.eval v c && Circuit.evalAnd v cs)
Instances For
Equations
- Circuit.evalOr v [] = false
- Circuit.evalOr v (c :: cs) = (Circuit.eval v c || Circuit.evalOr v cs)
Instances For
Equations
- (Circuit.input i).depth = 0
- c.not.depth = c.depth
- (Circuit.and cs).depth = 1 + Circuit.maxDepth cs
- (Circuit.or cs).depth = 1 + Circuit.maxDepth cs
Instances For
Equations
- Circuit.maxDepth [] = 0
- Circuit.maxDepth (c :: cs) = max c.depth (Circuit.maxDepth cs)
Instances For
Equations
- (Circuit.input i).size = 1
- c.not.size = c.size
- (Circuit.and cs).size = 1 + Circuit.sumSize cs
- (Circuit.or cs).size = 1 + Circuit.sumSize cs
Instances For
Equations
- Circuit.sumSize [] = 0
- Circuit.sumSize (c :: cs) = c.size + Circuit.sumSize cs