Simplify a rule set by removing redundant rules, i.e. rules that are implied by other rules.
remove_redundancy(x, ..., verbose = interactive())
validate::validator()
object with validation rules.
not used
if TRUE
print the remove rules to the console.
simplified validate::validator()
object, in which redundant rules are removed.
Other redundancy:
detect_fixed_variables()
,
detect_redundancy()
,
is_implied_by()
,
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