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())

Arguments

x

validate::validator() object with rule

rule_name

character with the names of the rules to be checked

...

not used

verbose

if TRUE print information to the console

Value

character with the names of the rule that cause the implication.

Examples

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