Find out which rules are causing rule_name(s) to be redundant. A rule set can contain rules that are implied by the other rules, so it is superfluous, see examples.
is_implied_by(x, rule_name, ..., verbose = interactive())
validate::validator()
object with rule
character
with the names of the rules to be checked
not used
if TRUE
print information to the console
character
with the names of the rule that cause the implication.
Other redundancy:
detect_fixed_variables()
,
detect_redundancy()
,
remove_redundancy()
,
simplify_fixed_variables()
,
simplify_rules()
rules <- validator( rule1 = x > 1
, rule2 = x > 2
)
# rule1 is superfluous
remove_redundancy(rules, verbose=TRUE)
#> Removed redundant rule(s):
#> rule1: x > 1
#> Object of class 'validator' with 1 elements:
#> rule2: x > 2
# rule 1 is implied by rule 2
is_implied_by(rules, "rule1", verbose=TRUE)
#> Rule(s)
#> rule1: x > 1
#> implied by:
#> rule2: x > 2
#> [1] "rule2"
rules <- validator( rule1 = x > 2
, rule2 = x > 2
)
# standout: rule1 and rule2, oldest rules wins
remove_redundancy(rules, verbose=TRUE)
#> Removed redundant rule(s):
#> rule2: x > 2
#> Object of class 'validator' with 1 elements:
#> rule1: x > 2
# Note that detection signifies both rules!
detect_redundancy(rules)
#> rule1 rule2
#> TRUE TRUE