Backtracking Facts for a PreGroundTerm #
The main outcome of this file is PreGroundTerm.backtrackFacts, which returns facts necessarily involved in the derivation of a given functional term.
SkolemFS.ruleId_valid lifted to PreGroundTerm.
Equations
- PreGroundTerm.skolem_ruleIds_valid rl (FiniteTree.leaf a) = True
- PreGroundTerm.skolem_ruleIds_valid rl (FiniteTree.inner func ts) = (func.ruleId_valid rl ∧ ∀ (t : FiniteTree (SkolemFS sig) sig.C), t ∈ ts → PreGroundTerm.skolem_ruleIds_valid rl t)
Instances For
SkolemFS.disjunctIndex_valid lifted to PreGroundTerm.
Equations
- One or more equations did not get rendered due to their size.
- PreGroundTerm.skolem_disjIdx_valid rl (FiniteTree.leaf a) term_ruleIds_valid_2 = True
Instances For
SkolemFS.arity_valid lifted to PreGroundTerm.
Equations
- One or more equations did not get rendered due to their size.
- PreGroundTerm.skolem_rule_arity_valid rl (FiniteTree.leaf a) term_ruleIds_valid_2 = True
Instances For
For a functional PreGroundTerm, we can find a PreTrigger that introduces it (while putting fresh constants for body variables).
Equations
- One or more equations did not get rendered due to their size.
- PreGroundTerm.backtrackTrigger rl (FiniteTree.leaf c) term_is_func_2 term_arity_ok_2 term_ruleIds_valid_2 term_rule_arity_valid_2 forbidden_constants = ⋯.elim
Instances For
For a PreGroundTerm, we can find the facts necessary to introduce this term. These are all facts in the body and head of the backtrackTrigger for the term as well as all backtrackFacts for the subterms (i.e. the children) or the term. Because we need to know which "fresh" constants have already been used, we also return those. Note that we also take a list of constants that are already forbidden.
Equations
- One or more equations did not get rendered due to their size.
- PreGroundTerm.backtrackFacts rl (FiniteTree.leaf c) term_arity_ok_2 term_ruleIds_valid_2 term_disjIdx_valid_2 term_rule_arity_valid_2 forbidden_constants = ([], [])
Instances For
Equations
Instances For
The fresh constants are indeed not forbidden.
Each constant in PreGroundTerm.backtrackFacts is in the rule set, a leaf in the term, or a fresh constant.