Documentation

ExistentialRules.ChaseSequence.Termination.RenameConstantsApart.GroundTerm

Renaming Constants apart in a GroundTerm #

We lift the PreGroundTerm.rename_constants_apart functionality to GroundTerm.

def GroundTerm.rename_constants_apart {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] (term : GroundTerm sig) (forbidden_constants : List sig.C) :
Equations
Instances For
    theorem GroundTerm.rename_constants_apart_constants_fresh {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] (term : GroundTerm sig) (forbidden_constants : List sig.C) (c : sig.C) :
    c (term.rename_constants_apart forbidden_constants).constants¬c forbidden_constants
    theorem GroundTerm.rename_constants_apart_preserves_ruleId_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (term : GroundTerm sig) (forbidden_constants : List sig.C) (rl : RuleList sig) :
    skolem_ruleIds_valid rl termskolem_ruleIds_valid rl (term.rename_constants_apart forbidden_constants)
    theorem GroundTerm.rename_constants_apart_preserves_disjIdx_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (term : GroundTerm sig) (forbidden_constants : List sig.C) (rl : RuleList sig) (h : skolem_ruleIds_valid rl term) :
    skolem_disjIdx_valid rl term hskolem_disjIdx_valid rl (term.rename_constants_apart forbidden_constants)
    theorem GroundTerm.rename_constants_apart_preserves_rule_arity_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (term : GroundTerm sig) (forbidden_constants : List sig.C) (rl : RuleList sig) (h : skolem_ruleIds_valid rl term) :
    skolem_rule_arity_valid rl term hskolem_rule_arity_valid rl (term.rename_constants_apart forbidden_constants)