Documentation

ExistentialRules.ChaseSequence.Termination.RenameConstantsApart.PreTrigger

Renaming Constants apart in a GroundSubstitution and PreTrigger #

We lift the PreGroundTerm.rename_constants_apart functionality to GroundSubstitution and PreTrigger. This pretty much happens in the obvious way and apart from being technical, this is not interesting.

Equations
Instances For
    theorem GroundSubstitution.rename_constants_apart_for_vars_constants_fresh {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] (subs : GroundSubstitution sig) (forbidden_constants : List sig.C) (vars : List sig.V) (v : sig.V) :
    v vars∀ (c : sig.C), c (subs.rename_constants_apart_for_vars forbidden_constants vars v).constants¬c forbidden_constants
    theorem GroundSubstitution.rename_constants_apart_for_vars_preserves_ruleId_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (subs : GroundSubstitution sig) (forbidden_constants : List sig.C) (vars : List sig.V) (rl : RuleList sig) (v : sig.V) :
    v varsGroundTerm.skolem_ruleIds_valid rl (subs v)GroundTerm.skolem_ruleIds_valid rl (subs.rename_constants_apart_for_vars forbidden_constants vars v)
    theorem GroundSubstitution.rename_constants_apart_for_vars_preserves_disjIdx_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (subs : GroundSubstitution sig) (forbidden_constants : List sig.C) (vars : List sig.V) (rl : RuleList sig) (v : sig.V) (v_mem : v vars) (h : GroundTerm.skolem_ruleIds_valid rl (subs v)) :
    theorem GroundSubstitution.rename_constants_apart_for_vars_preserves_rule_arity_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (subs : GroundSubstitution sig) (forbidden_constants : List sig.C) (vars : List sig.V) (rl : RuleList sig) (v : sig.V) (v_mem : v vars) (h : GroundTerm.skolem_ruleIds_valid rl (subs v)) :
    def PreTrigger.rename_constants_apart {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (trg : PreTrigger sig) (forbidden_constants : List sig.C) :
    Equations
    Instances For
      theorem PreTrigger.rename_constants_apart_constants_fresh {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (trg : PreTrigger sig) (forbidden_constants : List sig.C) (c : sig.C) :
      c List.flatMap GroundTerm.constants (List.map (trg.rename_constants_apart forbidden_constants).subs trg.rule.body.vars.eraseDupsKeepRight)¬c forbidden_constants
      theorem PreTrigger.rename_constants_apart_preserves_ruleId_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (trg : PreTrigger sig) (forbidden_constants : List sig.C) (rl : RuleList sig) :
      skolem_ruleIds_valid rl trgskolem_ruleIds_valid rl (trg.rename_constants_apart forbidden_constants)
      theorem PreTrigger.rename_constants_apart_preserves_disjIdx_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (trg : PreTrigger sig) (forbidden_constants : List sig.C) (rl : RuleList sig) (h : skolem_ruleIds_valid rl trg) :
      skolem_disjIdx_valid rl trg hskolem_disjIdx_valid rl (trg.rename_constants_apart forbidden_constants)
      theorem PreTrigger.rename_constants_apart_preserves_rule_arity_validity {sig : Signature} [DecidableEq sig.C] [DecidableEq sig.V] [DecidableEq sig.P] [GetFreshInhabitant sig.C] (trg : PreTrigger sig) (forbidden_constants : List sig.C) (rl : RuleList sig) (h : skolem_ruleIds_valid rl trg) :
      skolem_rule_arity_valid rl trg hskolem_rule_arity_valid rl (trg.rename_constants_apart forbidden_constants)