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.P] [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
    def PreTrigger.rename_constants_apart {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [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.P] [DecidableEq sig.C] [DecidableEq sig.V] [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