Detect redundancies in a rule set, but do not remove the rules. A rule in a ruleset can be redundant if it is implied by another rule or by a combination of rules. See the examples for more information.
detect_redundancy(x, ..., verbose = interactive())validate::validator() object with the validation rules.
not used.
if TRUE print the redundant rule(s) to the console
For removal of duplicate rules, simplify
Other redundancy:
detect_fixed_variables(),
is_implied_by(),
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