def minimum(rule, artifact):
    """Evaluate artifact's value to be minimum of values returned by rule's
    subrules.

    This evaluation function ignores subrule weights.
    """
    m = 1.0
    for i in range(len(rule.R)):
        e = rule.R[i](artifact)
        if e is not None:
            if e < m:
                m = e
    return m
