Documentation

ExistentialRules.ChaseSequence.Termination.BacktrackingOfFacts.GroundTerm

Backtracking Facts for a GroundTerm #

We mainly lift the machinery around PreGroundTerm.backtrackFacts to GroundTerm. We spare the doc comments on the individual definitions and theorems.

def GroundTerm.skolem_disjIdx_valid {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] (rl : RuleList sig) (term : GroundTerm sig) (term_ruleIds_valid : skolem_ruleIds_valid rl term) :
Equations
Instances For
    def GroundTerm.skolem_rule_arity_valid {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] (rl : RuleList sig) (term : GroundTerm sig) (term_ruleIds_valid : skolem_ruleIds_valid rl term) :
    Equations
    Instances For
      def GroundTerm.backtrackTrigger {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] (rl : RuleList sig) (term : GroundTerm sig) (term_is_func : (func : SkolemFS sig), (ts : List (GroundTerm sig)), (arity_ok : ts.length = func.arity), term = GroundTerm.func func ts arity_ok) (term_ruleIds_valid : skolem_ruleIds_valid rl term) (term_rule_arity_valid : skolem_rule_arity_valid rl term term_ruleIds_valid) (forbidden_constants : List sig.C) :
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def GroundTerm.backtrackFacts {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] (rl : RuleList sig) (term : GroundTerm sig) (term_ruleIds_valid : skolem_ruleIds_valid rl term) (term_disjIdx_valid : skolem_disjIdx_valid rl term term_ruleIds_valid) (term_rule_arity_valid : skolem_rule_arity_valid rl term term_ruleIds_valid) (forbidden_constants : List sig.C) :
        List (Fact sig) × List sig.C
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def GroundTerm.backtrackFacts_list {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] (rl : RuleList sig) (terms : List (GroundTerm sig)) (terms_ruleIds_valid : ∀ (t : GroundTerm sig), t termsskolem_ruleIds_valid rl t) (terms_disjIdx_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_disjIdx_valid rl t ) (terms_rule_arity_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_rule_arity_valid rl t ) (forbidden_constants : List sig.C) :
          List (Fact sig) × List sig.C
          Equations
          Instances For
            theorem GroundTerm.backtrackFacts_list_eq {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] {rl : RuleList sig} {terms : List (GroundTerm sig)} {terms_ruleIds_valid : ∀ (t : GroundTerm sig), t termsskolem_ruleIds_valid rl t} {terms_disjIdx_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_disjIdx_valid rl t } {terms_rule_arity_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_rule_arity_valid rl t } {forbidden_constants : List sig.C} :
            backtrackFacts_list rl terms terms_ruleIds_valid terms_disjIdx_valid terms_rule_arity_valid forbidden_constants = PreGroundTerm.backtrackFacts_list rl terms.unattach forbidden_constants
            theorem GroundTerm.backtrackFacts_fresh_constants_not_forbidden {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] {rl : RuleList sig} {term : GroundTerm sig} {term_ruleIds_valid : skolem_ruleIds_valid rl term} {term_disjIdx_valid : skolem_disjIdx_valid rl term term_ruleIds_valid} {term_rule_arity_valid : skolem_rule_arity_valid rl term term_ruleIds_valid} {forbidden_constants : List sig.C} (c : sig.C) :
            c (backtrackFacts rl term term_ruleIds_valid term_disjIdx_valid term_rule_arity_valid forbidden_constants).snd¬c forbidden_constants
            theorem GroundTerm.backtrackFacts_list_fresh_constants_not_forbidden {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] {rl : RuleList sig} {terms : List (GroundTerm sig)} {terms_ruleIds_valid : ∀ (t : GroundTerm sig), t termsskolem_ruleIds_valid rl t} {terms_disjIdx_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_disjIdx_valid rl t } {terms_rule_arity_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_rule_arity_valid rl t } {forbidden_constants : List sig.C} (c : sig.C) :
            c (backtrackFacts_list rl terms terms_ruleIds_valid terms_disjIdx_valid terms_rule_arity_valid forbidden_constants).snd¬c forbidden_constants
            theorem GroundTerm.backtrackFacts_constants_in_rules_or_term_or_fresh {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] {rl : RuleList sig} {term : GroundTerm sig} {term_ruleIds_valid : skolem_ruleIds_valid rl term} {term_disjIdx_valid : skolem_disjIdx_valid rl term term_ruleIds_valid} {term_rule_arity_valid : skolem_rule_arity_valid rl term term_ruleIds_valid} {forbidden_constants : List sig.C} (f : Fact sig) :
            f (backtrackFacts rl term term_ruleIds_valid term_disjIdx_valid term_rule_arity_valid forbidden_constants).fst∀ (c : sig.C), c f.constantsc List.flatMap Rule.constants rl.rules c term.constants c (backtrackFacts rl term term_ruleIds_valid term_disjIdx_valid term_rule_arity_valid forbidden_constants).snd
            theorem GroundTerm.backtrackFacts_list_constants_in_rules_or_term_or_fresh {sig : Signature} [DecidableEq sig.P] [DecidableEq sig.C] [DecidableEq sig.V] [GetFreshInhabitant sig.C] [Inhabited sig.C] {rl : RuleList sig} {terms : List (GroundTerm sig)} {terms_ruleIds_valid : ∀ (t : GroundTerm sig), t termsskolem_ruleIds_valid rl t} {terms_disjIdx_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_disjIdx_valid rl t } {terms_rule_arity_valid : ∀ (t : GroundTerm sig) (mem : t terms), skolem_rule_arity_valid rl t } {forbidden_constants : List sig.C} (f : Fact sig) :
            f (backtrackFacts_list rl terms terms_ruleIds_valid terms_disjIdx_valid terms_rule_arity_valid forbidden_constants).fst∀ (c : sig.C), c f.constantsc List.flatMap Rule.constants rl.rules c List.flatMap constants terms c (backtrackFacts_list rl terms terms_ruleIds_valid terms_disjIdx_valid terms_rule_arity_valid forbidden_constants).snd